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

int open_safer(char *file,int flags,...)

{
  bool bVar1;
  undefined *puVar2;
  int iVar3;
  int *piVar4;
  uint uVar5;
  int *piVar6;
  uint uVar7;
  int iVar8;
  int iVar9;
  char cVar10;
  uint uVar11;
  uint uVar12;
  uint extraout_v1;
  uint uVar13;
  char extraout_v1_01;
  int extraout_v1_00;
  char *pcVar14;
  int in_a2;
  uint in_a3;
  int iVar15;
  uint uVar16;
  uint uVar17;
  char *pcVar18;
  uint uVar19;
  byte *pbVar20;
  undefined4 uVar21;
  uint uVar22;
  undefined *puVar23;
  code *pcVar24;
  char *pcVar25;
  uint uVar26;
  double dVar27;
  double dVar28;
  double dVar29;
  longlong lVar30;
  ulonglong uVar31;
  longlong lVar32;
  undefined8 uVar33;
  ulonglong uVar34;
  int local_res8;
  uint local_resc;
  char *pcStack_b0;
  int iStack_a4;
  uint uStack_98;
  int iStack_90;
  undefined1 auStack_88 [44];
  int iStack_5c;
  undefined *puStack_58;
  uint uStack_14;
  int *local_10;
  
  puVar2 = PTR___stack_chk_guard_000313bc;
  uVar11 = *(uint *)PTR___stack_chk_guard_000313bc;
  iVar9 = in_a2;
  piVar4 = &local_res8;
  if ((flags & 0x100U) == 0) {
    iVar9 = 0;
    piVar4 = local_10;
  }
  local_10 = piVar4;
  local_res8 = in_a2;
  local_resc = in_a3;
  iVar3 = (*(code *)PTR_open64_00031330)();
  iVar3 = fd_safer(iVar3);
  if (uVar11 == *(uint *)puVar2) {
    return iVar3;
  }
  uVar13 = uVar11;
  puVar23 = PTR___stack_chk_fail_0003139c;
  (*(code *)PTR___stack_chk_fail_0003139c)();
  piVar4 = *(int **)(puVar23 + 0x1beec);
  uVar12 = in_a3 & 0x20;
  uVar19 = 0x400;
  iStack_5c = *piVar4;
  uVar5 = in_a3 & 3;
  puStack_58 = puVar2;
  if (uVar12 == 0) {
    uVar19 = 1000;
  }
  piVar6 = (int *)(**(code **)(puVar23 + 0x1be00))();
  iStack_90 = *piVar6;
  uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);
  if (0xf < uStack_98 - 1) {
    uStack_98 = 1;
    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;
  }
  iStack_a4 = piVar6[1];
  pbVar20 = (byte *)piVar6[2];
  uVar7 = (**(code **)(puVar23 + 0x1be70))();
  if (0x10 < uVar7) {
    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;
  }
  pcStack_b0 = (char *)(iVar9 + 0x287);
  if ((&_gp < local_10) || ((local_10 == (int *)&_gp && (uStack_14 < uVar11)))) {
    lVar30 = __umoddi3(local_10,uVar11,&_gp,uStack_14);
    if (lVar30 != 0) goto LAB_00015680;
    uVar31 = __udivdi3(local_10,uVar11,&_gp,uStack_14);
    uVar7 = (uint)(uVar31 >> 0x20);
    uVar16 = (uint)uVar31;
    uVar33 = __umoddi3(uVar13,flags,uVar7,uVar16);
    iVar3 = (int)((ulonglong)uVar33 >> 0x20);
    uVar17 = (uint)uVar33;
    uVar22 = uVar17 * 5 >> 0x1f |
             ((uint)(uVar17 * 5 < uVar17 * 4) + (uVar17 >> 0x1e | iVar3 << 2) + iVar3) * 2;
    lVar32 = __umoddi3(uVar22,uVar17 * 10,uVar7,uVar16);
    lVar30 = lVar32 << 1;
    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);
    uVar34 = __udivdi3(uVar13,flags,uVar7,uVar16);
    __udivdi3(uVar22,uVar17 * 10,uVar7,uVar16);
    uVar13 = extraout_v1;
    if ((uVar26 < uVar7) || ((uVar7 == uVar26 && ((uint)lVar30 < uVar16)))) {
      uVar7 = (uint)(lVar30 != 0);
    }
    else if (uVar31 < (ulonglong)(lVar32 << 1)) {
      uVar7 = 3;
    }
    else {
      uVar7 = 2;
    }
LAB_00015d94:
    pcVar18 = pcStack_b0;
    if ((in_a3 & 0x10) == 0) {
      iVar3 = -1;
    }
    else {
      iVar3 = 0;
      if (((int)(uVar34 >> 0x20) != 0) || (uVar19 <= (uint)uVar34)) {
        iVar3 = 0;
        do {
          uVar21 = (undefined4)(uVar34 >> 0x20);
          __umoddi3(uVar21,(int)uVar34,0,uVar19);
          uVar16 = extraout_v1_00 * 10 + uVar13;
          if (uVar19 == 0) {
            trap(7);
          }
          uVar13 = uVar16 / uVar19;
          uVar17 = (uVar16 % uVar19) * 2 + ((int)uVar7 >> 1);
          uVar34 = __udivdi3(uVar21,(int)uVar34,0,uVar19);
          uVar16 = (uint)uVar34;
          uVar26 = uVar7 + uVar17;
          if (uVar17 < uVar19) {
            uVar7 = (uint)(uVar26 != 0);
          }
          else {
            uVar7 = 2;
            if (uVar19 < uVar26) {
              uVar7 = 3;
            }
          }
          iVar3 = iVar3 + 1;
          if (((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19)) {
            if (uVar16 < 10) {
              if (uVar5 == 1) {
                bVar1 = 2 < (uVar13 & 1) + uVar7;
LAB_000160dc:
                if (!bVar1) goto LAB_0001606c;
                uVar17 = uVar16 + 1;
                if (uVar13 == 9) {
                  bVar1 = uVar17 < uVar16;
                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);
                  if ((bVar1) || (uVar17 != 10)) {
                    uVar7 = 0;
                    goto LAB_00016074;
                  }
                  uVar7 = 0;
                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);
                  goto LAB_000160b4;
                }
                cVar10 = (char)uVar13 + '1';
LAB_00016084:
                uVar7 = 0;
                pcVar24 = *(code **)(puVar23 + 0x1bef0);
                *(char *)(iVar9 + 0x286) = cVar10;
                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);
                (*pcVar24)(pcVar18,iStack_90,uStack_98);
              }
              else {
                bVar1 = uVar7 != 0;
                if (uVar5 == 0) goto LAB_000160dc;
LAB_0001606c:
                cVar10 = (char)uVar13 + '0';
                if (uVar13 != 0) goto LAB_00016084;
LAB_00016074:
                if ((in_a3 & 8) == 0) {
                  cVar10 = '0';
                  goto LAB_00016084;
                }
              }
LAB_000160b4:
              uVar13 = 0;
              pcVar25 = pcVar18;
              if (uVar5 == 1) goto LAB_00015e08;
              goto LAB_00015dcc;
            }
            break;
          }
        } while (iVar3 != 8);
      }
    }
    if (uVar5 == 1) {
      pcVar25 = pcStack_b0;
      if (5 < (int)((((uint)uVar34 & 1) + uVar7 != 0) + uVar13)) goto LAB_00015ddc;
LAB_00015e08:
      do {
        do {
          iVar8 = (int)(uVar34 >> 0x20);
          uVar13 = (uint)uVar34;
          __umoddi3(iVar8,uVar13,0,10);
          pcVar25 = pcVar25 + -1;
          *pcVar25 = extraout_v1_01 + '0';
          uVar34 = __udivdi3(iVar8,uVar13,0,10);
        } while (iVar8 != 0);
      } while (9 < uVar13);
    }
    else {
LAB_00015dcc:
      pcVar25 = pcVar18;
      if ((uVar5 != 0) || ((int)(uVar13 + uVar7) < 1)) goto LAB_00015e08;
LAB_00015ddc:
      uVar34 = uVar34 + 1;
      pcVar25 = pcVar18;
      if (((in_a3 & 0x10) == 0) ||
         ((((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)) || (iVar3 == 8))))
      goto LAB_00015e08;
      iVar3 = iVar3 + 1;
      if ((in_a3 & 8) == 0) {
        pcVar24 = *(code **)(puVar23 + 0x1bef0);
        pcVar18[-1] = '0';
        pcVar18 = pcVar18 + ~uStack_98;
        (*pcVar24)(pcVar18,iStack_90);
      }
      pcVar25 = pcVar18 + -1;
      pcVar18[-1] = '1';
    }
  }
  else {
    lVar30 = __umoddi3(&_gp,uStack_14,local_10,uVar11);
    if (lVar30 == 0) {
      lVar30 = __udivdi3(&_gp,uStack_14,local_10,uVar11);
      uVar34 = lVar30 * CONCAT44(uVar13,flags);
      lVar30 = __udivdi3((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));
      if (lVar30 == CONCAT44(uVar13,flags)) {
        uVar7 = 0;
        uVar13 = 0;
        goto LAB_00015d94;
      }
    }
LAB_00015680:
    dVar27 = (double)__floatundidf(&_gp,uStack_14);
    dVar28 = (double)__floatundidf(local_10,uVar11);
    dVar27 = dVar27 / dVar28;
    dVar28 = (double)__floatundidf(uVar13,flags);
    dVar27 = dVar27 * dVar28;
    if ((in_a3 & 0x10) == 0) {
      dVar28 = dVar27;
      if (((in_a3 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {
        uVar33 = __fixunsdfdi(dVar27);
        iVar3 = (int)((ulonglong)uVar33 >> 0x20);
        uVar13 = (uint)uVar33;
        dVar28 = (double)__floatundidf(iVar3,uVar13);
        if (((in_a3 & 3) == 0) && (dVar27 != dVar28)) {
          dVar28 = (double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3);
        }
      }
      (**(code **)(puVar23 + 0x1bdb4))
                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);
      iVar3 = -1;
      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);
      uVar13 = uVar7;
    }
    else {
      iVar3 = 0;
      dVar28 = (double)uVar19;
      do {
        dVar29 = dVar28;
        dVar28 = dVar29 * (double)uVar19;
        iVar3 = iVar3 + 1;
        if (dVar27 < dVar28) break;
      } while (iVar3 != 8);
      dVar27 = dVar27 / dVar29;
      uVar13 = (uVar12 == 0) + 1 + uStack_98 + 1;
      if (uVar5 == 1) {
        (**(code **)(puVar23 + 0x1bdb4))
                  (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);
        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);
        if (uVar7 <= uVar13) goto LAB_00015d0c;
        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);
        dVar28 = dVar27 * dVar29;
      }
      else {
        iVar8 = *(int *)(puVar23 + 0x1bc48);
        dVar28 = dVar27;
        if (*(double *)(iVar8 + -0x730) <= dVar27) {
LAB_000159a0:
          iVar15 = *(int *)(puVar23 + 0x1bc48);
        }
        else {
          lVar30 = __fixunsdfdi(dVar27);
          dVar28 = dVar27;
          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);
          if (uVar5 != 0) goto LAB_000159a0;
          iVar15 = *(int *)(puVar23 + 0x1bc48);
          if (dVar28 != dVar27) {
            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));
            goto LAB_000159a0;
          }
        }
        (**(code **)(puVar23 + 0x1bdb4))(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27);
        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);
        dVar27 = dVar28;
        if (uVar13 < uVar7) {
          iVar15 = *(int *)(puVar23 + 0x1bc48);
          dVar28 = dVar28 * *(double *)(iVar15 + -0x728);
        }
        else {
LAB_00015d0c:
          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {
            uVar13 = uVar7 - (uStack_98 + 1);
            goto LAB_0001572c;
          }
          iVar15 = *(int *)(puVar23 + 0x1bc48);
          dVar29 = *(double *)(iVar15 + -0x728);
          dVar28 = dVar27 * dVar29;
          if (uVar5 == 1) goto LAB_00015a5c;
          iVar8 = *(int *)(puVar23 + 0x1bc48);
        }
        dVar29 = *(double *)(iVar15 + -0x728);
        if (dVar28 < *(double *)(iVar8 + -0x730)) {
          lVar30 = __fixunsdfdi(dVar28);
          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);
          if ((uVar5 == 0) && (dVar27 != dVar28)) {
            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));
          }
          dVar28 = dVar27;
          dVar29 = *(double *)(iVar15 + -0x728);
        }
      }
LAB_00015a5c:
      (**(code **)(puVar23 + 0x1bdb4))
                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);
      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);
      uVar13 = uVar7;
    }
LAB_0001572c:
    pcVar25 = pcStack_b0 + -uVar7;
    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar9,uVar7);
    pcVar18 = pcVar25 + uVar13;
  }
  if ((in_a3 & 4) != 0) {
    uVar5 = (int)pcVar18 - (int)pcVar25;
    iVar8 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);
    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar5,0x29);
    uVar13 = 0xffffffff;
    while( true ) {
      uVar7 = (uint)*pbVar20;
      if (uVar7 != 0) {
        uVar13 = uVar7;
        if (0x7e < uVar7) {
          uVar13 = uVar5;
        }
        pbVar20 = pbVar20 + 1;
      }
      if (uVar5 < uVar13) break;
      uVar5 = uVar5 - uVar13;
      pcVar25 = pcVar18 + -uVar13;
      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar5,uVar13);
      if (uVar5 == 0) goto LAB_0001575c;
      pcVar18 = pcVar25 + -iVar8;
      (**(code **)(puVar23 + 0x1bef0))(pcVar18,iStack_a4,iVar8);
    }
    pcVar25 = pcVar18 + -uVar5;
    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar5);
  }
LAB_0001575c:
  if ((in_a3 & 0x80) == 0) goto LAB_00015784;
  if ((iVar3 == -1) && ((local_10 != (int *)0x0 || (iVar3 = 0, 1 < uVar11)))) {
    iVar3 = 1;
    uVar13 = 1;
    piVar6 = (int *)0x0;
    do {
      uVar34 = (ulonglong)uVar13;
      uVar13 = (uint)(uVar34 * uVar19);
      piVar6 = (int *)(uVar19 * (int)piVar6 + (int)(uVar34 * uVar19 >> 0x20));
      if ((local_10 <= piVar6) && ((local_10 != piVar6 || (uVar11 <= uVar13)))) break;
      iVar3 = iVar3 + 1;
    } while (iVar3 != 8);
    if ((in_a3 & 0x40) != 0) {
LAB_00015bdc:
      pcStack_b0 = (char *)(iVar9 + 0x288);
      *(undefined1 *)(iVar9 + 0x287) = 0x20;
      goto LAB_00015be8;
    }
LAB_00015bf0:
    iVar9 = *(int *)(puVar23 + 0x1bc48);
    if ((uVar12 == 0) && (iVar9 = *(int *)(puVar23 + 0x1bc48), iVar3 == 1)) {
      cVar10 = 'k';
    }
    else {
      cVar10 = *(char *)(iVar3 + iVar9 + -0x748);
    }
    pcVar18 = pcStack_b0 + 1;
    *pcStack_b0 = cVar10;
  }
  else {
    if ((in_a3 & 0x100) == 0 && iVar3 == 0) goto LAB_00015784;
    if ((in_a3 & 0x40) != 0) goto LAB_00015bdc;
LAB_00015be8:
    pcVar18 = pcStack_b0;
    if (iVar3 != 0) goto LAB_00015bf0;
  }
  pcStack_b0 = pcVar18;
  if ((in_a3 & 0x100) != 0) {
    pcVar14 = pcVar18 + 1;
    pcStack_b0 = pcVar14;
    if ((uVar12 != 0) && (iVar3 != 0)) {
      pcStack_b0 = pcVar18 + 2;
      *pcVar18 = 'i';
      pcVar18 = pcVar14;
    }
    *pcVar18 = 'B';
  }
LAB_00015784:
  while( true ) {
    *pcStack_b0 = '\0';
    if (iStack_5c == *piVar4) break;
    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();
  }
  return (int)pcVar25;
}



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

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

{
  bool bVar1;
  undefined *puVar2;
  undefined4 uVar3;
  char *pcVar4;
  int *piVar5;
  uint uVar6;
  int *piVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  char cVar11;
  uint uVar12;
  uint uVar13;
  uint extraout_v1;
  uint uVar14;
  char extraout_v1_01;
  int extraout_v1_00;
  char *pcVar15;
  int iVar16;
  uint uVar17;
  int iVar18;
  uint uVar19;
  uint uVar20;
  byte *pbVar21;
  uint uVar22;
  undefined *puVar23;
  code *pcVar24;
  char *pcVar25;
  uint uVar26;
  double dVar27;
  double dVar28;
  double dVar29;
  longlong lVar30;
  ulonglong uVar31;
  longlong lVar32;
  undefined8 uVar33;
  ulonglong uVar34;
  int local_res8;
  uint local_resc;
  char *pcStack_b0;
  int iStack_a4;
  uint uStack_98;
  int iStack_90;
  undefined1 auStack_88 [44];
  int iStack_5c;
  undefined *puStack_58;
  uint uStack_14;
  int *local_10;
  
  puVar2 = PTR___stack_chk_guard_000313bc;
  uVar12 = *(uint *)PTR___stack_chk_guard_000313bc;
  iVar10 = param_3;
  piVar5 = &local_res8;
  if ((param_2 & 0x100) == 0) {
    iVar10 = 0;
    piVar5 = local_10;
  }
  local_10 = piVar5;
  local_res8 = param_3;
  local_resc = param_4;
  uVar3 = (*(code *)PTR_open64_00031330)();
  pcVar4 = (char *)fd_safer(uVar3);
  if (uVar12 == *(uint *)puVar2) {
    return pcVar4;
  }
  uVar14 = uVar12;
  puVar23 = PTR___stack_chk_fail_0003139c;
  (*(code *)PTR___stack_chk_fail_0003139c)();
  piVar5 = *(int **)(puVar23 + 0x1beec);
  uVar13 = param_4 & 0x20;
  uVar20 = 0x400;
  iStack_5c = *piVar5;
  uVar6 = param_4 & 3;
  puStack_58 = puVar2;
  if (uVar13 == 0) {
    uVar20 = 1000;
  }
  piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))();
  iStack_90 = *piVar7;
  uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);
  if (0xf < uStack_98 - 1) {
    uStack_98 = 1;
    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;
  }
  iStack_a4 = piVar7[1];
  pbVar21 = (byte *)piVar7[2];
  uVar8 = (**(code **)(puVar23 + 0x1be70))();
  if (0x10 < uVar8) {
    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;
  }
  pcStack_b0 = (char *)(iVar10 + 0x287);
  if ((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))) {
    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);
    if (lVar30 != 0) goto LAB_00015680;
    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);
    uVar8 = (uint)(uVar31 >> 0x20);
    uVar17 = (uint)uVar31;
    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);
    iVar18 = (int)((ulonglong)uVar33 >> 0x20);
    uVar19 = (uint)uVar33;
    uVar22 = uVar19 * 5 >> 0x1f |
             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;
    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);
    lVar30 = lVar32 << 1;
    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);
    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);
    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);
    uVar14 = extraout_v1;
    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {
      uVar8 = (uint)(lVar30 != 0);
    }
    else if (uVar31 < (ulonglong)(lVar32 << 1)) {
      uVar8 = 3;
    }
    else {
      uVar8 = 2;
    }
LAB_00015d94:
    pcVar4 = pcStack_b0;
    if ((param_4 & 0x10) == 0) {
      iVar18 = -1;
    }
    else {
      iVar18 = 0;
      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {
        iVar18 = 0;
        do {
          uVar3 = (undefined4)(uVar34 >> 0x20);
          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);
          uVar17 = extraout_v1_00 * 10 + uVar14;
          if (uVar20 == 0) {
            trap(7);
          }
          uVar14 = uVar17 / uVar20;
          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);
          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);
          uVar17 = (uint)uVar34;
          uVar26 = uVar8 + uVar19;
          if (uVar19 < uVar20) {
            uVar8 = (uint)(uVar26 != 0);
          }
          else {
            uVar8 = 2;
            if (uVar20 < uVar26) {
              uVar8 = 3;
            }
          }
          iVar18 = iVar18 + 1;
          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {
            if (uVar17 < 10) {
              if (uVar6 == 1) {
                bVar1 = 2 < (uVar14 & 1) + uVar8;
LAB_000160dc:
                if (!bVar1) goto LAB_0001606c;
                uVar19 = uVar17 + 1;
                if (uVar14 == 9) {
                  bVar1 = uVar19 < uVar17;
                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);
                  if ((bVar1) || (uVar19 != 10)) {
                    uVar8 = 0;
                    goto LAB_00016074;
                  }
                  uVar8 = 0;
                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);
                  goto LAB_000160b4;
                }
                cVar11 = (char)uVar14 + '1';
LAB_00016084:
                uVar8 = 0;
                pcVar24 = *(code **)(puVar23 + 0x1bef0);
                *(char *)(iVar10 + 0x286) = cVar11;
                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);
                (*pcVar24)(pcVar4,iStack_90,uStack_98);
              }
              else {
                bVar1 = uVar8 != 0;
                if (uVar6 == 0) goto LAB_000160dc;
LAB_0001606c:
                cVar11 = (char)uVar14 + '0';
                if (uVar14 != 0) goto LAB_00016084;
LAB_00016074:
                if ((param_4 & 8) == 0) {
                  cVar11 = '0';
                  goto LAB_00016084;
                }
              }
LAB_000160b4:
              uVar14 = 0;
              pcVar25 = pcVar4;
              if (uVar6 == 1) goto LAB_00015e08;
              goto LAB_00015dcc;
            }
            break;
          }
        } while (iVar18 != 8);
      }
    }
    if (uVar6 == 1) {
      pcVar25 = pcStack_b0;
      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;
LAB_00015e08:
      do {
        do {
          iVar9 = (int)(uVar34 >> 0x20);
          uVar14 = (uint)uVar34;
          FUN_0001db50(iVar9,uVar14,0,10);
          pcVar25 = pcVar25 + -1;
          *pcVar25 = extraout_v1_01 + '0';
          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);
        } while (iVar9 != 0);
      } while (9 < uVar14);
    }
    else {
LAB_00015dcc:
      pcVar25 = pcVar4;
      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;
LAB_00015ddc:
      uVar34 = uVar34 + 1;
      pcVar25 = pcVar4;
      if (((param_4 & 0x10) == 0) ||
         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))
      goto LAB_00015e08;
      iVar18 = iVar18 + 1;
      if ((param_4 & 8) == 0) {
        pcVar24 = *(code **)(puVar23 + 0x1bef0);
        pcVar4[-1] = '0';
        pcVar4 = pcVar4 + ~uStack_98;
        (*pcVar24)(pcVar4,iStack_90);
      }
      pcVar25 = pcVar4 + -1;
      pcVar4[-1] = '1';
    }
  }
  else {
    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);
    if (lVar30 == 0) {
      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);
      uVar34 = lVar30 * CONCAT44(uVar14,param_2);
      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));
      if (lVar30 == CONCAT44(uVar14,param_2)) {
        uVar8 = 0;
        uVar14 = 0;
        goto LAB_00015d94;
      }
    }
LAB_00015680:
    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);
    dVar28 = (double)FUN_0001cd70(local_10,uVar12);
    dVar27 = dVar27 / dVar28;
    dVar28 = (double)FUN_0001cd70(uVar14,param_2);
    dVar27 = dVar27 * dVar28;
    if ((param_4 & 0x10) == 0) {
      dVar28 = dVar27;
      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {
        uVar33 = FUN_0001ccd0(dVar27);
        iVar18 = (int)((ulonglong)uVar33 >> 0x20);
        uVar14 = (uint)uVar33;
        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);
        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {
          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);
        }
      }
      (**(code **)(puVar23 + 0x1bdb4))
                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);
      iVar18 = -1;
      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);
      uVar14 = uVar8;
    }
    else {
      iVar18 = 0;
      dVar28 = (double)uVar20;
      do {
        dVar29 = dVar28;
        dVar28 = dVar29 * (double)uVar20;
        iVar18 = iVar18 + 1;
        if (dVar27 < dVar28) break;
      } while (iVar18 != 8);
      dVar27 = dVar27 / dVar29;
      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;
      if (uVar6 == 1) {
        (**(code **)(puVar23 + 0x1bdb4))
                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);
        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);
        if (uVar8 <= uVar14) goto LAB_00015d0c;
        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);
        dVar28 = dVar27 * dVar29;
      }
      else {
        iVar9 = *(int *)(puVar23 + 0x1bc48);
        dVar28 = dVar27;
        if (*(double *)(iVar9 + -0x730) <= dVar27) {
LAB_000159a0:
          iVar16 = *(int *)(puVar23 + 0x1bc48);
        }
        else {
          lVar30 = FUN_0001ccd0(dVar27);
          dVar28 = dVar27;
          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);
          if (uVar6 != 0) goto LAB_000159a0;
          iVar16 = *(int *)(puVar23 + 0x1bc48);
          if (dVar28 != dVar27) {
            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));
            goto LAB_000159a0;
          }
        }
        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);
        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);
        dVar27 = dVar28;
        if (uVar14 < uVar8) {
          iVar16 = *(int *)(puVar23 + 0x1bc48);
          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);
        }
        else {
LAB_00015d0c:
          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {
            uVar14 = uVar8 - (uStack_98 + 1);
            goto LAB_0001572c;
          }
          iVar16 = *(int *)(puVar23 + 0x1bc48);
          dVar29 = *(double *)(iVar16 + -0x728);
          dVar28 = dVar27 * dVar29;
          if (uVar6 == 1) goto LAB_00015a5c;
          iVar9 = *(int *)(puVar23 + 0x1bc48);
        }
        dVar29 = *(double *)(iVar16 + -0x728);
        if (dVar28 < *(double *)(iVar9 + -0x730)) {
          lVar30 = FUN_0001ccd0(dVar28);
          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);
          if ((uVar6 == 0) && (dVar27 != dVar28)) {
            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));
          }
          dVar28 = dVar27;
          dVar29 = *(double *)(iVar16 + -0x728);
        }
      }
LAB_00015a5c:
      (**(code **)(puVar23 + 0x1bdb4))
                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);
      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);
      uVar14 = uVar8;
    }
LAB_0001572c:
    pcVar25 = pcStack_b0 + -uVar8;
    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);
    pcVar4 = pcVar25 + uVar14;
  }
  if ((param_4 & 4) != 0) {
    uVar6 = (int)pcVar4 - (int)pcVar25;
    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);
    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);
    uVar14 = 0xffffffff;
    while( true ) {
      uVar8 = (uint)*pbVar21;
      if (uVar8 != 0) {
        uVar14 = uVar8;
        if (0x7e < uVar8) {
          uVar14 = uVar6;
        }
        pbVar21 = pbVar21 + 1;
      }
      if (uVar6 < uVar14) break;
      uVar6 = uVar6 - uVar14;
      pcVar25 = pcVar4 + -uVar14;
      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);
      if (uVar6 == 0) goto LAB_0001575c;
      pcVar4 = pcVar25 + -iVar9;
      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);
    }
    pcVar25 = pcVar4 + -uVar6;
    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);
  }
LAB_0001575c:
  if ((param_4 & 0x80) == 0) goto LAB_00015784;
  if ((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))) {
    iVar18 = 1;
    uVar14 = 1;
    piVar7 = (int *)0x0;
    do {
      uVar34 = (ulonglong)uVar14;
      uVar14 = (uint)(uVar34 * uVar20);
      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));
      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;
      iVar18 = iVar18 + 1;
    } while (iVar18 != 8);
    if ((param_4 & 0x40) != 0) {
LAB_00015bdc:
      pcStack_b0 = (char *)(iVar10 + 0x288);
      *(undefined1 *)(iVar10 + 0x287) = 0x20;
      goto LAB_00015be8;
    }
LAB_00015bf0:
    iVar10 = *(int *)(puVar23 + 0x1bc48);
    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {
      cVar11 = 'k';
    }
    else {
      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);
    }
    pcVar4 = pcStack_b0 + 1;
    *pcStack_b0 = cVar11;
  }
  else {
    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;
    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;
LAB_00015be8:
    pcVar4 = pcStack_b0;
    if (iVar18 != 0) goto LAB_00015bf0;
  }
  pcStack_b0 = pcVar4;
  if ((param_4 & 0x100) != 0) {
    pcVar15 = pcVar4 + 1;
    pcStack_b0 = pcVar15;
    if ((uVar13 != 0) && (iVar18 != 0)) {
      pcStack_b0 = pcVar4 + 2;
      *pcVar4 = 'i';
      pcVar4 = pcVar15;
    }
    *pcVar4 = 'B';
  }
LAB_00015784:
  while( true ) {
    *pcStack_b0 = '\0';
    if (iStack_5c == *piVar5) break;
    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();
  }
  return pcVar25;
}


lui gp,0x2
addiu gp,gp,0x3ca0
addu gp,gp,t9
addiu sp,sp,-0x28
andi v0,a1,0x100
sw s0,0x20(sp)
sw a2,0x30(sp)
sw a3,0x34(sp)
lw s0,-0x7d24(gp)
sw gp,0x10(sp)
sw ra,0x24(sp)
lw v1,0x0(s0)
sw v1,0x1c(sp)
bne v0,zero,0x000154bc
_addiu v0,sp,0x30
or a2,zero,zero
lw t9,-0x7db0(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw t9,-0x7f10(gp)
bal 0x00019cb0
_or a0,v0,zero
lw a0,0x1c(sp)
lw v1,0x0(s0)
bne a0,v1,0x000154c4
_lw gp,0x10(sp)
lw ra,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x28
b 0x00015480
_sw v0,0x18(sp)
lw t9,-0x7d44(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Removing unreachable block (ram,0x0001591c) */\n\nchar * open_safer(undefined4 param_1,uint param_2,int param_3,uint param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint extraout_v1;\n  uint uVar14;\n  char extraout_v1_01;\n  int extraout_v1_00;\n  char *pcVar15;\n  int iVar16;\n  uint uVar17;\n  int iVar18;\n  uint uVar19;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  char *pcVar25;\n  uint uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  ulonglong uVar34;\n  int local_res8;\n  uint local_resc;\n  char *pcStack_b0;\n  int iStack_a4;\n  uint uStack_98;\n  int iStack_90;\n  undefined1 auStack_88 [44];\n  int iStack_5c;\n  undefined *puStack_58;\n  uint uStack_14;\n  int *local_10;\n  \n  puVar2 = PTR___stack_chk_guard_000313bc;\n  uVar12 = *(uint *)PTR___stack_chk_guard_000313bc;\n  iVar10 = param_3;\n  piVar5 = &local_res8;\n  if ((param_2 & 0x100) == 0) {\n    iVar10 = 0;\n    piVar5 = local_10;\n  }\n  local_10 = piVar5;\n  local_res8 = param_3;\n  local_resc = param_4;\n  uVar3 = (*(code *)PTR_open64_00031330)();\n  pcVar4 = (char *)fd_safer(uVar3);\n  if (uVar12 == *(uint *)puVar2) {\n    return pcVar4;\n  }\n  uVar14 = uVar12;\n  puVar23 = PTR___stack_chk_fail_0003139c;\n  (*(code *)PTR___stack_chk_fail_0003139c)();\n  piVar5 = *(int **)(puVar23 + 0x1beec);\n  uVar13 = param_4 & 0x20;\n  uVar20 = 0x400;\n  iStack_5c = *piVar5;\n  uVar6 = param_4 & 3;\n  puStack_58 = puVar2;\n  if (uVar13 == 0) {\n    uVar20 = 1000;\n  }\n  piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))();\n  iStack_90 = *piVar7;\n  uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);\n  if (0xf < uStack_98 - 1) {\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }\n  iStack_a4 = piVar7[1];\n  pbVar21 = (byte *)piVar7[2];\n  uVar8 = (**(code **)(puVar23 + 0x1be70))();\n  if (0x10 < uVar8) {\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }\n  pcStack_b0 = (char *)(iVar10 + 0x287);\n  if ((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))) {\n    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);\n    uVar8 = (uint)(uVar31 >> 0x20);\n    uVar17 = (uint)uVar31;\n    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);\n    iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar19 = (uint)uVar33;\n    uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;\n    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);\n    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);\n    uVar14 = extraout_v1;\n    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }\nLAB_00015d94:\n    pcVar4 = pcStack_b0;\n    if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }\n    if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }\n  }\n  else {\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }\n  if ((param_4 & 4) != 0) {\n    uVar6 = (int)pcVar4 - (int)pcVar25;\n    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);\n    uVar14 = 0xffffffff;\n    while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }\n    pcVar25 = pcVar4 + -uVar6;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);\n  }\nLAB_0001575c:\n  if ((param_4 & 0x80) == 0) goto LAB_00015784;\n  if ((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))) {\n    iVar18 = 1;\n    uVar14 = 1;\n    piVar7 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);\n    if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }\n    pcVar4 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar11;\n  }\n  else {\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }\n  pcStack_b0 = pcVar4;\n  if ((param_4 & 0x100) != 0) {\n    pcVar15 = pcVar4 + 1;\n    pcStack_b0 = pcVar15;\n    if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }\n    *pcVar4 = 'B';\n  }\nLAB_00015784:\n  while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }\n  return pcVar25;\n}\n\n" comment (function_definition "char * open_safer(undefined4 param_1,uint param_2,int param_3,uint param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint extraout_v1;\n  uint uVar14;\n  char extraout_v1_01;\n  int extraout_v1_00;\n  char *pcVar15;\n  int iVar16;\n  uint uVar17;\n  int iVar18;\n  uint uVar19;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  char *pcVar25;\n  uint uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  ulonglong uVar34;\n  int local_res8;\n  uint local_resc;\n  char *pcStack_b0;\n  int iStack_a4;\n  uint uStack_98;\n  int iStack_90;\n  undefined1 auStack_88 [44];\n  int iStack_5c;\n  undefined *puStack_58;\n  uint uStack_14;\n  int *local_10;\n  \n  puVar2 = PTR___stack_chk_guard_000313bc;\n  uVar12 = *(uint *)PTR___stack_chk_guard_000313bc;\n  iVar10 = param_3;\n  piVar5 = &local_res8;\n  if ((param_2 & 0x100) == 0) {\n    iVar10 = 0;\n    piVar5 = local_10;\n  }\n  local_10 = piVar5;\n  local_res8 = param_3;\n  local_resc = param_4;\n  uVar3 = (*(code *)PTR_open64_00031330)();\n  pcVar4 = (char *)fd_safer(uVar3);\n  if (uVar12 == *(uint *)puVar2) {\n    return pcVar4;\n  }\n  uVar14 = uVar12;\n  puVar23 = PTR___stack_chk_fail_0003139c;\n  (*(code *)PTR___stack_chk_fail_0003139c)();\n  piVar5 = *(int **)(puVar23 + 0x1beec);\n  uVar13 = param_4 & 0x20;\n  uVar20 = 0x400;\n  iStack_5c = *piVar5;\n  uVar6 = param_4 & 3;\n  puStack_58 = puVar2;\n  if (uVar13 == 0) {\n    uVar20 = 1000;\n  }\n  piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))();\n  iStack_90 = *piVar7;\n  uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);\n  if (0xf < uStack_98 - 1) {\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }\n  iStack_a4 = piVar7[1];\n  pbVar21 = (byte *)piVar7[2];\n  uVar8 = (**(code **)(puVar23 + 0x1be70))();\n  if (0x10 < uVar8) {\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }\n  pcStack_b0 = (char *)(iVar10 + 0x287);\n  if ((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))) {\n    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);\n    uVar8 = (uint)(uVar31 >> 0x20);\n    uVar17 = (uint)uVar31;\n    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);\n    iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar19 = (uint)uVar33;\n    uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;\n    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);\n    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);\n    uVar14 = extraout_v1;\n    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }\nLAB_00015d94:\n    pcVar4 = pcStack_b0;\n    if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }\n    if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }\n  }\n  else {\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }\n  if ((param_4 & 4) != 0) {\n    uVar6 = (int)pcVar4 - (int)pcVar25;\n    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);\n    uVar14 = 0xffffffff;\n    while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }\n    pcVar25 = pcVar4 + -uVar6;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);\n  }\nLAB_0001575c:\n  if ((param_4 & 0x80) == 0) goto LAB_00015784;\n  if ((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))) {\n    iVar18 = 1;\n    uVar14 = 1;\n    piVar7 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);\n    if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }\n    pcVar4 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar11;\n  }\n  else {\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }\n  pcStack_b0 = pcVar4;\n  if ((param_4 & 0x100) != 0) {\n    pcVar15 = pcVar4 + 1;\n    pcStack_b0 = pcVar15;\n    if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }\n    *pcVar4 = 'B';\n  }\nLAB_00015784:\n  while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }\n  return pcVar25;\n}" primitive_type (pointer_declarator "* open_safer(undefined4 param_1,uint param_2,int param_3,uint param_4)" * (function_declarator "open_safer(undefined4 param_1,uint param_2,int param_3,uint param_4)" identifier (parameter_list "(undefined4 param_1,uint param_2,int param_3,uint param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) )))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint extraout_v1;\n  uint uVar14;\n  char extraout_v1_01;\n  int extraout_v1_00;\n  char *pcVar15;\n  int iVar16;\n  uint uVar17;\n  int iVar18;\n  uint uVar19;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  char *pcVar25;\n  uint uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  ulonglong uVar34;\n  int local_res8;\n  uint local_resc;\n  char *pcStack_b0;\n  int iStack_a4;\n  uint uStack_98;\n  int iStack_90;\n  undefined1 auStack_88 [44];\n  int iStack_5c;\n  undefined *puStack_58;\n  uint uStack_14;\n  int *local_10;\n  \n  puVar2 = PTR___stack_chk_guard_000313bc;\n  uVar12 = *(uint *)PTR___stack_chk_guard_000313bc;\n  iVar10 = param_3;\n  piVar5 = &local_res8;\n  if ((param_2 & 0x100) == 0) {\n    iVar10 = 0;\n    piVar5 = local_10;\n  }\n  local_10 = piVar5;\n  local_res8 = param_3;\n  local_resc = param_4;\n  uVar3 = (*(code *)PTR_open64_00031330)();\n  pcVar4 = (char *)fd_safer(uVar3);\n  if (uVar12 == *(uint *)puVar2) {\n    return pcVar4;\n  }\n  uVar14 = uVar12;\n  puVar23 = PTR___stack_chk_fail_0003139c;\n  (*(code *)PTR___stack_chk_fail_0003139c)();\n  piVar5 = *(int **)(puVar23 + 0x1beec);\n  uVar13 = param_4 & 0x20;\n  uVar20 = 0x400;\n  iStack_5c = *piVar5;\n  uVar6 = param_4 & 3;\n  puStack_58 = puVar2;\n  if (uVar13 == 0) {\n    uVar20 = 1000;\n  }\n  piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))();\n  iStack_90 = *piVar7;\n  uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);\n  if (0xf < uStack_98 - 1) {\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }\n  iStack_a4 = piVar7[1];\n  pbVar21 = (byte *)piVar7[2];\n  uVar8 = (**(code **)(puVar23 + 0x1be70))();\n  if (0x10 < uVar8) {\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }\n  pcStack_b0 = (char *)(iVar10 + 0x287);\n  if ((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))) {\n    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);\n    uVar8 = (uint)(uVar31 >> 0x20);\n    uVar17 = (uint)uVar31;\n    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);\n    iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar19 = (uint)uVar33;\n    uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;\n    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);\n    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);\n    uVar14 = extraout_v1;\n    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }\nLAB_00015d94:\n    pcVar4 = pcStack_b0;\n    if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }\n    if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }\n  }\n  else {\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }\n  if ((param_4 & 4) != 0) {\n    uVar6 = (int)pcVar4 - (int)pcVar25;\n    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);\n    uVar14 = 0xffffffff;\n    while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }\n    pcVar25 = pcVar4 + -uVar6;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);\n  }\nLAB_0001575c:\n  if ((param_4 & 0x80) == 0) goto LAB_00015784;\n  if ((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))) {\n    iVar18 = 1;\n    uVar14 = 1;\n    piVar7 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);\n    if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }\n    pcVar4 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar11;\n  }\n  else {\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }\n  pcStack_b0 = pcVar4;\n  if ((param_4 & 0x100) != 0) {\n    pcVar15 = pcVar4 + 1;\n    pcStack_b0 = pcVar15;\n    if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }\n    *pcVar4 = 'B';\n  }\nLAB_00015784:\n  while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }\n  return pcVar25;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_00;" primitive_type identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "char *pcVar25;" primitive_type (pointer_declarator "*pcVar25" * identifier) ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "double dVar28;" primitive_type identifier ;) (declaration "double dVar29;" primitive_type identifier ;) (declaration "longlong lVar30;" type_identifier identifier ;) (declaration "ulonglong uVar31;" type_identifier identifier ;) (declaration "longlong lVar32;" type_identifier identifier ;) (declaration "undefined8 uVar33;" type_identifier identifier ;) (declaration "ulonglong uVar34;" type_identifier identifier ;) (declaration "int local_res8;" primitive_type identifier ;) (declaration "uint local_resc;" type_identifier identifier ;) (declaration "char *pcStack_b0;" primitive_type (pointer_declarator "*pcStack_b0" * identifier) ;) (declaration "int iStack_a4;" primitive_type identifier ;) (declaration "uint uStack_98;" type_identifier identifier ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "undefined1 auStack_88 [44];" type_identifier (array_declarator "auStack_88 [44]" identifier [ number_literal ]) ;) (declaration "int iStack_5c;" primitive_type identifier ;) (declaration "undefined *puStack_58;" type_identifier (pointer_declarator "*puStack_58" * identifier) ;) (declaration "uint uStack_14;" type_identifier identifier ;) (declaration "int *local_10;" primitive_type (pointer_declarator "*local_10" * identifier) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000313bc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000313bc" identifier = identifier) ;) (expression_statement "uVar12 = *(uint *)PTR___stack_chk_guard_000313bc;" (assignment_expression "uVar12 = *(uint *)PTR___stack_chk_guard_000313bc" identifier = (pointer_expression "*(uint *)PTR___stack_chk_guard_000313bc" * (cast_expression "(uint *)PTR___stack_chk_guard_000313bc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar10 = param_3;" (assignment_expression "iVar10 = param_3" identifier = identifier) ;) (expression_statement "piVar5 = &local_res8;" (assignment_expression "piVar5 = &local_res8" identifier = (pointer_expression "&local_res8" & identifier)) ;) (if_statement "if ((param_2 & 0x100) == 0) {\n    iVar10 = 0;\n    piVar5 = local_10;\n  }" if (parenthesized_expression "((param_2 & 0x100) == 0)" ( (binary_expression "(param_2 & 0x100) == 0" (parenthesized_expression "(param_2 & 0x100)" ( (binary_expression "param_2 & 0x100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar10 = 0;\n    piVar5 = local_10;\n  }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "piVar5 = local_10;" (assignment_expression "piVar5 = local_10" identifier = identifier) ;) })) (expression_statement "local_10 = piVar5;" (assignment_expression "local_10 = piVar5" identifier = identifier) ;) (expression_statement "local_res8 = param_3;" (assignment_expression "local_res8 = param_3" identifier = identifier) ;) (expression_statement "local_resc = param_4;" (assignment_expression "local_resc = param_4" identifier = identifier) ;) (expression_statement "uVar3 = (*(code *)PTR_open64_00031330)();" (assignment_expression "uVar3 = (*(code *)PTR_open64_00031330)()" identifier = (call_expression "(*(code *)PTR_open64_00031330)()" (parenthesized_expression "(*(code *)PTR_open64_00031330)" ( (pointer_expression "*(code *)PTR_open64_00031330" * (cast_expression "(code *)PTR_open64_00031330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar4 = (char *)fd_safer(uVar3);" (assignment_expression "pcVar4 = (char *)fd_safer(uVar3)" identifier = (cast_expression "(char *)fd_safer(uVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "fd_safer(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))))) ;) (if_statement "if (uVar12 == *(uint *)puVar2) {\n    return pcVar4;\n  }" if (parenthesized_expression "(uVar12 == *(uint *)puVar2)" ( (binary_expression "uVar12 == *(uint *)puVar2" identifier == (pointer_expression "*(uint *)puVar2" * (cast_expression "(uint *)puVar2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pcVar4;\n  }" { (return_statement "return pcVar4;" return identifier ;) })) (expression_statement "uVar14 = uVar12;" (assignment_expression "uVar14 = uVar12" identifier = identifier) ;) (expression_statement "puVar23 = PTR___stack_chk_fail_0003139c;" (assignment_expression "puVar23 = PTR___stack_chk_fail_0003139c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0003139c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003139c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003139c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003139c" * (cast_expression "(code *)PTR___stack_chk_fail_0003139c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar5 = *(int **)(puVar23 + 0x1beec);" (assignment_expression "piVar5 = *(int **)(puVar23 + 0x1beec)" identifier = (pointer_expression "*(int **)(puVar23 + 0x1beec)" * (cast_expression "(int **)(puVar23 + 0x1beec)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1beec)" ( (binary_expression "puVar23 + 0x1beec" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = param_4 & 0x20;" (assignment_expression "uVar13 = param_4 & 0x20" identifier = (binary_expression "param_4 & 0x20" identifier & number_literal)) ;) (expression_statement "uVar20 = 0x400;" (assignment_expression "uVar20 = 0x400" identifier = number_literal) ;) (expression_statement "iStack_5c = *piVar5;" (assignment_expression "iStack_5c = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "uVar6 = param_4 & 3;" (assignment_expression "uVar6 = param_4 & 3" identifier = (binary_expression "param_4 & 3" identifier & number_literal)) ;) (expression_statement "puStack_58 = puVar2;" (assignment_expression "puStack_58 = puVar2" identifier = identifier) ;) (if_statement "if (uVar13 == 0) {\n    uVar20 = 1000;\n  }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar20 = 1000;\n  }" { (expression_statement "uVar20 = 1000;" (assignment_expression "uVar20 = 1000" identifier = number_literal) ;) })) (expression_statement "piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))();" (assignment_expression "piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))()" identifier = (cast_expression "(int *)(**(code **)(puVar23 + 0x1be00))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar23 + 0x1be00))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1be00))" ( (pointer_expression "**(code **)(puVar23 + 0x1be00)" * (pointer_expression "*(code **)(puVar23 + 0x1be00)" * (cast_expression "(code **)(puVar23 + 0x1be00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be00)" ( (binary_expression "puVar23 + 0x1be00" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iStack_90 = *piVar7;" (assignment_expression "iStack_90 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);" (assignment_expression "uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iStack_90)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iStack_90)" ( identifier )))) ;) (if_statement "if (0xf < uStack_98 - 1) {\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }" if (parenthesized_expression "(0xf < uStack_98 - 1)" ( (binary_expression "0xf < uStack_98 - 1" number_literal < (binary_expression "uStack_98 - 1" identifier - number_literal)) )) (compound_statement "{\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }" { (expression_statement "uStack_98 = 1;" (assignment_expression "uStack_98 = 1" identifier = number_literal) ;) (expression_statement "iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;" (assignment_expression "iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0" identifier = (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7c0" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "iStack_a4 = piVar7[1];" (assignment_expression "iStack_a4 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar21 = (byte *)piVar7[2];" (assignment_expression "pbVar21 = (byte *)piVar7[2]" identifier = (cast_expression "(byte *)piVar7[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar7[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar8 = (**(code **)(puVar23 + 0x1be70))();" (assignment_expression "uVar8 = (**(code **)(puVar23 + 0x1be70))()" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (0x10 < uVar8) {\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }" if (parenthesized_expression "(0x10 < uVar8)" ( (binary_expression "0x10 < uVar8" number_literal < identifier) )) (compound_statement "{\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }" { (expression_statement "iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;" (assignment_expression "iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c" identifier = (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0xf6c" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "pcStack_b0 = (char *)(iVar10 + 0x287);" (assignment_expression "pcStack_b0 = (char *)(iVar10 + 0x287)" identifier = (cast_expression "(char *)(iVar10 + 0x287)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x287)" ( (binary_expression "iVar10 + 0x287" identifier + number_literal) )))) ;) (if_statement "if ((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))) {\n    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);\n    uVar8 = (uint)(uVar31 >> 0x20);\n    uVar17 = (uint)uVar31;\n    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);\n    iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar19 = (uint)uVar33;\n    uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;\n    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);\n    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);\n    uVar14 = extraout_v1;\n    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }\nLAB_00015d94:\n    pcVar4 = pcStack_b0;\n    if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }\n    if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }\n  }\n  else {\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }" if (parenthesized_expression "((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12))))" ( (binary_expression "(&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))" (parenthesized_expression "(&_gp_1 < local_10)" ( (binary_expression "&_gp_1 < local_10" (pointer_expression "&_gp_1" & identifier) < identifier) )) || (parenthesized_expression "((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))" ( (parenthesized_expression "(local_10 == (int *)&_gp_1 && (uStack_14 < uVar12))" ( (binary_expression "local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)" (binary_expression "local_10 == (int *)&_gp_1" identifier == (cast_expression "(int *)&_gp_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&_gp_1" & identifier))) && (parenthesized_expression "(uStack_14 < uVar12)" ( (binary_expression "uStack_14 < uVar12" identifier < identifier) ))) )) ))) )) (compound_statement "{\n    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);\n    uVar8 = (uint)(uVar31 >> 0x20);\n    uVar17 = (uint)uVar31;\n    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);\n    iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar19 = (uint)uVar33;\n    uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;\n    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);\n    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);\n    uVar14 = extraout_v1;\n    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }\nLAB_00015d94:\n    pcVar4 = pcStack_b0;\n    if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }\n    if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }\n  }" { (expression_statement "lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);" (assignment_expression "lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14)" identifier = (call_expression "FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14)" identifier (argument_list "(local_10,uVar12,&_gp_1,uStack_14)" ( identifier , identifier , (pointer_expression "&_gp_1" & identifier) , identifier )))) ;) (if_statement "if (lVar30 != 0) goto LAB_00015680;" if (parenthesized_expression "(lVar30 != 0)" ( (binary_expression "lVar30 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015680;" goto statement_identifier ;)) (expression_statement "uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);" (assignment_expression "uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14)" identifier = (call_expression "FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14)" identifier (argument_list "(local_10,uVar12,&_gp_1,uStack_14)" ( identifier , identifier , (pointer_expression "&_gp_1" & identifier) , identifier )))) ;) (expression_statement "uVar8 = (uint)(uVar31 >> 0x20);" (assignment_expression "uVar8 = (uint)(uVar31 >> 0x20)" identifier = (call_expression "(uint)(uVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar31 >> 0x20)" ( (binary_expression "uVar31 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar17 = (uint)uVar31;" (assignment_expression "uVar17 = (uint)uVar31" identifier = (cast_expression "(uint)uVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);" (assignment_expression "uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17)" identifier = (call_expression "FUN_0001db50(uVar14,param_2,uVar8,uVar17)" identifier (argument_list "(uVar14,param_2,uVar8,uVar17)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar18 = (int)((ulonglong)uVar33 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)uVar33 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar33 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar33 >> 0x20)" ( (binary_expression "(ulonglong)uVar33 >> 0x20" (cast_expression "(ulonglong)uVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar19 = (uint)uVar33;" (assignment_expression "uVar19 = (uint)uVar33" identifier = (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;" (assignment_expression "uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2" identifier = (binary_expression "uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2" (binary_expression "uVar19 * 5 >> 0x1f" (binary_expression "uVar19 * 5" identifier * number_literal) >> number_literal) | (binary_expression "((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2" (parenthesized_expression "((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18)" ( (binary_expression "(uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18" (binary_expression "(uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2)" (call_expression "(uint)(uVar19 * 5 < uVar19 * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 * 5 < uVar19 * 4)" ( (binary_expression "uVar19 * 5 < uVar19 * 4" (binary_expression "uVar19 * 5" identifier * number_literal) < (binary_expression "uVar19 * 4" identifier * number_literal)) ))) + (parenthesized_expression "(uVar19 >> 0x1e | iVar18 << 2)" ( (binary_expression "uVar19 >> 0x1e | iVar18 << 2" (binary_expression "uVar19 >> 0x1e" identifier >> number_literal) | (binary_expression "iVar18 << 2" identifier << number_literal)) ))) + identifier) )) * number_literal))) ;) (expression_statement "lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);" (assignment_expression "lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17)" identifier = (call_expression "FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17)" identifier (argument_list "(uVar22,uVar19 * 10,uVar8,uVar17)" ( identifier , (binary_expression "uVar19 * 10" identifier * number_literal) , identifier , identifier )))) ;) (expression_statement "lVar30 = lVar32 << 1;" (assignment_expression "lVar30 = lVar32 << 1" identifier = (binary_expression "lVar32 << 1" identifier << number_literal)) ;) (expression_statement "uVar26 = (uint)((ulonglong)lVar30 >> 0x20);" (assignment_expression "uVar26 = (uint)((ulonglong)lVar30 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar30 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);" (assignment_expression "uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17)" identifier = (call_expression "FUN_0001d6e0(uVar14,param_2,uVar8,uVar17)" identifier (argument_list "(uVar14,param_2,uVar8,uVar17)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);" (call_expression "FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17)" identifier (argument_list "(uVar22,uVar19 * 10,uVar8,uVar17)" ( identifier , (binary_expression "uVar19 * 10" identifier * number_literal) , identifier , identifier ))) ;) (expression_statement "uVar14 = extraout_v1;" (assignment_expression "uVar14 = extraout_v1" identifier = identifier) ;) (if_statement "if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }" if (parenthesized_expression "((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17))))" ( (binary_expression "(uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))" (parenthesized_expression "(uVar26 < uVar8)" ( (binary_expression "uVar26 < uVar8" identifier < identifier) )) || (parenthesized_expression "((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))" ( (parenthesized_expression "(uVar8 == uVar26 && ((uint)lVar30 < uVar17))" ( (binary_expression "uVar8 == uVar26 && ((uint)lVar30 < uVar17)" (binary_expression "uVar8 == uVar26" identifier == identifier) && (parenthesized_expression "((uint)lVar30 < uVar17)" ( (binary_expression "(uint)lVar30 < uVar17" (cast_expression "(uint)lVar30" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))) )) ))) )) (compound_statement "{\n      uVar8 = (uint)(lVar30 != 0);\n    }" { (expression_statement "uVar8 = (uint)(lVar30 != 0);" (assignment_expression "uVar8 = (uint)(lVar30 != 0)" identifier = (call_expression "(uint)(lVar30 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(lVar30 != 0)" ( (binary_expression "lVar30 != 0" identifier != number_literal) )))) ;) }) (else_clause "else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }" else (if_statement "if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }" if (parenthesized_expression "(uVar31 < (ulonglong)(lVar32 << 1))" ( (binary_expression "uVar31 < (ulonglong)(lVar32 << 1)" identifier < (call_expression "(ulonglong)(lVar32 << 1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar32 << 1)" ( (binary_expression "lVar32 << 1" identifier << number_literal) )))) )) (compound_statement "{\n      uVar8 = 3;\n    }" { (expression_statement "uVar8 = 3;" (assignment_expression "uVar8 = 3" identifier = number_literal) ;) }) (else_clause "else {\n      uVar8 = 2;\n    }" else (compound_statement "{\n      uVar8 = 2;\n    }" { (expression_statement "uVar8 = 2;" (assignment_expression "uVar8 = 2" identifier = number_literal) ;) }))))) (labeled_statement "LAB_00015d94:\n    pcVar4 = pcStack_b0;" statement_identifier : (expression_statement "pcVar4 = pcStack_b0;" (assignment_expression "pcVar4 = pcStack_b0" identifier = identifier) ;)) (if_statement "if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }" 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) )) (compound_statement "{\n      iVar18 = -1;\n    }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }" else (compound_statement "{\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (if_statement "if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }" if (parenthesized_expression "(((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34))" ( (binary_expression "((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)" (parenthesized_expression "((int)(uVar34 >> 0x20) != 0)" ( (binary_expression "(int)(uVar34 >> 0x20) != 0" (cast_expression "(int)(uVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) ))) != number_literal) )) || (parenthesized_expression "(uVar20 <= (uint)uVar34)" ( (binary_expression "uVar20 <= (uint)uVar34" identifier <= (cast_expression "(uint)uVar34" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) (compound_statement "{\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);" do (compound_statement "{\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        }" { (expression_statement "uVar3 = (undefined4)(uVar34 >> 0x20);" (assignment_expression "uVar3 = (undefined4)(uVar34 >> 0x20)" identifier = (call_expression "(undefined4)(uVar34 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "FUN_0001db50(uVar3,(int)uVar34,0,uVar20);" (call_expression "FUN_0001db50(uVar3,(int)uVar34,0,uVar20)" identifier (argument_list "(uVar3,(int)uVar34,0,uVar20)" ( identifier , (cast_expression "(int)uVar34" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , identifier ))) ;) (expression_statement "uVar17 = extraout_v1_00 * 10 + uVar14;" (assignment_expression "uVar17 = extraout_v1_00 * 10 + uVar14" identifier = (binary_expression "extraout_v1_00 * 10 + uVar14" (binary_expression "extraout_v1_00 * 10" identifier * number_literal) + identifier)) ;) (if_statement "if (uVar20 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar14 = uVar17 / uVar20;" (assignment_expression "uVar14 = uVar17 / uVar20" identifier = (binary_expression "uVar17 / uVar20" identifier / identifier)) ;) (expression_statement "uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);" (assignment_expression "uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1)" identifier = (binary_expression "(uVar17 % uVar20) * 2 + ((int)uVar8 >> 1)" (binary_expression "(uVar17 % uVar20) * 2" (parenthesized_expression "(uVar17 % uVar20)" ( (binary_expression "uVar17 % uVar20" identifier % identifier) )) * number_literal) + (parenthesized_expression "((int)uVar8 >> 1)" ( (binary_expression "(int)uVar8 >> 1" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);" (assignment_expression "uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20)" identifier = (call_expression "FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20)" identifier (argument_list "(uVar3,(int)uVar34,0,uVar20)" ( identifier , (cast_expression "(int)uVar34" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , identifier )))) ;) (expression_statement "uVar17 = (uint)uVar34;" (assignment_expression "uVar17 = (uint)uVar34" identifier = (cast_expression "(uint)uVar34" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar26 = uVar8 + uVar19;" (assignment_expression "uVar26 = uVar8 + uVar19" identifier = (binary_expression "uVar8 + uVar19" identifier + identifier)) ;) (if_statement "if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }" if (parenthesized_expression "(uVar19 < uVar20)" ( (binary_expression "uVar19 < uVar20" identifier < identifier) )) (compound_statement "{\n            uVar8 = (uint)(uVar26 != 0);\n          }" { (expression_statement "uVar8 = (uint)(uVar26 != 0);" (assignment_expression "uVar8 = (uint)(uVar26 != 0)" identifier = (call_expression "(uint)(uVar26 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )))) ;) }) (else_clause "else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }" else (compound_statement "{\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }" { (expression_statement "uVar8 = 2;" (assignment_expression "uVar8 = 2" identifier = number_literal) ;) (if_statement "if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }" if (parenthesized_expression "(uVar20 < uVar26)" ( (binary_expression "uVar20 < uVar26" identifier < identifier) )) (compound_statement "{\n              uVar8 = 3;\n            }" { (expression_statement "uVar8 = 3;" (assignment_expression "uVar8 = 3" identifier = number_literal) ;) })) }))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }" if (parenthesized_expression "(((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20))" ( (binary_expression "((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)" (parenthesized_expression "((int)(uVar34 >> 0x20) == 0)" ( (binary_expression "(int)(uVar34 >> 0x20) == 0" (cast_expression "(int)(uVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(uVar17 < uVar20)" ( (binary_expression "uVar17 < uVar20" identifier < identifier) ))) )) (compound_statement "{\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }" { (if_statement "if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }" if (parenthesized_expression "(uVar17 < 10)" ( (binary_expression "uVar17 < 10" identifier < number_literal) )) (compound_statement "{\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }" { (if_statement "if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (compound_statement "{\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }" { (expression_statement "bVar1 = 2 < (uVar14 & 1) + uVar8;" (assignment_expression "bVar1 = 2 < (uVar14 & 1) + uVar8" identifier = (binary_expression "2 < (uVar14 & 1) + uVar8" number_literal < (binary_expression "(uVar14 & 1) + uVar8" (parenthesized_expression "(uVar14 & 1)" ( (binary_expression "uVar14 & 1" identifier & number_literal) )) + identifier))) ;) (labeled_statement "LAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;" statement_identifier : (if_statement "if (!bVar1) goto LAB_0001606c;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (goto_statement "goto LAB_0001606c;" goto statement_identifier ;))) (expression_statement "uVar19 = uVar17 + 1;" (assignment_expression "uVar19 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (if_statement "if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }" if (parenthesized_expression "(uVar14 == 9)" ( (binary_expression "uVar14 == 9" identifier == number_literal) )) (compound_statement "{\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }" { (expression_statement "bVar1 = uVar19 < uVar17;" (assignment_expression "bVar1 = uVar19 < uVar17" identifier = (binary_expression "uVar19 < uVar17" identifier < identifier)) ;) (expression_statement "uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);" (assignment_expression "uVar34 = (ulonglong)CONCAT14(bVar1,uVar19)" identifier = (cast_expression "(ulonglong)CONCAT14(bVar1,uVar19)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,uVar19)" identifier (argument_list "(bVar1,uVar19)" ( identifier , identifier ))))) ;) (if_statement "if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }" if (parenthesized_expression "((bVar1) || (uVar19 != 10))" ( (binary_expression "(bVar1) || (uVar19 != 10)" (parenthesized_expression "(bVar1)" ( identifier )) || (parenthesized_expression "(uVar19 != 10)" ( (binary_expression "uVar19 != 10" identifier != number_literal) ))) )) (compound_statement "{\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00016074;" goto statement_identifier ;) })) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);" (assignment_expression "uVar34 = (ulonglong)CONCAT14(bVar1,uVar19)" identifier = (cast_expression "(ulonglong)CONCAT14(bVar1,uVar19)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,uVar19)" identifier (argument_list "(bVar1,uVar19)" ( identifier , identifier ))))) ;) (goto_statement "goto LAB_000160b4;" goto statement_identifier ;) })) (expression_statement "cVar11 = (char)uVar14 + '1';" (assignment_expression "cVar11 = (char)uVar14 + '1'" identifier = (binary_expression "(char)uVar14 + '1'" (cast_expression "(char)uVar14" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'1'" ' character '))) ;) (labeled_statement "LAB_00016084:\n                uVar8 = 0;" statement_identifier : (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;)) (expression_statement "pcVar24 = *(code **)(puVar23 + 0x1bef0);" (assignment_expression "pcVar24 = *(code **)(puVar23 + 0x1bef0)" identifier = (pointer_expression "*(code **)(puVar23 + 0x1bef0)" * (cast_expression "(code **)(puVar23 + 0x1bef0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef0)" ( (binary_expression "puVar23 + 0x1bef0" identifier + number_literal) ))))) ;) (expression_statement "*(char *)(iVar10 + 0x286) = cVar11;" (assignment_expression "*(char *)(iVar10 + 0x286) = cVar11" (pointer_expression "*(char *)(iVar10 + 0x286)" * (cast_expression "(char *)(iVar10 + 0x286)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x286)" ( (binary_expression "iVar10 + 0x286" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);" (assignment_expression "pcVar4 = (char *)((iVar10 + 0x286) - uStack_98)" identifier = (cast_expression "(char *)((iVar10 + 0x286) - uStack_98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar10 + 0x286) - uStack_98)" ( (binary_expression "(iVar10 + 0x286) - uStack_98" (parenthesized_expression "(iVar10 + 0x286)" ( (binary_expression "iVar10 + 0x286" identifier + number_literal) )) - identifier) )))) ;) (expression_statement "(*pcVar24)(pcVar4,iStack_90,uStack_98);" (call_expression "(*pcVar24)(pcVar4,iStack_90,uStack_98)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(pcVar4,iStack_90,uStack_98)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }" else (compound_statement "{\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }" { (expression_statement "bVar1 = uVar8 != 0;" (assignment_expression "bVar1 = uVar8 != 0" identifier = (binary_expression "uVar8 != 0" identifier != number_literal)) ;) (if_statement "if (uVar6 == 0) goto LAB_000160dc;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000160dc;" goto statement_identifier ;)) (labeled_statement "LAB_0001606c:\n                cVar11 = (char)uVar14 + '0';" statement_identifier : (expression_statement "cVar11 = (char)uVar14 + '0';" (assignment_expression "cVar11 = (char)uVar14 + '0'" identifier = (binary_expression "(char)uVar14 + '0'" (cast_expression "(char)uVar14" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'0'" ' character '))) ;)) (if_statement "if (uVar14 != 0) goto LAB_00016084;" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016084;" goto statement_identifier ;)) (labeled_statement "LAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }" statement_identifier : (if_statement "if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\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                  cVar11 = '0';\n                  goto LAB_00016084;\n                }" { (expression_statement "cVar11 = '0';" (assignment_expression "cVar11 = '0'" identifier = (char_literal "'0'" ' character ')) ;) (goto_statement "goto LAB_00016084;" goto statement_identifier ;) }))) }))) (labeled_statement "LAB_000160b4:\n              uVar14 = 0;" statement_identifier : (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;)) (expression_statement "pcVar25 = pcVar4;" (assignment_expression "pcVar25 = pcVar4" identifier = identifier) ;) (if_statement "if (uVar6 == 1) goto LAB_00015e08;" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (goto_statement "goto LAB_00015dcc;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) }) while (parenthesized_expression "(iVar18 != 8)" ( (binary_expression "iVar18 != 8" identifier != number_literal) )) ;) })) }))) (if_statement "if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (compound_statement "{\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }" { (expression_statement "pcVar25 = pcStack_b0;" (assignment_expression "pcVar25 = pcStack_b0" identifier = identifier) ;) (if_statement "if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;" if (parenthesized_expression "(5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14))" ( (binary_expression "5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)" number_literal < (cast_expression "(int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)" ( (binary_expression "(((uint)uVar34 & 1) + uVar8 != 0) + uVar14" (parenthesized_expression "(((uint)uVar34 & 1) + uVar8 != 0)" ( (binary_expression "((uint)uVar34 & 1) + uVar8 != 0" (binary_expression "((uint)uVar34 & 1) + uVar8" (parenthesized_expression "((uint)uVar34 & 1)" ( (binary_expression "(uint)uVar34 & 1" (cast_expression "(uint)uVar34" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) + identifier) != number_literal) )) + identifier) )))) )) (goto_statement "goto LAB_00015ddc;" goto statement_identifier ;)) (labeled_statement "LAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);" statement_identifier : (do_statement "do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);" do (compound_statement "{\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      }" { (do_statement "do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);" do (compound_statement "{\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        }" { (expression_statement "iVar9 = (int)(uVar34 >> 0x20);" (assignment_expression "iVar9 = (int)(uVar34 >> 0x20)" identifier = (cast_expression "(int)(uVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar14 = (uint)uVar34;" (assignment_expression "uVar14 = (uint)uVar34" identifier = (cast_expression "(uint)uVar34" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "FUN_0001db50(iVar9,uVar14,0,10);" (call_expression "FUN_0001db50(iVar9,uVar14,0,10)" identifier (argument_list "(iVar9,uVar14,0,10)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "pcVar25 = pcVar25 + -1;" (assignment_expression "pcVar25 = pcVar25 + -1" identifier = (binary_expression "pcVar25 + -1" identifier + number_literal)) ;) (expression_statement "*pcVar25 = extraout_v1_01 + '0';" (assignment_expression "*pcVar25 = extraout_v1_01 + '0'" (pointer_expression "*pcVar25" * identifier) = (binary_expression "extraout_v1_01 + '0'" identifier + (char_literal "'0'" ' character '))) ;) (expression_statement "uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);" (assignment_expression "uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10)" identifier = (call_expression "FUN_0001d6e0(iVar9,uVar14,0,10)" identifier (argument_list "(iVar9,uVar14,0,10)" ( identifier , identifier , number_literal , number_literal )))) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) }) while (parenthesized_expression "(9 < uVar14)" ( (binary_expression "9 < uVar14" number_literal < identifier) )) ;)) }) (else_clause "else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }" else (compound_statement "{\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }" { (labeled_statement "LAB_00015dcc:\n      pcVar25 = pcVar4;" statement_identifier : (expression_statement "pcVar25 = pcVar4;" (assignment_expression "pcVar25 = pcVar4" identifier = identifier) ;)) (if_statement "if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;" if (parenthesized_expression "((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1))" ( (binary_expression "(uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)" (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) || (parenthesized_expression "((int)(uVar14 + uVar8) < 1)" ( (binary_expression "(int)(uVar14 + uVar8) < 1" (cast_expression "(int)(uVar14 + uVar8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar14 + uVar8)" ( (binary_expression "uVar14 + uVar8" identifier + identifier) ))) < number_literal) ))) )) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (labeled_statement "LAB_00015ddc:\n      uVar34 = uVar34 + 1;" statement_identifier : (expression_statement "uVar34 = uVar34 + 1;" (assignment_expression "uVar34 = uVar34 + 1" identifier = (binary_expression "uVar34 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar25 = pcVar4;" (assignment_expression "pcVar25 = pcVar4" identifier = identifier) ;) (if_statement "if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;" if (parenthesized_expression "(((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))" ( (binary_expression "((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8)))" (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) )) || (parenthesized_expression "((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8)))" ( (parenthesized_expression "(((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))" ( (binary_expression "((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8)" (parenthesized_expression "((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34))" ( (binary_expression "(int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)" (binary_expression "(int)(uVar34 >> 0x20) != 0" (cast_expression "(int)(uVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) ))) != number_literal) || (parenthesized_expression "(uVar20 != (uint)uVar34)" ( (binary_expression "uVar20 != (uint)uVar34" identifier != (cast_expression "(uint)uVar34" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) || (parenthesized_expression "(iVar18 == 8)" ( (binary_expression "iVar18 == 8" identifier == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\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        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }" { (expression_statement "pcVar24 = *(code **)(puVar23 + 0x1bef0);" (assignment_expression "pcVar24 = *(code **)(puVar23 + 0x1bef0)" identifier = (pointer_expression "*(code **)(puVar23 + 0x1bef0)" * (cast_expression "(code **)(puVar23 + 0x1bef0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef0)" ( (binary_expression "puVar23 + 0x1bef0" identifier + number_literal) ))))) ;) (expression_statement "pcVar4[-1] = '0';" (assignment_expression "pcVar4[-1] = '0'" (subscript_expression "pcVar4[-1]" identifier [ number_literal ]) = (char_literal "'0'" ' character ')) ;) (expression_statement "pcVar4 = pcVar4 + ~uStack_98;" (assignment_expression "pcVar4 = pcVar4 + ~uStack_98" identifier = (binary_expression "pcVar4 + ~uStack_98" identifier + (unary_expression "~uStack_98" ~ identifier))) ;) (expression_statement "(*pcVar24)(pcVar4,iStack_90);" (call_expression "(*pcVar24)(pcVar4,iStack_90)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(pcVar4,iStack_90)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar25 = pcVar4 + -1;" (assignment_expression "pcVar25 = pcVar4 + -1" identifier = (binary_expression "pcVar4 + -1" identifier + number_literal)) ;) (expression_statement "pcVar4[-1] = '1';" (assignment_expression "pcVar4[-1] = '1'" (subscript_expression "pcVar4[-1]" identifier [ number_literal ]) = (char_literal "'1'" ' character ')) ;) }))) }) (else_clause "else {\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }" else (compound_statement "{\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }" { (expression_statement "lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);" (assignment_expression "lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12)" identifier = (call_expression "FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12)" identifier (argument_list "(&_gp_1,uStack_14,local_10,uVar12)" ( (pointer_expression "&_gp_1" & identifier) , identifier , identifier , identifier )))) ;) (if_statement "if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }" if (parenthesized_expression "(lVar30 == 0)" ( (binary_expression "lVar30 == 0" identifier == number_literal) )) (compound_statement "{\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }" { (expression_statement "lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);" (assignment_expression "lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12)" identifier = (call_expression "FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12)" identifier (argument_list "(&_gp_1,uStack_14,local_10,uVar12)" ( (pointer_expression "&_gp_1" & identifier) , identifier , identifier , identifier )))) ;) (expression_statement "uVar34 = lVar30 * CONCAT44(uVar14,param_2);" (assignment_expression "uVar34 = lVar30 * CONCAT44(uVar14,param_2)" identifier = (binary_expression "lVar30 * CONCAT44(uVar14,param_2)" identifier * (call_expression "CONCAT44(uVar14,param_2)" identifier (argument_list "(uVar14,param_2)" ( identifier , identifier ))))) ;) (expression_statement "lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));" (assignment_expression "lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20))" identifier = (call_expression "FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20))" identifier (argument_list "((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20))" ( (cast_expression "(int)(uVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) ))) , (cast_expression "(int)uVar34" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)((ulonglong)lVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (if_statement "if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }" if (parenthesized_expression "(lVar30 == CONCAT44(uVar14,param_2))" ( (binary_expression "lVar30 == CONCAT44(uVar14,param_2)" identifier == (call_expression "CONCAT44(uVar14,param_2)" identifier (argument_list "(uVar14,param_2)" ( identifier , identifier )))) )) (compound_statement "{\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00015d94;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);" statement_identifier : (expression_statement "dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);" (assignment_expression "dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14)" identifier = (cast_expression "(double)FUN_0001cd70(&_gp_1,uStack_14)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70(&_gp_1,uStack_14)" identifier (argument_list "(&_gp_1,uStack_14)" ( (pointer_expression "&_gp_1" & identifier) , identifier ))))) ;)) (expression_statement "dVar28 = (double)FUN_0001cd70(local_10,uVar12);" (assignment_expression "dVar28 = (double)FUN_0001cd70(local_10,uVar12)" identifier = (cast_expression "(double)FUN_0001cd70(local_10,uVar12)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70(local_10,uVar12)" identifier (argument_list "(local_10,uVar12)" ( identifier , identifier ))))) ;) (expression_statement "dVar27 = dVar27 / dVar28;" (assignment_expression "dVar27 = dVar27 / dVar28" identifier = (binary_expression "dVar27 / dVar28" identifier / identifier)) ;) (expression_statement "dVar28 = (double)FUN_0001cd70(uVar14,param_2);" (assignment_expression "dVar28 = (double)FUN_0001cd70(uVar14,param_2)" identifier = (cast_expression "(double)FUN_0001cd70(uVar14,param_2)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70(uVar14,param_2)" identifier (argument_list "(uVar14,param_2)" ( identifier , identifier ))))) ;) (expression_statement "dVar27 = dVar27 * dVar28;" (assignment_expression "dVar27 = dVar27 * dVar28" identifier = (binary_expression "dVar27 * dVar28" identifier * identifier)) ;) (if_statement "if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }" 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) )) (compound_statement "{\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }" { (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" identifier = identifier) ;) (if_statement "if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }" if (parenthesized_expression "(((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)))" ( (binary_expression "((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))" (parenthesized_expression "((param_4 & 3) != 1)" ( (binary_expression "(param_4 & 3) != 1" (parenthesized_expression "(param_4 & 3)" ( (binary_expression "param_4 & 3" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))" ( (binary_expression "dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)" identifier < (pointer_expression "*(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)" * (cast_expression "(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0x1bc48) + -0x730)" ( (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x730" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal) ))))) ))) )) (compound_statement "{\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }" { (expression_statement "uVar33 = FUN_0001ccd0(dVar27);" (assignment_expression "uVar33 = FUN_0001ccd0(dVar27)" identifier = (call_expression "FUN_0001ccd0(dVar27)" identifier (argument_list "(dVar27)" ( identifier )))) ;) (expression_statement "iVar18 = (int)((ulonglong)uVar33 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)uVar33 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar33 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar33 >> 0x20)" ( (binary_expression "(ulonglong)uVar33 >> 0x20" (cast_expression "(ulonglong)uVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = (uint)uVar33;" (assignment_expression "uVar14 = (uint)uVar33" identifier = (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "dVar28 = (double)FUN_0001cd70(iVar18,uVar14);" (assignment_expression "dVar28 = (double)FUN_0001cd70(iVar18,uVar14)" identifier = (cast_expression "(double)FUN_0001cd70(iVar18,uVar14)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70(iVar18,uVar14)" identifier (argument_list "(iVar18,uVar14)" ( identifier , identifier ))))) ;) (if_statement "if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }" if (parenthesized_expression "(((param_4 & 3) == 0) && (dVar27 != dVar28))" ( (binary_expression "((param_4 & 3) == 0) && (dVar27 != dVar28)" (parenthesized_expression "((param_4 & 3) == 0)" ( (binary_expression "(param_4 & 3) == 0" (parenthesized_expression "(param_4 & 3)" ( (binary_expression "param_4 & 3" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(dVar27 != dVar28)" ( (binary_expression "dVar27 != dVar28" identifier != identifier) ))) )) (compound_statement "{\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }" { (expression_statement "dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);" (assignment_expression "dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18)" identifier = (cast_expression "(double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18)" identifier (argument_list "((uint)(uVar14 + 1 < uVar14) + iVar18)" ( (binary_expression "(uint)(uVar14 + 1 < uVar14) + iVar18" (call_expression "(uint)(uVar14 + 1 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 + 1 < uVar14)" ( (binary_expression "uVar14 + 1 < uVar14" (binary_expression "uVar14 + 1" identifier + number_literal) < identifier) ))) + identifier) ))))) ;) })) })) (expression_statement "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" ( (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" * (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" * (cast_expression "(code **)(puVar23 + 0x1bdb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bdb4)" ( (binary_expression "puVar23 + 0x1bdb4" identifier + number_literal) ))))) )) (argument_list "(iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7bc" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);" (assignment_expression "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar10)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "uVar14 = uVar8;" (assignment_expression "uVar14 = uVar8" identifier = identifier) ;) }) (else_clause "else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }" else (compound_statement "{\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "dVar28 = (double)uVar20;" (assignment_expression "dVar28 = (double)uVar20" identifier = (cast_expression "(double)uVar20" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (do_statement "do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);" do (compound_statement "{\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      }" { (expression_statement "dVar29 = dVar28;" (assignment_expression "dVar29 = dVar28" identifier = identifier) ;) (expression_statement "dVar28 = dVar29 * (double)uVar20;" (assignment_expression "dVar28 = dVar29 * (double)uVar20" identifier = (binary_expression "dVar29 * (double)uVar20" identifier * (cast_expression "(double)uVar20" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (dVar27 < dVar28) break;" if (parenthesized_expression "(dVar27 < dVar28)" ( (binary_expression "dVar27 < dVar28" identifier < identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar18 != 8)" ( (binary_expression "iVar18 != 8" identifier != number_literal) )) ;) (expression_statement "dVar27 = dVar27 / dVar29;" (assignment_expression "dVar27 = dVar27 / dVar29" identifier = (binary_expression "dVar27 / dVar29" identifier / identifier)) ;) (expression_statement "uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;" (assignment_expression "uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1" identifier = (binary_expression "(uVar13 == 0) + 1 + uStack_98 + 1" (binary_expression "(uVar13 == 0) + 1 + uStack_98" (binary_expression "(uVar13 == 0) + 1" (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) + number_literal) + identifier) + number_literal)) ;) (if_statement "if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (compound_statement "{\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }" { (expression_statement "(**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" ( (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" * (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" * (cast_expression "(code **)(puVar23 + 0x1bdb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bdb4)" ( (binary_expression "puVar23 + 0x1bdb4" identifier + number_literal) ))))) )) (argument_list "(iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7b4" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);" (assignment_expression "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar10)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (uVar8 <= uVar14) goto LAB_00015d0c;" if (parenthesized_expression "(uVar8 <= uVar14)" ( (binary_expression "uVar8 <= uVar14" identifier <= identifier) )) (goto_statement "goto LAB_00015d0c;" goto statement_identifier ;)) (expression_statement "dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);" (assignment_expression "dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728)" identifier = (pointer_expression "*(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728)" * (cast_expression "(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0x1bc48) + -0x728)" ( (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x728" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dVar28 = dVar27 * dVar29;" (assignment_expression "dVar28 = dVar27 * dVar29" identifier = (binary_expression "dVar27 * dVar29" identifier * identifier)) ;) }) (else_clause "else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }" else (compound_statement "{\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }" { (expression_statement "iVar9 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar9 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" identifier = identifier) ;) (if_statement "if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }" if (parenthesized_expression "(*(double *)(iVar9 + -0x730) <= dVar27)" ( (binary_expression "*(double *)(iVar9 + -0x730) <= dVar27" (pointer_expression "*(double *)(iVar9 + -0x730)" * (cast_expression "(double *)(iVar9 + -0x730)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x730)" ( (binary_expression "iVar9 + -0x730" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }" { (labeled_statement "LAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);" statement_identifier : (expression_statement "iVar16 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar16 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }" else (compound_statement "{\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }" { (expression_statement "lVar30 = FUN_0001ccd0(dVar27);" (assignment_expression "lVar30 = FUN_0001ccd0(dVar27)" identifier = (call_expression "FUN_0001ccd0(dVar27)" identifier (argument_list "(dVar27)" ( identifier )))) ;) (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" identifier = identifier) ;) (expression_statement "dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);" (assignment_expression "dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" identifier = (cast_expression "(double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" identifier (argument_list "((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" ( (cast_expression "(int)((ulonglong)lVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)lVar30" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (if_statement "if (uVar6 != 0) goto LAB_000159a0;" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000159a0;" goto statement_identifier ;)) (expression_statement "iVar16 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar16 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;) (if_statement "if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }" if (parenthesized_expression "(dVar28 != dVar27)" ( (binary_expression "dVar28 != dVar27" identifier != identifier) )) (compound_statement "{\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }" { (expression_statement "dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));" (assignment_expression "dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" identifier = (cast_expression "(double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" identifier (argument_list "((int)((ulonglong)(lVar30 + 1) >> 0x20))" ( (cast_expression "(int)((ulonglong)(lVar30 + 1) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(lVar30 + 1) >> 0x20)" ( (binary_expression "(ulonglong)(lVar30 + 1) >> 0x20" (call_expression "(ulonglong)(lVar30 + 1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar30 + 1)" ( (binary_expression "lVar30 + 1" identifier + number_literal) ))) >> number_literal) ))) ))))) ;) (goto_statement "goto LAB_000159a0;" goto statement_identifier ;) })) }))) (expression_statement "(**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" ( (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" * (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" * (cast_expression "(code **)(puVar23 + 0x1bdb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bdb4)" ( (binary_expression "puVar23 + 0x1bdb4" identifier + number_literal) ))))) )) (argument_list "(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27)" ( identifier , number_literal , number_literal , (binary_expression "iVar16 + -0x7b4" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);" (assignment_expression "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar10)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "dVar27 = dVar28;" (assignment_expression "dVar27 = dVar28" identifier = identifier) ;) (if_statement "if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }" if (parenthesized_expression "(uVar14 < uVar8)" ( (binary_expression "uVar14 < uVar8" identifier < identifier) )) (compound_statement "{\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }" { (expression_statement "iVar16 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar16 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = dVar28 * *(double *)(iVar16 + -0x728);" (assignment_expression "dVar28 = dVar28 * *(double *)(iVar16 + -0x728)" identifier = (binary_expression "dVar28 * *(double *)(iVar16 + -0x728)" identifier * (pointer_expression "*(double *)(iVar16 + -0x728)" * (cast_expression "(double *)(iVar16 + -0x728)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + -0x728)" ( (binary_expression "iVar16 + -0x728" identifier + number_literal) )))))) ;) }) (else_clause "else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }" else (compound_statement "{\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }" { (labeled_statement "LAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }" statement_identifier : (if_statement "if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }" if (parenthesized_expression "(((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0'))" ( (binary_expression "((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -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 "(*(char *)(iVar10 + uVar8 + -1) != '0')" ( (binary_expression "*(char *)(iVar10 + uVar8 + -1) != '0'" (pointer_expression "*(char *)(iVar10 + uVar8 + -1)" * (cast_expression "(char *)(iVar10 + uVar8 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + uVar8 + -1)" ( (binary_expression "iVar10 + uVar8 + -1" (binary_expression "iVar10 + uVar8" identifier + identifier) + number_literal) )))) != (char_literal "'0'" ' character ')) ))) )) (compound_statement "{\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }" { (expression_statement "uVar14 = uVar8 - (uStack_98 + 1);" (assignment_expression "uVar14 = uVar8 - (uStack_98 + 1)" identifier = (binary_expression "uVar8 - (uStack_98 + 1)" identifier - (parenthesized_expression "(uStack_98 + 1)" ( (binary_expression "uStack_98 + 1" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0001572c;" goto statement_identifier ;) }))) (expression_statement "iVar16 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar16 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;) (expression_statement "dVar29 = *(double *)(iVar16 + -0x728);" (assignment_expression "dVar29 = *(double *)(iVar16 + -0x728)" identifier = (pointer_expression "*(double *)(iVar16 + -0x728)" * (cast_expression "(double *)(iVar16 + -0x728)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + -0x728)" ( (binary_expression "iVar16 + -0x728" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = dVar27 * dVar29;" (assignment_expression "dVar28 = dVar27 * dVar29" identifier = (binary_expression "dVar27 * dVar29" identifier * identifier)) ;) (if_statement "if (uVar6 == 1) goto LAB_00015a5c;" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00015a5c;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar9 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;) }))) (expression_statement "dVar29 = *(double *)(iVar16 + -0x728);" (assignment_expression "dVar29 = *(double *)(iVar16 + -0x728)" identifier = (pointer_expression "*(double *)(iVar16 + -0x728)" * (cast_expression "(double *)(iVar16 + -0x728)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + -0x728)" ( (binary_expression "iVar16 + -0x728" identifier + number_literal) ))))) ;) (if_statement "if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }" if (parenthesized_expression "(dVar28 < *(double *)(iVar9 + -0x730))" ( (binary_expression "dVar28 < *(double *)(iVar9 + -0x730)" identifier < (pointer_expression "*(double *)(iVar9 + -0x730)" * (cast_expression "(double *)(iVar9 + -0x730)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x730)" ( (binary_expression "iVar9 + -0x730" identifier + number_literal) ))))) )) (compound_statement "{\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }" { (expression_statement "lVar30 = FUN_0001ccd0(dVar28);" (assignment_expression "lVar30 = FUN_0001ccd0(dVar28)" identifier = (call_expression "FUN_0001ccd0(dVar28)" identifier (argument_list "(dVar28)" ( identifier )))) ;) (expression_statement "dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);" (assignment_expression "dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" identifier = (cast_expression "(double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" identifier (argument_list "((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" ( (cast_expression "(int)((ulonglong)lVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)lVar30" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (if_statement "if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }" if (parenthesized_expression "((uVar6 == 0) && (dVar27 != dVar28))" ( (binary_expression "(uVar6 == 0) && (dVar27 != dVar28)" (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) && (parenthesized_expression "(dVar27 != dVar28)" ( (binary_expression "dVar27 != dVar28" identifier != identifier) ))) )) (compound_statement "{\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }" { (expression_statement "dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));" (assignment_expression "dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" identifier = (cast_expression "(double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" identifier (argument_list "((int)((ulonglong)(lVar30 + 1) >> 0x20))" ( (cast_expression "(int)((ulonglong)(lVar30 + 1) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(lVar30 + 1) >> 0x20)" ( (binary_expression "(ulonglong)(lVar30 + 1) >> 0x20" (call_expression "(ulonglong)(lVar30 + 1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar30 + 1)" ( (binary_expression "lVar30 + 1" identifier + number_literal) ))) >> number_literal) ))) ))))) ;) })) (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" identifier = identifier) ;) (expression_statement "dVar29 = *(double *)(iVar16 + -0x728);" (assignment_expression "dVar29 = *(double *)(iVar16 + -0x728)" identifier = (pointer_expression "*(double *)(iVar16 + -0x728)" * (cast_expression "(double *)(iVar16 + -0x728)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + -0x728)" ( (binary_expression "iVar16 + -0x728" identifier + number_literal) ))))) ;) })) }))) (labeled_statement "LAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);" statement_identifier : (expression_statement "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" ( (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" * (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" * (cast_expression "(code **)(puVar23 + 0x1bdb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bdb4)" ( (binary_expression "puVar23 + 0x1bdb4" identifier + number_literal) ))))) )) (argument_list "(iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7bc" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal) , (binary_expression "dVar28 / dVar29" identifier / identifier) ))) ;)) (expression_statement "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);" (assignment_expression "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar10)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "uVar14 = uVar8;" (assignment_expression "uVar14 = uVar8" identifier = identifier) ;) }))) (labeled_statement "LAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;" statement_identifier : (expression_statement "pcVar25 = pcStack_b0 + -uVar8;" (assignment_expression "pcVar25 = pcStack_b0 + -uVar8" identifier = (binary_expression "pcStack_b0 + -uVar8" identifier + (unary_expression "-uVar8" - identifier))) ;)) (expression_statement "(**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);" (call_expression "(**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef8))" ( (pointer_expression "**(code **)(puVar23 + 0x1bef8)" * (pointer_expression "*(code **)(puVar23 + 0x1bef8)" * (cast_expression "(code **)(puVar23 + 0x1bef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef8)" ( (binary_expression "puVar23 + 0x1bef8" identifier + number_literal) ))))) )) (argument_list "(pcVar25,iVar10,uVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar4 = pcVar25 + uVar14;" (assignment_expression "pcVar4 = pcVar25 + uVar14" identifier = (binary_expression "pcVar25 + uVar14" identifier + identifier)) ;) }))) (if_statement "if ((param_4 & 4) != 0) {\n    uVar6 = (int)pcVar4 - (int)pcVar25;\n    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);\n    uVar14 = 0xffffffff;\n    while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }\n    pcVar25 = pcVar4 + -uVar6;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);\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    uVar6 = (int)pcVar4 - (int)pcVar25;\n    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);\n    uVar14 = 0xffffffff;\n    while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }\n    pcVar25 = pcVar4 + -uVar6;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);\n  }" { (expression_statement "uVar6 = (int)pcVar4 - (int)pcVar25;" (assignment_expression "uVar6 = (int)pcVar4 - (int)pcVar25" identifier = (binary_expression "(int)pcVar4 - (int)pcVar25" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);" (assignment_expression "iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iStack_a4)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iStack_a4)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);" (call_expression "(**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be80))" ( (pointer_expression "**(code **)(puVar23 + 0x1be80)" * (pointer_expression "*(code **)(puVar23 + 0x1be80)" * (cast_expression "(code **)(puVar23 + 0x1be80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be80)" ( (binary_expression "puVar23 + 0x1be80" identifier + number_literal) ))))) )) (argument_list "(auStack_88,pcVar25,uVar6,0x29)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "uVar14 = 0xffffffff;" (assignment_expression "uVar14 = 0xffffffff" identifier = number_literal) ;) (while_statement "while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }" { (expression_statement "uVar8 = (uint)*pbVar21;" (assignment_expression "uVar8 = (uint)*pbVar21" identifier = (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }" { (expression_statement "uVar14 = uVar8;" (assignment_expression "uVar14 = uVar8" identifier = identifier) ;) (if_statement "if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }" if (parenthesized_expression "(0x7e < uVar8)" ( (binary_expression "0x7e < uVar8" number_literal < identifier) )) (compound_statement "{\n          uVar14 = uVar6;\n        }" { (expression_statement "uVar14 = uVar6;" (assignment_expression "uVar14 = uVar6" identifier = identifier) ;) })) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) })) (if_statement "if (uVar6 < uVar14) break;" if (parenthesized_expression "(uVar6 < uVar14)" ( (binary_expression "uVar6 < uVar14" identifier < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = uVar6 - uVar14;" (assignment_expression "uVar6 = uVar6 - uVar14" identifier = (binary_expression "uVar6 - uVar14" identifier - identifier)) ;) (expression_statement "pcVar25 = pcVar4 + -uVar14;" (assignment_expression "pcVar25 = pcVar4 + -uVar14" identifier = (binary_expression "pcVar4 + -uVar14" identifier + (unary_expression "-uVar14" - identifier))) ;) (expression_statement "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);" (call_expression "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef0))" ( (pointer_expression "**(code **)(puVar23 + 0x1bef0)" * (pointer_expression "*(code **)(puVar23 + 0x1bef0)" * (cast_expression "(code **)(puVar23 + 0x1bef0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef0)" ( (binary_expression "puVar23 + 0x1bef0" identifier + number_literal) ))))) )) (argument_list "(pcVar25,auStack_88 + uVar6,uVar14)" ( identifier , (binary_expression "auStack_88 + uVar6" identifier + identifier) , identifier ))) ;) (if_statement "if (uVar6 == 0) goto LAB_0001575c;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001575c;" goto statement_identifier ;)) (expression_statement "pcVar4 = pcVar25 + -iVar9;" (assignment_expression "pcVar4 = pcVar25 + -iVar9" identifier = (binary_expression "pcVar25 + -iVar9" identifier + (unary_expression "-iVar9" - identifier))) ;) (expression_statement "(**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);" (call_expression "(**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef0))" ( (pointer_expression "**(code **)(puVar23 + 0x1bef0)" * (pointer_expression "*(code **)(puVar23 + 0x1bef0)" * (cast_expression "(code **)(puVar23 + 0x1bef0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef0)" ( (binary_expression "puVar23 + 0x1bef0" identifier + number_literal) ))))) )) (argument_list "(pcVar4,iStack_a4,iVar9)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pcVar25 = pcVar4 + -uVar6;" (assignment_expression "pcVar25 = pcVar4 + -uVar6" identifier = (binary_expression "pcVar4 + -uVar6" identifier + (unary_expression "-uVar6" - identifier))) ;) (expression_statement "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);" (call_expression "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef0))" ( (pointer_expression "**(code **)(puVar23 + 0x1bef0)" * (pointer_expression "*(code **)(puVar23 + 0x1bef0)" * (cast_expression "(code **)(puVar23 + 0x1bef0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef0)" ( (binary_expression "puVar23 + 0x1bef0" identifier + number_literal) ))))) )) (argument_list "(pcVar25,auStack_88,uVar6)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_0001575c:\n  if ((param_4 & 0x80) == 0) goto LAB_00015784;" statement_identifier : (if_statement "if ((param_4 & 0x80) == 0) goto LAB_00015784;" 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_00015784;" goto statement_identifier ;))) (if_statement "if ((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))) {\n    iVar18 = 1;\n    uVar14 = 1;\n    piVar7 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);\n    if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }\n    pcVar4 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar11;\n  }\n  else {\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }" if (parenthesized_expression "((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12))))" ( (binary_expression "(iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))" (parenthesized_expression "(iVar18 == -1)" ( (binary_expression "iVar18 == -1" identifier == number_literal) )) && (parenthesized_expression "((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))" ( (parenthesized_expression "(local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12))" ( (binary_expression "local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)" (binary_expression "local_10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar18 = 0, 1 < uVar12)" ( (comma_expression "iVar18 = 0, 1 < uVar12" (assignment_expression "iVar18 = 0" identifier = number_literal) , (binary_expression "1 < uVar12" number_literal < identifier)) ))) )) ))) )) (compound_statement "{\n    iVar18 = 1;\n    uVar14 = 1;\n    piVar7 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);\n    if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }\n    pcVar4 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar11;\n  }" { (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "piVar7 = (int *)0x0;" (assignment_expression "piVar7 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);" do (compound_statement "{\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    }" { (expression_statement "uVar34 = (ulonglong)uVar14;" (assignment_expression "uVar34 = (ulonglong)uVar14" identifier = (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "uVar14 = (uint)(uVar34 * uVar20);" (assignment_expression "uVar14 = (uint)(uVar34 * uVar20)" identifier = (call_expression "(uint)(uVar34 * uVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar34 * uVar20)" ( (binary_expression "uVar34 * uVar20" identifier * identifier) )))) ;) (expression_statement "piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));" (assignment_expression "piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20))" identifier = (cast_expression "(int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20))" ( (binary_expression "uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20)" (binary_expression "uVar20 * (int)piVar7" identifier * (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) + (cast_expression "(int)(uVar34 * uVar20 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 * uVar20 >> 0x20)" ( (binary_expression "uVar34 * uVar20 >> 0x20" (binary_expression "uVar34 * uVar20" identifier * identifier) >> number_literal) )))) )))) ;) (if_statement "if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;" if (parenthesized_expression "((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14))))" ( (binary_expression "(local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))" (parenthesized_expression "(local_10 <= piVar7)" ( (binary_expression "local_10 <= piVar7" identifier <= identifier) )) && (parenthesized_expression "((local_10 != piVar7 || (uVar12 <= uVar14)))" ( (parenthesized_expression "(local_10 != piVar7 || (uVar12 <= uVar14))" ( (binary_expression "local_10 != piVar7 || (uVar12 <= uVar14)" (binary_expression "local_10 != piVar7" identifier != identifier) || (parenthesized_expression "(uVar12 <= uVar14)" ( (binary_expression "uVar12 <= uVar14" identifier <= identifier) ))) )) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 8)" ( (binary_expression "iVar18 != 8" identifier != number_literal) )) ;) (if_statement "if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\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_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }" { (labeled_statement "LAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);" statement_identifier : (expression_statement "pcStack_b0 = (char *)(iVar10 + 0x288);" (assignment_expression "pcStack_b0 = (char *)(iVar10 + 0x288)" identifier = (cast_expression "(char *)(iVar10 + 0x288)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x288)" ( (binary_expression "iVar10 + 0x288" identifier + number_literal) )))) ;)) (expression_statement "*(undefined1 *)(iVar10 + 0x287) = 0x20;" (assignment_expression "*(undefined1 *)(iVar10 + 0x287) = 0x20" (pointer_expression "*(undefined1 *)(iVar10 + 0x287)" * (cast_expression "(undefined1 *)(iVar10 + 0x287)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x287)" ( (binary_expression "iVar10 + 0x287" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00015be8;" goto statement_identifier ;) })) (labeled_statement "LAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);" statement_identifier : (expression_statement "iVar10 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar10 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;)) (if_statement "if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }" if (parenthesized_expression "((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1))" ( (binary_expression "(uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)" (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)" ( (comma_expression "iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1" (assignment_expression "iVar10 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) , (binary_expression "iVar18 == 1" identifier == number_literal)) ))) )) (compound_statement "{\n      cVar11 = 'k';\n    }" { (expression_statement "cVar11 = 'k';" (assignment_expression "cVar11 = 'k'" identifier = (char_literal "'k'" ' character ')) ;) }) (else_clause "else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }" else (compound_statement "{\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }" { (expression_statement "cVar11 = *(char *)(iVar18 + iVar10 + -0x748);" (assignment_expression "cVar11 = *(char *)(iVar18 + iVar10 + -0x748)" identifier = (pointer_expression "*(char *)(iVar18 + iVar10 + -0x748)" * (cast_expression "(char *)(iVar18 + iVar10 + -0x748)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + iVar10 + -0x748)" ( (binary_expression "iVar18 + iVar10 + -0x748" (binary_expression "iVar18 + iVar10" identifier + identifier) + number_literal) ))))) ;) }))) (expression_statement "pcVar4 = pcStack_b0 + 1;" (assignment_expression "pcVar4 = pcStack_b0 + 1" identifier = (binary_expression "pcStack_b0 + 1" identifier + number_literal)) ;) (expression_statement "*pcStack_b0 = cVar11;" (assignment_expression "*pcStack_b0 = cVar11" (pointer_expression "*pcStack_b0" * identifier) = identifier) ;) }) (else_clause "else {\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }" else (compound_statement "{\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }" { (if_statement "if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;" if (parenthesized_expression "((param_4 & 0x100) == 0 && iVar18 == 0)" ( (binary_expression "(param_4 & 0x100) == 0 && iVar18 == 0" (binary_expression "(param_4 & 0x100) == 0" (parenthesized_expression "(param_4 & 0x100)" ( (binary_expression "param_4 & 0x100" identifier & number_literal) )) == number_literal) && (binary_expression "iVar18 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00015784;" goto statement_identifier ;)) (if_statement "if ((param_4 & 0x40) != 0) goto LAB_00015bdc;" 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_00015bdc;" goto statement_identifier ;)) (labeled_statement "LAB_00015be8:\n    pcVar4 = pcStack_b0;" statement_identifier : (expression_statement "pcVar4 = pcStack_b0;" (assignment_expression "pcVar4 = pcStack_b0" identifier = identifier) ;)) (if_statement "if (iVar18 != 0) goto LAB_00015bf0;" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015bf0;" goto statement_identifier ;)) }))) (expression_statement "pcStack_b0 = pcVar4;" (assignment_expression "pcStack_b0 = pcVar4" identifier = identifier) ;) (if_statement "if ((param_4 & 0x100) != 0) {\n    pcVar15 = pcVar4 + 1;\n    pcStack_b0 = pcVar15;\n    if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }\n    *pcVar4 = 'B';\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 "{\n    pcVar15 = pcVar4 + 1;\n    pcStack_b0 = pcVar15;\n    if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }\n    *pcVar4 = 'B';\n  }" { (expression_statement "pcVar15 = pcVar4 + 1;" (assignment_expression "pcVar15 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "pcStack_b0 = pcVar15;" (assignment_expression "pcStack_b0 = pcVar15" identifier = identifier) ;) (if_statement "if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }" if (parenthesized_expression "((uVar13 != 0) && (iVar18 != 0))" ( (binary_expression "(uVar13 != 0) && (iVar18 != 0)" (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }" { (expression_statement "pcStack_b0 = pcVar4 + 2;" (assignment_expression "pcStack_b0 = pcVar4 + 2" identifier = (binary_expression "pcVar4 + 2" identifier + number_literal)) ;) (expression_statement "*pcVar4 = 'i';" (assignment_expression "*pcVar4 = 'i'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'i'" ' character ')) ;) (expression_statement "pcVar4 = pcVar15;" (assignment_expression "pcVar4 = pcVar15" identifier = identifier) ;) })) (expression_statement "*pcVar4 = 'B';" (assignment_expression "*pcVar4 = 'B'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'B'" ' character ')) ;) })) (labeled_statement "LAB_00015784:\n  while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }" statement_identifier : (while_statement "while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }" { (expression_statement "*pcStack_b0 = '\0';" (assignment_expression "*pcStack_b0 = '\0'" (pointer_expression "*pcStack_b0" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (iStack_5c == *piVar5) break;" if (parenthesized_expression "(iStack_5c == *piVar5)" ( (binary_expression "iStack_5c == *piVar5" identifier == (pointer_expression "*piVar5" * identifier)) )) (break_statement "break;" break ;)) (expression_statement "pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();" (assignment_expression "pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))()" identifier = (cast_expression "(char *)(**(code **)(puVar23 + 0x1becc))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar23 + 0x1becc))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1becc))" ( (pointer_expression "**(code **)(puVar23 + 0x1becc)" * (pointer_expression "*(code **)(puVar23 + 0x1becc)" * (cast_expression "(code **)(puVar23 + 0x1becc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1becc)" ( (binary_expression "puVar23 + 0x1becc" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }))) (return_statement "return pcVar25;" return identifier ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x0001591c) */\n\nint open_safer(char *file,int flags,...)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  char cVar10;\n  uint uVar11;\n  uint uVar12;\n  uint extraout_v1;\n  uint uVar13;\n  char extraout_v1_01;\n  int extraout_v1_00;\n  char *pcVar14;\n  int in_a2;\n  uint in_a3;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint uVar19;\n  byte *pbVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  char *pcVar25;\n  uint uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  ulonglong uVar34;\n  int local_res8;\n  uint local_resc;\n  char *pcStack_b0;\n  int iStack_a4;\n  uint uStack_98;\n  int iStack_90;\n  undefined1 auStack_88 [44];\n  int iStack_5c;\n  undefined *puStack_58;\n  uint uStack_14;\n  int *local_10;\n  \n  puVar2 = PTR___stack_chk_guard_000313bc;\n  uVar11 = *(uint *)PTR___stack_chk_guard_000313bc;\n  iVar9 = in_a2;\n  piVar4 = &local_res8;\n  if ((flags & 0x100U) == 0) {\n    iVar9 = 0;\n    piVar4 = local_10;\n  }\n  local_10 = piVar4;\n  local_res8 = in_a2;\n  local_resc = in_a3;\n  iVar3 = (*(code *)PTR_open64_00031330)();\n  iVar3 = fd_safer(iVar3);\n  if (uVar11 == *(uint *)puVar2) {\n    return iVar3;\n  }\n  uVar13 = uVar11;\n  puVar23 = PTR___stack_chk_fail_0003139c;\n  (*(code *)PTR___stack_chk_fail_0003139c)();\n  piVar4 = *(int **)(puVar23 + 0x1beec);\n  uVar12 = in_a3 & 0x20;\n  uVar19 = 0x400;\n  iStack_5c = *piVar4;\n  uVar5 = in_a3 & 3;\n  puStack_58 = puVar2;\n  if (uVar12 == 0) {\n    uVar19 = 1000;\n  }\n  piVar6 = (int *)(**(code **)(puVar23 + 0x1be00))();\n  iStack_90 = *piVar6;\n  uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);\n  if (0xf < uStack_98 - 1) {\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }\n  iStack_a4 = piVar6[1];\n  pbVar20 = (byte *)piVar6[2];\n  uVar7 = (**(code **)(puVar23 + 0x1be70))();\n  if (0x10 < uVar7) {\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }\n  pcStack_b0 = (char *)(iVar9 + 0x287);\n  if ((&_gp < local_10) || ((local_10 == (int *)&_gp && (uStack_14 < uVar11)))) {\n    lVar30 = __umoddi3(local_10,uVar11,&_gp,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = __udivdi3(local_10,uVar11,&_gp,uStack_14);\n    uVar7 = (uint)(uVar31 >> 0x20);\n    uVar16 = (uint)uVar31;\n    uVar33 = __umoddi3(uVar13,flags,uVar7,uVar16);\n    iVar3 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar17 = (uint)uVar33;\n    uVar22 = uVar17 * 5 >> 0x1f |\n             ((uint)(uVar17 * 5 < uVar17 * 4) + (uVar17 >> 0x1e | iVar3 << 2) + iVar3) * 2;\n    lVar32 = __umoddi3(uVar22,uVar17 * 10,uVar7,uVar16);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = __udivdi3(uVar13,flags,uVar7,uVar16);\n    __udivdi3(uVar22,uVar17 * 10,uVar7,uVar16);\n    uVar13 = extraout_v1;\n    if ((uVar26 < uVar7) || ((uVar7 == uVar26 && ((uint)lVar30 < uVar16)))) {\n      uVar7 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar7 = 3;\n    }\n    else {\n      uVar7 = 2;\n    }\nLAB_00015d94:\n    pcVar18 = pcStack_b0;\n    if ((in_a3 & 0x10) == 0) {\n      iVar3 = -1;\n    }\n    else {\n      iVar3 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar19 <= (uint)uVar34)) {\n        iVar3 = 0;\n        do {\n          uVar21 = (undefined4)(uVar34 >> 0x20);\n          __umoddi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = extraout_v1_00 * 10 + uVar13;\n          if (uVar19 == 0) {\n            trap(7);\n          }\n          uVar13 = uVar16 / uVar19;\n          uVar17 = (uVar16 % uVar19) * 2 + ((int)uVar7 >> 1);\n          uVar34 = __udivdi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = (uint)uVar34;\n          uVar26 = uVar7 + uVar17;\n          if (uVar17 < uVar19) {\n            uVar7 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar7 = 2;\n            if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }\n          }\n          iVar3 = iVar3 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19)) {\n            if (uVar16 < 10) {\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar3 != 8);\n      }\n    }\n    if (uVar5 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar7 != 0) + uVar13)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar8 = (int)(uVar34 >> 0x20);\n          uVar13 = (uint)uVar34;\n          __umoddi3(iVar8,uVar13,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = __udivdi3(iVar8,uVar13,0,10);\n        } while (iVar8 != 0);\n      } while (9 < uVar13);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar18;\n      if ((uVar5 != 0) || ((int)(uVar13 + uVar7) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar18;\n      if (((in_a3 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)) || (iVar3 == 8))))\n      goto LAB_00015e08;\n      iVar3 = iVar3 + 1;\n      if ((in_a3 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar18[-1] = '0';\n        pcVar18 = pcVar18 + ~uStack_98;\n        (*pcVar24)(pcVar18,iStack_90);\n      }\n      pcVar25 = pcVar18 + -1;\n      pcVar18[-1] = '1';\n    }\n  }\n  else {\n    lVar30 = __umoddi3(&_gp,uStack_14,local_10,uVar11);\n    if (lVar30 == 0) {\n      lVar30 = __udivdi3(&_gp,uStack_14,local_10,uVar11);\n      uVar34 = lVar30 * CONCAT44(uVar13,flags);\n      lVar30 = __udivdi3((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar13,flags)) {\n        uVar7 = 0;\n        uVar13 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)__floatundidf(&_gp,uStack_14);\n    dVar28 = (double)__floatundidf(local_10,uVar11);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)__floatundidf(uVar13,flags);\n    dVar27 = dVar27 * dVar28;\n    if ((in_a3 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((in_a3 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = __fixunsdfdi(dVar27);\n        iVar3 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar13 = (uint)uVar33;\n        dVar28 = (double)__floatundidf(iVar3,uVar13);\n        if (((in_a3 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar3 = -1;\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }\n    else {\n      iVar3 = 0;\n      dVar28 = (double)uVar19;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar19;\n        iVar3 = iVar3 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar3 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar13 = (uVar12 == 0) + 1 + uStack_98 + 1;\n      if (uVar5 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        if (uVar7 <= uVar13) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar8 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar8 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = __fixunsdfdi(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar5 != 0) goto LAB_000159a0;\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        dVar27 = dVar28;\n        if (uVar13 < uVar7) {\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar15 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar15 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar5 == 1) goto LAB_00015a5c;\n          iVar8 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar15 + -0x728);\n        if (dVar28 < *(double *)(iVar8 + -0x730)) {\n          lVar30 = __fixunsdfdi(dVar28);\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar5 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar15 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar7;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar9,uVar7);\n    pcVar18 = pcVar25 + uVar13;\n  }\n  if ((in_a3 & 4) != 0) {\n    uVar5 = (int)pcVar18 - (int)pcVar25;\n    iVar8 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar5,0x29);\n    uVar13 = 0xffffffff;\n    while( true ) {\n      uVar7 = (uint)*pbVar20;\n      if (uVar7 != 0) {\n        uVar13 = uVar7;\n        if (0x7e < uVar7) {\n          uVar13 = uVar5;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar5 < uVar13) break;\n      uVar5 = uVar5 - uVar13;\n      pcVar25 = pcVar18 + -uVar13;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar5,uVar13);\n      if (uVar5 == 0) goto LAB_0001575c;\n      pcVar18 = pcVar25 + -iVar8;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar18,iStack_a4,iVar8);\n    }\n    pcVar25 = pcVar18 + -uVar5;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar5);\n  }\nLAB_0001575c:\n  if ((in_a3 & 0x80) == 0) goto LAB_00015784;\n  if ((iVar3 == -1) && ((local_10 != (int *)0x0 || (iVar3 = 0, 1 < uVar11)))) {\n    iVar3 = 1;\n    uVar13 = 1;\n    piVar6 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar13;\n      uVar13 = (uint)(uVar34 * uVar19);\n      piVar6 = (int *)(uVar19 * (int)piVar6 + (int)(uVar34 * uVar19 >> 0x20));\n      if ((local_10 <= piVar6) && ((local_10 != piVar6 || (uVar11 <= uVar13)))) break;\n      iVar3 = iVar3 + 1;\n    } while (iVar3 != 8);\n    if ((in_a3 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar9 + 0x288);\n      *(undefined1 *)(iVar9 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar9 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar12 == 0) && (iVar9 = *(int *)(puVar23 + 0x1bc48), iVar3 == 1)) {\n      cVar10 = 'k';\n    }\n    else {\n      cVar10 = *(char *)(iVar3 + iVar9 + -0x748);\n    }\n    pcVar18 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar10;\n  }\n  else {\n    if ((in_a3 & 0x100) == 0 && iVar3 == 0) goto LAB_00015784;\n    if ((in_a3 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar18 = pcStack_b0;\n    if (iVar3 != 0) goto LAB_00015bf0;\n  }\n  pcStack_b0 = pcVar18;\n  if ((in_a3 & 0x100) != 0) {\n    pcVar14 = pcVar18 + 1;\n    pcStack_b0 = pcVar14;\n    if ((uVar12 != 0) && (iVar3 != 0)) {\n      pcStack_b0 = pcVar18 + 2;\n      *pcVar18 = 'i';\n      pcVar18 = pcVar14;\n    }\n    *pcVar18 = 'B';\n  }\nLAB_00015784:\n  while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar4) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }\n  return (int)pcVar25;\n}\n\n" comment (function_definition "int open_safer(char *file,int flags,...)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  char cVar10;\n  uint uVar11;\n  uint uVar12;\n  uint extraout_v1;\n  uint uVar13;\n  char extraout_v1_01;\n  int extraout_v1_00;\n  char *pcVar14;\n  int in_a2;\n  uint in_a3;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint uVar19;\n  byte *pbVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  char *pcVar25;\n  uint uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  ulonglong uVar34;\n  int local_res8;\n  uint local_resc;\n  char *pcStack_b0;\n  int iStack_a4;\n  uint uStack_98;\n  int iStack_90;\n  undefined1 auStack_88 [44];\n  int iStack_5c;\n  undefined *puStack_58;\n  uint uStack_14;\n  int *local_10;\n  \n  puVar2 = PTR___stack_chk_guard_000313bc;\n  uVar11 = *(uint *)PTR___stack_chk_guard_000313bc;\n  iVar9 = in_a2;\n  piVar4 = &local_res8;\n  if ((flags & 0x100U) == 0) {\n    iVar9 = 0;\n    piVar4 = local_10;\n  }\n  local_10 = piVar4;\n  local_res8 = in_a2;\n  local_resc = in_a3;\n  iVar3 = (*(code *)PTR_open64_00031330)();\n  iVar3 = fd_safer(iVar3);\n  if (uVar11 == *(uint *)puVar2) {\n    return iVar3;\n  }\n  uVar13 = uVar11;\n  puVar23 = PTR___stack_chk_fail_0003139c;\n  (*(code *)PTR___stack_chk_fail_0003139c)();\n  piVar4 = *(int **)(puVar23 + 0x1beec);\n  uVar12 = in_a3 & 0x20;\n  uVar19 = 0x400;\n  iStack_5c = *piVar4;\n  uVar5 = in_a3 & 3;\n  puStack_58 = puVar2;\n  if (uVar12 == 0) {\n    uVar19 = 1000;\n  }\n  piVar6 = (int *)(**(code **)(puVar23 + 0x1be00))();\n  iStack_90 = *piVar6;\n  uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);\n  if (0xf < uStack_98 - 1) {\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }\n  iStack_a4 = piVar6[1];\n  pbVar20 = (byte *)piVar6[2];\n  uVar7 = (**(code **)(puVar23 + 0x1be70))();\n  if (0x10 < uVar7) {\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }\n  pcStack_b0 = (char *)(iVar9 + 0x287);\n  if ((&_gp < local_10) || ((local_10 == (int *)&_gp && (uStack_14 < uVar11)))) {\n    lVar30 = __umoddi3(local_10,uVar11,&_gp,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = __udivdi3(local_10,uVar11,&_gp,uStack_14);\n    uVar7 = (uint)(uVar31 >> 0x20);\n    uVar16 = (uint)uVar31;\n    uVar33 = __umoddi3(uVar13,flags,uVar7,uVar16);\n    iVar3 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar17 = (uint)uVar33;\n    uVar22 = uVar17 * 5 >> 0x1f |\n             ((uint)(uVar17 * 5 < uVar17 * 4) + (uVar17 >> 0x1e | iVar3 << 2) + iVar3) * 2;\n    lVar32 = __umoddi3(uVar22,uVar17 * 10,uVar7,uVar16);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = __udivdi3(uVar13,flags,uVar7,uVar16);\n    __udivdi3(uVar22,uVar17 * 10,uVar7,uVar16);\n    uVar13 = extraout_v1;\n    if ((uVar26 < uVar7) || ((uVar7 == uVar26 && ((uint)lVar30 < uVar16)))) {\n      uVar7 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar7 = 3;\n    }\n    else {\n      uVar7 = 2;\n    }\nLAB_00015d94:\n    pcVar18 = pcStack_b0;\n    if ((in_a3 & 0x10) == 0) {\n      iVar3 = -1;\n    }\n    else {\n      iVar3 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar19 <= (uint)uVar34)) {\n        iVar3 = 0;\n        do {\n          uVar21 = (undefined4)(uVar34 >> 0x20);\n          __umoddi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = extraout_v1_00 * 10 + uVar13;\n          if (uVar19 == 0) {\n            trap(7);\n          }\n          uVar13 = uVar16 / uVar19;\n          uVar17 = (uVar16 % uVar19) * 2 + ((int)uVar7 >> 1);\n          uVar34 = __udivdi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = (uint)uVar34;\n          uVar26 = uVar7 + uVar17;\n          if (uVar17 < uVar19) {\n            uVar7 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar7 = 2;\n            if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }\n          }\n          iVar3 = iVar3 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19)) {\n            if (uVar16 < 10) {\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar3 != 8);\n      }\n    }\n    if (uVar5 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar7 != 0) + uVar13)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar8 = (int)(uVar34 >> 0x20);\n          uVar13 = (uint)uVar34;\n          __umoddi3(iVar8,uVar13,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = __udivdi3(iVar8,uVar13,0,10);\n        } while (iVar8 != 0);\n      } while (9 < uVar13);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar18;\n      if ((uVar5 != 0) || ((int)(uVar13 + uVar7) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar18;\n      if (((in_a3 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)) || (iVar3 == 8))))\n      goto LAB_00015e08;\n      iVar3 = iVar3 + 1;\n      if ((in_a3 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar18[-1] = '0';\n        pcVar18 = pcVar18 + ~uStack_98;\n        (*pcVar24)(pcVar18,iStack_90);\n      }\n      pcVar25 = pcVar18 + -1;\n      pcVar18[-1] = '1';\n    }\n  }\n  else {\n    lVar30 = __umoddi3(&_gp,uStack_14,local_10,uVar11);\n    if (lVar30 == 0) {\n      lVar30 = __udivdi3(&_gp,uStack_14,local_10,uVar11);\n      uVar34 = lVar30 * CONCAT44(uVar13,flags);\n      lVar30 = __udivdi3((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar13,flags)) {\n        uVar7 = 0;\n        uVar13 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)__floatundidf(&_gp,uStack_14);\n    dVar28 = (double)__floatundidf(local_10,uVar11);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)__floatundidf(uVar13,flags);\n    dVar27 = dVar27 * dVar28;\n    if ((in_a3 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((in_a3 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = __fixunsdfdi(dVar27);\n        iVar3 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar13 = (uint)uVar33;\n        dVar28 = (double)__floatundidf(iVar3,uVar13);\n        if (((in_a3 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar3 = -1;\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }\n    else {\n      iVar3 = 0;\n      dVar28 = (double)uVar19;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar19;\n        iVar3 = iVar3 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar3 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar13 = (uVar12 == 0) + 1 + uStack_98 + 1;\n      if (uVar5 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        if (uVar7 <= uVar13) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar8 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar8 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = __fixunsdfdi(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar5 != 0) goto LAB_000159a0;\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        dVar27 = dVar28;\n        if (uVar13 < uVar7) {\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar15 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar15 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar5 == 1) goto LAB_00015a5c;\n          iVar8 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar15 + -0x728);\n        if (dVar28 < *(double *)(iVar8 + -0x730)) {\n          lVar30 = __fixunsdfdi(dVar28);\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar5 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar15 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar7;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar9,uVar7);\n    pcVar18 = pcVar25 + uVar13;\n  }\n  if ((in_a3 & 4) != 0) {\n    uVar5 = (int)pcVar18 - (int)pcVar25;\n    iVar8 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar5,0x29);\n    uVar13 = 0xffffffff;\n    while( true ) {\n      uVar7 = (uint)*pbVar20;\n      if (uVar7 != 0) {\n        uVar13 = uVar7;\n        if (0x7e < uVar7) {\n          uVar13 = uVar5;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar5 < uVar13) break;\n      uVar5 = uVar5 - uVar13;\n      pcVar25 = pcVar18 + -uVar13;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar5,uVar13);\n      if (uVar5 == 0) goto LAB_0001575c;\n      pcVar18 = pcVar25 + -iVar8;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar18,iStack_a4,iVar8);\n    }\n    pcVar25 = pcVar18 + -uVar5;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar5);\n  }\nLAB_0001575c:\n  if ((in_a3 & 0x80) == 0) goto LAB_00015784;\n  if ((iVar3 == -1) && ((local_10 != (int *)0x0 || (iVar3 = 0, 1 < uVar11)))) {\n    iVar3 = 1;\n    uVar13 = 1;\n    piVar6 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar13;\n      uVar13 = (uint)(uVar34 * uVar19);\n      piVar6 = (int *)(uVar19 * (int)piVar6 + (int)(uVar34 * uVar19 >> 0x20));\n      if ((local_10 <= piVar6) && ((local_10 != piVar6 || (uVar11 <= uVar13)))) break;\n      iVar3 = iVar3 + 1;\n    } while (iVar3 != 8);\n    if ((in_a3 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar9 + 0x288);\n      *(undefined1 *)(iVar9 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar9 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar12 == 0) && (iVar9 = *(int *)(puVar23 + 0x1bc48), iVar3 == 1)) {\n      cVar10 = 'k';\n    }\n    else {\n      cVar10 = *(char *)(iVar3 + iVar9 + -0x748);\n    }\n    pcVar18 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar10;\n  }\n  else {\n    if ((in_a3 & 0x100) == 0 && iVar3 == 0) goto LAB_00015784;\n    if ((in_a3 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar18 = pcStack_b0;\n    if (iVar3 != 0) goto LAB_00015bf0;\n  }\n  pcStack_b0 = pcVar18;\n  if ((in_a3 & 0x100) != 0) {\n    pcVar14 = pcVar18 + 1;\n    pcStack_b0 = pcVar14;\n    if ((uVar12 != 0) && (iVar3 != 0)) {\n      pcStack_b0 = pcVar18 + 2;\n      *pcVar18 = 'i';\n      pcVar18 = pcVar14;\n    }\n    *pcVar18 = 'B';\n  }\nLAB_00015784:\n  while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar4) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }\n  return (int)pcVar25;\n}" primitive_type (function_declarator "open_safer(char *file,int flags,...)" identifier (parameter_list "(char *file,int flags,...)" ( (parameter_declaration "char *file" primitive_type (pointer_declarator "*file" * identifier)) , (parameter_declaration "int flags" primitive_type identifier) , (variadic_parameter "..." ...) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  uint uVar7;\n  int iVar8;\n  int iVar9;\n  char cVar10;\n  uint uVar11;\n  uint uVar12;\n  uint extraout_v1;\n  uint uVar13;\n  char extraout_v1_01;\n  int extraout_v1_00;\n  char *pcVar14;\n  int in_a2;\n  uint in_a3;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint uVar19;\n  byte *pbVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  char *pcVar25;\n  uint uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  ulonglong uVar34;\n  int local_res8;\n  uint local_resc;\n  char *pcStack_b0;\n  int iStack_a4;\n  uint uStack_98;\n  int iStack_90;\n  undefined1 auStack_88 [44];\n  int iStack_5c;\n  undefined *puStack_58;\n  uint uStack_14;\n  int *local_10;\n  \n  puVar2 = PTR___stack_chk_guard_000313bc;\n  uVar11 = *(uint *)PTR___stack_chk_guard_000313bc;\n  iVar9 = in_a2;\n  piVar4 = &local_res8;\n  if ((flags & 0x100U) == 0) {\n    iVar9 = 0;\n    piVar4 = local_10;\n  }\n  local_10 = piVar4;\n  local_res8 = in_a2;\n  local_resc = in_a3;\n  iVar3 = (*(code *)PTR_open64_00031330)();\n  iVar3 = fd_safer(iVar3);\n  if (uVar11 == *(uint *)puVar2) {\n    return iVar3;\n  }\n  uVar13 = uVar11;\n  puVar23 = PTR___stack_chk_fail_0003139c;\n  (*(code *)PTR___stack_chk_fail_0003139c)();\n  piVar4 = *(int **)(puVar23 + 0x1beec);\n  uVar12 = in_a3 & 0x20;\n  uVar19 = 0x400;\n  iStack_5c = *piVar4;\n  uVar5 = in_a3 & 3;\n  puStack_58 = puVar2;\n  if (uVar12 == 0) {\n    uVar19 = 1000;\n  }\n  piVar6 = (int *)(**(code **)(puVar23 + 0x1be00))();\n  iStack_90 = *piVar6;\n  uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);\n  if (0xf < uStack_98 - 1) {\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }\n  iStack_a4 = piVar6[1];\n  pbVar20 = (byte *)piVar6[2];\n  uVar7 = (**(code **)(puVar23 + 0x1be70))();\n  if (0x10 < uVar7) {\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }\n  pcStack_b0 = (char *)(iVar9 + 0x287);\n  if ((&_gp < local_10) || ((local_10 == (int *)&_gp && (uStack_14 < uVar11)))) {\n    lVar30 = __umoddi3(local_10,uVar11,&_gp,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = __udivdi3(local_10,uVar11,&_gp,uStack_14);\n    uVar7 = (uint)(uVar31 >> 0x20);\n    uVar16 = (uint)uVar31;\n    uVar33 = __umoddi3(uVar13,flags,uVar7,uVar16);\n    iVar3 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar17 = (uint)uVar33;\n    uVar22 = uVar17 * 5 >> 0x1f |\n             ((uint)(uVar17 * 5 < uVar17 * 4) + (uVar17 >> 0x1e | iVar3 << 2) + iVar3) * 2;\n    lVar32 = __umoddi3(uVar22,uVar17 * 10,uVar7,uVar16);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = __udivdi3(uVar13,flags,uVar7,uVar16);\n    __udivdi3(uVar22,uVar17 * 10,uVar7,uVar16);\n    uVar13 = extraout_v1;\n    if ((uVar26 < uVar7) || ((uVar7 == uVar26 && ((uint)lVar30 < uVar16)))) {\n      uVar7 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar7 = 3;\n    }\n    else {\n      uVar7 = 2;\n    }\nLAB_00015d94:\n    pcVar18 = pcStack_b0;\n    if ((in_a3 & 0x10) == 0) {\n      iVar3 = -1;\n    }\n    else {\n      iVar3 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar19 <= (uint)uVar34)) {\n        iVar3 = 0;\n        do {\n          uVar21 = (undefined4)(uVar34 >> 0x20);\n          __umoddi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = extraout_v1_00 * 10 + uVar13;\n          if (uVar19 == 0) {\n            trap(7);\n          }\n          uVar13 = uVar16 / uVar19;\n          uVar17 = (uVar16 % uVar19) * 2 + ((int)uVar7 >> 1);\n          uVar34 = __udivdi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = (uint)uVar34;\n          uVar26 = uVar7 + uVar17;\n          if (uVar17 < uVar19) {\n            uVar7 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar7 = 2;\n            if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }\n          }\n          iVar3 = iVar3 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19)) {\n            if (uVar16 < 10) {\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar3 != 8);\n      }\n    }\n    if (uVar5 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar7 != 0) + uVar13)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar8 = (int)(uVar34 >> 0x20);\n          uVar13 = (uint)uVar34;\n          __umoddi3(iVar8,uVar13,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = __udivdi3(iVar8,uVar13,0,10);\n        } while (iVar8 != 0);\n      } while (9 < uVar13);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar18;\n      if ((uVar5 != 0) || ((int)(uVar13 + uVar7) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar18;\n      if (((in_a3 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)) || (iVar3 == 8))))\n      goto LAB_00015e08;\n      iVar3 = iVar3 + 1;\n      if ((in_a3 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar18[-1] = '0';\n        pcVar18 = pcVar18 + ~uStack_98;\n        (*pcVar24)(pcVar18,iStack_90);\n      }\n      pcVar25 = pcVar18 + -1;\n      pcVar18[-1] = '1';\n    }\n  }\n  else {\n    lVar30 = __umoddi3(&_gp,uStack_14,local_10,uVar11);\n    if (lVar30 == 0) {\n      lVar30 = __udivdi3(&_gp,uStack_14,local_10,uVar11);\n      uVar34 = lVar30 * CONCAT44(uVar13,flags);\n      lVar30 = __udivdi3((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar13,flags)) {\n        uVar7 = 0;\n        uVar13 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)__floatundidf(&_gp,uStack_14);\n    dVar28 = (double)__floatundidf(local_10,uVar11);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)__floatundidf(uVar13,flags);\n    dVar27 = dVar27 * dVar28;\n    if ((in_a3 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((in_a3 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = __fixunsdfdi(dVar27);\n        iVar3 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar13 = (uint)uVar33;\n        dVar28 = (double)__floatundidf(iVar3,uVar13);\n        if (((in_a3 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar3 = -1;\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }\n    else {\n      iVar3 = 0;\n      dVar28 = (double)uVar19;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar19;\n        iVar3 = iVar3 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar3 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar13 = (uVar12 == 0) + 1 + uStack_98 + 1;\n      if (uVar5 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        if (uVar7 <= uVar13) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar8 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar8 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = __fixunsdfdi(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar5 != 0) goto LAB_000159a0;\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        dVar27 = dVar28;\n        if (uVar13 < uVar7) {\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar15 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar15 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar5 == 1) goto LAB_00015a5c;\n          iVar8 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar15 + -0x728);\n        if (dVar28 < *(double *)(iVar8 + -0x730)) {\n          lVar30 = __fixunsdfdi(dVar28);\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar5 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar15 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar7;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar9,uVar7);\n    pcVar18 = pcVar25 + uVar13;\n  }\n  if ((in_a3 & 4) != 0) {\n    uVar5 = (int)pcVar18 - (int)pcVar25;\n    iVar8 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar5,0x29);\n    uVar13 = 0xffffffff;\n    while( true ) {\n      uVar7 = (uint)*pbVar20;\n      if (uVar7 != 0) {\n        uVar13 = uVar7;\n        if (0x7e < uVar7) {\n          uVar13 = uVar5;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar5 < uVar13) break;\n      uVar5 = uVar5 - uVar13;\n      pcVar25 = pcVar18 + -uVar13;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar5,uVar13);\n      if (uVar5 == 0) goto LAB_0001575c;\n      pcVar18 = pcVar25 + -iVar8;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar18,iStack_a4,iVar8);\n    }\n    pcVar25 = pcVar18 + -uVar5;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar5);\n  }\nLAB_0001575c:\n  if ((in_a3 & 0x80) == 0) goto LAB_00015784;\n  if ((iVar3 == -1) && ((local_10 != (int *)0x0 || (iVar3 = 0, 1 < uVar11)))) {\n    iVar3 = 1;\n    uVar13 = 1;\n    piVar6 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar13;\n      uVar13 = (uint)(uVar34 * uVar19);\n      piVar6 = (int *)(uVar19 * (int)piVar6 + (int)(uVar34 * uVar19 >> 0x20));\n      if ((local_10 <= piVar6) && ((local_10 != piVar6 || (uVar11 <= uVar13)))) break;\n      iVar3 = iVar3 + 1;\n    } while (iVar3 != 8);\n    if ((in_a3 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar9 + 0x288);\n      *(undefined1 *)(iVar9 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar9 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar12 == 0) && (iVar9 = *(int *)(puVar23 + 0x1bc48), iVar3 == 1)) {\n      cVar10 = 'k';\n    }\n    else {\n      cVar10 = *(char *)(iVar3 + iVar9 + -0x748);\n    }\n    pcVar18 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar10;\n  }\n  else {\n    if ((in_a3 & 0x100) == 0 && iVar3 == 0) goto LAB_00015784;\n    if ((in_a3 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar18 = pcStack_b0;\n    if (iVar3 != 0) goto LAB_00015bf0;\n  }\n  pcStack_b0 = pcVar18;\n  if ((in_a3 & 0x100) != 0) {\n    pcVar14 = pcVar18 + 1;\n    pcStack_b0 = pcVar14;\n    if ((uVar12 != 0) && (iVar3 != 0)) {\n      pcStack_b0 = pcVar18 + 2;\n      *pcVar18 = 'i';\n      pcVar18 = pcVar14;\n    }\n    *pcVar18 = 'B';\n  }\nLAB_00015784:\n  while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar4) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }\n  return (int)pcVar25;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "char extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_00;" primitive_type identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int in_a2;" primitive_type identifier ;) (declaration "uint in_a3;" 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 "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "char *pcVar25;" primitive_type (pointer_declarator "*pcVar25" * identifier) ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "double dVar28;" primitive_type identifier ;) (declaration "double dVar29;" primitive_type identifier ;) (declaration "longlong lVar30;" type_identifier identifier ;) (declaration "ulonglong uVar31;" type_identifier identifier ;) (declaration "longlong lVar32;" type_identifier identifier ;) (declaration "undefined8 uVar33;" type_identifier identifier ;) (declaration "ulonglong uVar34;" type_identifier identifier ;) (declaration "int local_res8;" primitive_type identifier ;) (declaration "uint local_resc;" type_identifier identifier ;) (declaration "char *pcStack_b0;" primitive_type (pointer_declarator "*pcStack_b0" * identifier) ;) (declaration "int iStack_a4;" primitive_type identifier ;) (declaration "uint uStack_98;" type_identifier identifier ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "undefined1 auStack_88 [44];" type_identifier (array_declarator "auStack_88 [44]" identifier [ number_literal ]) ;) (declaration "int iStack_5c;" primitive_type identifier ;) (declaration "undefined *puStack_58;" type_identifier (pointer_declarator "*puStack_58" * identifier) ;) (declaration "uint uStack_14;" type_identifier identifier ;) (declaration "int *local_10;" primitive_type (pointer_declarator "*local_10" * identifier) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000313bc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000313bc" identifier = identifier) ;) (expression_statement "uVar11 = *(uint *)PTR___stack_chk_guard_000313bc;" (assignment_expression "uVar11 = *(uint *)PTR___stack_chk_guard_000313bc" identifier = (pointer_expression "*(uint *)PTR___stack_chk_guard_000313bc" * (cast_expression "(uint *)PTR___stack_chk_guard_000313bc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar9 = in_a2;" (assignment_expression "iVar9 = in_a2" identifier = identifier) ;) (expression_statement "piVar4 = &local_res8;" (assignment_expression "piVar4 = &local_res8" identifier = (pointer_expression "&local_res8" & identifier)) ;) (if_statement "if ((flags & 0x100U) == 0) {\n    iVar9 = 0;\n    piVar4 = local_10;\n  }" if (parenthesized_expression "((flags & 0x100U) == 0)" ( (binary_expression "(flags & 0x100U) == 0" (parenthesized_expression "(flags & 0x100U)" ( (binary_expression "flags & 0x100U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar9 = 0;\n    piVar4 = local_10;\n  }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "piVar4 = local_10;" (assignment_expression "piVar4 = local_10" identifier = identifier) ;) })) (expression_statement "local_10 = piVar4;" (assignment_expression "local_10 = piVar4" identifier = identifier) ;) (expression_statement "local_res8 = in_a2;" (assignment_expression "local_res8 = in_a2" identifier = identifier) ;) (expression_statement "local_resc = in_a3;" (assignment_expression "local_resc = in_a3" identifier = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR_open64_00031330)();" (assignment_expression "iVar3 = (*(code *)PTR_open64_00031330)()" identifier = (call_expression "(*(code *)PTR_open64_00031330)()" (parenthesized_expression "(*(code *)PTR_open64_00031330)" ( (pointer_expression "*(code *)PTR_open64_00031330" * (cast_expression "(code *)PTR_open64_00031330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar3 = fd_safer(iVar3);" (assignment_expression "iVar3 = fd_safer(iVar3)" identifier = (call_expression "fd_safer(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (uVar11 == *(uint *)puVar2) {\n    return iVar3;\n  }" if (parenthesized_expression "(uVar11 == *(uint *)puVar2)" ( (binary_expression "uVar11 == *(uint *)puVar2" identifier == (pointer_expression "*(uint *)puVar2" * (cast_expression "(uint *)puVar2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) })) (expression_statement "uVar13 = uVar11;" (assignment_expression "uVar13 = uVar11" identifier = identifier) ;) (expression_statement "puVar23 = PTR___stack_chk_fail_0003139c;" (assignment_expression "puVar23 = PTR___stack_chk_fail_0003139c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0003139c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003139c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003139c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003139c" * (cast_expression "(code *)PTR___stack_chk_fail_0003139c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar4 = *(int **)(puVar23 + 0x1beec);" (assignment_expression "piVar4 = *(int **)(puVar23 + 0x1beec)" identifier = (pointer_expression "*(int **)(puVar23 + 0x1beec)" * (cast_expression "(int **)(puVar23 + 0x1beec)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1beec)" ( (binary_expression "puVar23 + 0x1beec" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = in_a3 & 0x20;" (assignment_expression "uVar12 = in_a3 & 0x20" identifier = (binary_expression "in_a3 & 0x20" identifier & number_literal)) ;) (expression_statement "uVar19 = 0x400;" (assignment_expression "uVar19 = 0x400" identifier = number_literal) ;) (expression_statement "iStack_5c = *piVar4;" (assignment_expression "iStack_5c = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "uVar5 = in_a3 & 3;" (assignment_expression "uVar5 = in_a3 & 3" identifier = (binary_expression "in_a3 & 3" identifier & number_literal)) ;) (expression_statement "puStack_58 = puVar2;" (assignment_expression "puStack_58 = puVar2" identifier = identifier) ;) (if_statement "if (uVar12 == 0) {\n    uVar19 = 1000;\n  }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar19 = 1000;\n  }" { (expression_statement "uVar19 = 1000;" (assignment_expression "uVar19 = 1000" identifier = number_literal) ;) })) (expression_statement "piVar6 = (int *)(**(code **)(puVar23 + 0x1be00))();" (assignment_expression "piVar6 = (int *)(**(code **)(puVar23 + 0x1be00))()" identifier = (cast_expression "(int *)(**(code **)(puVar23 + 0x1be00))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar23 + 0x1be00))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1be00))" ( (pointer_expression "**(code **)(puVar23 + 0x1be00)" * (pointer_expression "*(code **)(puVar23 + 0x1be00)" * (cast_expression "(code **)(puVar23 + 0x1be00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be00)" ( (binary_expression "puVar23 + 0x1be00" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iStack_90 = *piVar6;" (assignment_expression "iStack_90 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);" (assignment_expression "uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iStack_90)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iStack_90)" ( identifier )))) ;) (if_statement "if (0xf < uStack_98 - 1) {\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }" if (parenthesized_expression "(0xf < uStack_98 - 1)" ( (binary_expression "0xf < uStack_98 - 1" number_literal < (binary_expression "uStack_98 - 1" identifier - number_literal)) )) (compound_statement "{\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }" { (expression_statement "uStack_98 = 1;" (assignment_expression "uStack_98 = 1" identifier = number_literal) ;) (expression_statement "iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;" (assignment_expression "iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0" identifier = (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7c0" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "iStack_a4 = piVar6[1];" (assignment_expression "iStack_a4 = piVar6[1]" identifier = (subscript_expression "piVar6[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar20 = (byte *)piVar6[2];" (assignment_expression "pbVar20 = (byte *)piVar6[2]" identifier = (cast_expression "(byte *)piVar6[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar6[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar7 = (**(code **)(puVar23 + 0x1be70))();" (assignment_expression "uVar7 = (**(code **)(puVar23 + 0x1be70))()" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (0x10 < uVar7) {\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }" if (parenthesized_expression "(0x10 < uVar7)" ( (binary_expression "0x10 < uVar7" number_literal < identifier) )) (compound_statement "{\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }" { (expression_statement "iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;" (assignment_expression "iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c" identifier = (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0xf6c" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "pcStack_b0 = (char *)(iVar9 + 0x287);" (assignment_expression "pcStack_b0 = (char *)(iVar9 + 0x287)" identifier = (cast_expression "(char *)(iVar9 + 0x287)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x287)" ( (binary_expression "iVar9 + 0x287" identifier + number_literal) )))) ;) (if_statement "if ((&_gp < local_10) || ((local_10 == (int *)&_gp && (uStack_14 < uVar11)))) {\n    lVar30 = __umoddi3(local_10,uVar11,&_gp,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = __udivdi3(local_10,uVar11,&_gp,uStack_14);\n    uVar7 = (uint)(uVar31 >> 0x20);\n    uVar16 = (uint)uVar31;\n    uVar33 = __umoddi3(uVar13,flags,uVar7,uVar16);\n    iVar3 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar17 = (uint)uVar33;\n    uVar22 = uVar17 * 5 >> 0x1f |\n             ((uint)(uVar17 * 5 < uVar17 * 4) + (uVar17 >> 0x1e | iVar3 << 2) + iVar3) * 2;\n    lVar32 = __umoddi3(uVar22,uVar17 * 10,uVar7,uVar16);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = __udivdi3(uVar13,flags,uVar7,uVar16);\n    __udivdi3(uVar22,uVar17 * 10,uVar7,uVar16);\n    uVar13 = extraout_v1;\n    if ((uVar26 < uVar7) || ((uVar7 == uVar26 && ((uint)lVar30 < uVar16)))) {\n      uVar7 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar7 = 3;\n    }\n    else {\n      uVar7 = 2;\n    }\nLAB_00015d94:\n    pcVar18 = pcStack_b0;\n    if ((in_a3 & 0x10) == 0) {\n      iVar3 = -1;\n    }\n    else {\n      iVar3 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar19 <= (uint)uVar34)) {\n        iVar3 = 0;\n        do {\n          uVar21 = (undefined4)(uVar34 >> 0x20);\n          __umoddi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = extraout_v1_00 * 10 + uVar13;\n          if (uVar19 == 0) {\n            trap(7);\n          }\n          uVar13 = uVar16 / uVar19;\n          uVar17 = (uVar16 % uVar19) * 2 + ((int)uVar7 >> 1);\n          uVar34 = __udivdi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = (uint)uVar34;\n          uVar26 = uVar7 + uVar17;\n          if (uVar17 < uVar19) {\n            uVar7 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar7 = 2;\n            if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }\n          }\n          iVar3 = iVar3 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19)) {\n            if (uVar16 < 10) {\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar3 != 8);\n      }\n    }\n    if (uVar5 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar7 != 0) + uVar13)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar8 = (int)(uVar34 >> 0x20);\n          uVar13 = (uint)uVar34;\n          __umoddi3(iVar8,uVar13,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = __udivdi3(iVar8,uVar13,0,10);\n        } while (iVar8 != 0);\n      } while (9 < uVar13);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar18;\n      if ((uVar5 != 0) || ((int)(uVar13 + uVar7) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar18;\n      if (((in_a3 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)) || (iVar3 == 8))))\n      goto LAB_00015e08;\n      iVar3 = iVar3 + 1;\n      if ((in_a3 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar18[-1] = '0';\n        pcVar18 = pcVar18 + ~uStack_98;\n        (*pcVar24)(pcVar18,iStack_90);\n      }\n      pcVar25 = pcVar18 + -1;\n      pcVar18[-1] = '1';\n    }\n  }\n  else {\n    lVar30 = __umoddi3(&_gp,uStack_14,local_10,uVar11);\n    if (lVar30 == 0) {\n      lVar30 = __udivdi3(&_gp,uStack_14,local_10,uVar11);\n      uVar34 = lVar30 * CONCAT44(uVar13,flags);\n      lVar30 = __udivdi3((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar13,flags)) {\n        uVar7 = 0;\n        uVar13 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)__floatundidf(&_gp,uStack_14);\n    dVar28 = (double)__floatundidf(local_10,uVar11);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)__floatundidf(uVar13,flags);\n    dVar27 = dVar27 * dVar28;\n    if ((in_a3 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((in_a3 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = __fixunsdfdi(dVar27);\n        iVar3 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar13 = (uint)uVar33;\n        dVar28 = (double)__floatundidf(iVar3,uVar13);\n        if (((in_a3 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar3 = -1;\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }\n    else {\n      iVar3 = 0;\n      dVar28 = (double)uVar19;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar19;\n        iVar3 = iVar3 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar3 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar13 = (uVar12 == 0) + 1 + uStack_98 + 1;\n      if (uVar5 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        if (uVar7 <= uVar13) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar8 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar8 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = __fixunsdfdi(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar5 != 0) goto LAB_000159a0;\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        dVar27 = dVar28;\n        if (uVar13 < uVar7) {\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar15 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar15 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar5 == 1) goto LAB_00015a5c;\n          iVar8 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar15 + -0x728);\n        if (dVar28 < *(double *)(iVar8 + -0x730)) {\n          lVar30 = __fixunsdfdi(dVar28);\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar5 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar15 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar7;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar9,uVar7);\n    pcVar18 = pcVar25 + uVar13;\n  }" if (parenthesized_expression "((&_gp < local_10) || ((local_10 == (int *)&_gp && (uStack_14 < uVar11))))" ( (binary_expression "(&_gp < local_10) || ((local_10 == (int *)&_gp && (uStack_14 < uVar11)))" (parenthesized_expression "(&_gp < local_10)" ( (binary_expression "&_gp < local_10" (pointer_expression "&_gp" & identifier) < identifier) )) || (parenthesized_expression "((local_10 == (int *)&_gp && (uStack_14 < uVar11)))" ( (parenthesized_expression "(local_10 == (int *)&_gp && (uStack_14 < uVar11))" ( (binary_expression "local_10 == (int *)&_gp && (uStack_14 < uVar11)" (binary_expression "local_10 == (int *)&_gp" identifier == (cast_expression "(int *)&_gp" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&_gp" & identifier))) && (parenthesized_expression "(uStack_14 < uVar11)" ( (binary_expression "uStack_14 < uVar11" identifier < identifier) ))) )) ))) )) (compound_statement "{\n    lVar30 = __umoddi3(local_10,uVar11,&_gp,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = __udivdi3(local_10,uVar11,&_gp,uStack_14);\n    uVar7 = (uint)(uVar31 >> 0x20);\n    uVar16 = (uint)uVar31;\n    uVar33 = __umoddi3(uVar13,flags,uVar7,uVar16);\n    iVar3 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar17 = (uint)uVar33;\n    uVar22 = uVar17 * 5 >> 0x1f |\n             ((uint)(uVar17 * 5 < uVar17 * 4) + (uVar17 >> 0x1e | iVar3 << 2) + iVar3) * 2;\n    lVar32 = __umoddi3(uVar22,uVar17 * 10,uVar7,uVar16);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = __udivdi3(uVar13,flags,uVar7,uVar16);\n    __udivdi3(uVar22,uVar17 * 10,uVar7,uVar16);\n    uVar13 = extraout_v1;\n    if ((uVar26 < uVar7) || ((uVar7 == uVar26 && ((uint)lVar30 < uVar16)))) {\n      uVar7 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar7 = 3;\n    }\n    else {\n      uVar7 = 2;\n    }\nLAB_00015d94:\n    pcVar18 = pcStack_b0;\n    if ((in_a3 & 0x10) == 0) {\n      iVar3 = -1;\n    }\n    else {\n      iVar3 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar19 <= (uint)uVar34)) {\n        iVar3 = 0;\n        do {\n          uVar21 = (undefined4)(uVar34 >> 0x20);\n          __umoddi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = extraout_v1_00 * 10 + uVar13;\n          if (uVar19 == 0) {\n            trap(7);\n          }\n          uVar13 = uVar16 / uVar19;\n          uVar17 = (uVar16 % uVar19) * 2 + ((int)uVar7 >> 1);\n          uVar34 = __udivdi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = (uint)uVar34;\n          uVar26 = uVar7 + uVar17;\n          if (uVar17 < uVar19) {\n            uVar7 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar7 = 2;\n            if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }\n          }\n          iVar3 = iVar3 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19)) {\n            if (uVar16 < 10) {\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar3 != 8);\n      }\n    }\n    if (uVar5 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar7 != 0) + uVar13)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar8 = (int)(uVar34 >> 0x20);\n          uVar13 = (uint)uVar34;\n          __umoddi3(iVar8,uVar13,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = __udivdi3(iVar8,uVar13,0,10);\n        } while (iVar8 != 0);\n      } while (9 < uVar13);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar18;\n      if ((uVar5 != 0) || ((int)(uVar13 + uVar7) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar18;\n      if (((in_a3 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)) || (iVar3 == 8))))\n      goto LAB_00015e08;\n      iVar3 = iVar3 + 1;\n      if ((in_a3 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar18[-1] = '0';\n        pcVar18 = pcVar18 + ~uStack_98;\n        (*pcVar24)(pcVar18,iStack_90);\n      }\n      pcVar25 = pcVar18 + -1;\n      pcVar18[-1] = '1';\n    }\n  }" { (expression_statement "lVar30 = __umoddi3(local_10,uVar11,&_gp,uStack_14);" (assignment_expression "lVar30 = __umoddi3(local_10,uVar11,&_gp,uStack_14)" identifier = (call_expression "__umoddi3(local_10,uVar11,&_gp,uStack_14)" identifier (argument_list "(local_10,uVar11,&_gp,uStack_14)" ( identifier , identifier , (pointer_expression "&_gp" & identifier) , identifier )))) ;) (if_statement "if (lVar30 != 0) goto LAB_00015680;" if (parenthesized_expression "(lVar30 != 0)" ( (binary_expression "lVar30 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015680;" goto statement_identifier ;)) (expression_statement "uVar31 = __udivdi3(local_10,uVar11,&_gp,uStack_14);" (assignment_expression "uVar31 = __udivdi3(local_10,uVar11,&_gp,uStack_14)" identifier = (call_expression "__udivdi3(local_10,uVar11,&_gp,uStack_14)" identifier (argument_list "(local_10,uVar11,&_gp,uStack_14)" ( identifier , identifier , (pointer_expression "&_gp" & identifier) , identifier )))) ;) (expression_statement "uVar7 = (uint)(uVar31 >> 0x20);" (assignment_expression "uVar7 = (uint)(uVar31 >> 0x20)" identifier = (call_expression "(uint)(uVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar31 >> 0x20)" ( (binary_expression "uVar31 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar16 = (uint)uVar31;" (assignment_expression "uVar16 = (uint)uVar31" identifier = (cast_expression "(uint)uVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar33 = __umoddi3(uVar13,flags,uVar7,uVar16);" (assignment_expression "uVar33 = __umoddi3(uVar13,flags,uVar7,uVar16)" identifier = (call_expression "__umoddi3(uVar13,flags,uVar7,uVar16)" identifier (argument_list "(uVar13,flags,uVar7,uVar16)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar3 = (int)((ulonglong)uVar33 >> 0x20);" (assignment_expression "iVar3 = (int)((ulonglong)uVar33 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar33 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar33 >> 0x20)" ( (binary_expression "(ulonglong)uVar33 >> 0x20" (cast_expression "(ulonglong)uVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar17 = (uint)uVar33;" (assignment_expression "uVar17 = (uint)uVar33" identifier = (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar22 = uVar17 * 5 >> 0x1f |\n             ((uint)(uVar17 * 5 < uVar17 * 4) + (uVar17 >> 0x1e | iVar3 << 2) + iVar3) * 2;" (assignment_expression "uVar22 = uVar17 * 5 >> 0x1f |\n             ((uint)(uVar17 * 5 < uVar17 * 4) + (uVar17 >> 0x1e | iVar3 << 2) + iVar3) * 2" identifier = (binary_expression "uVar17 * 5 >> 0x1f |\n             ((uint)(uVar17 * 5 < uVar17 * 4) + (uVar17 >> 0x1e | iVar3 << 2) + iVar3) * 2" (binary_expression "uVar17 * 5 >> 0x1f" (binary_expression "uVar17 * 5" identifier * number_literal) >> number_literal) | (binary_expression "((uint)(uVar17 * 5 < uVar17 * 4) + (uVar17 >> 0x1e | iVar3 << 2) + iVar3) * 2" (parenthesized_expression "((uint)(uVar17 * 5 < uVar17 * 4) + (uVar17 >> 0x1e | iVar3 << 2) + iVar3)" ( (binary_expression "(uint)(uVar17 * 5 < uVar17 * 4) + (uVar17 >> 0x1e | iVar3 << 2) + iVar3" (binary_expression "(uint)(uVar17 * 5 < uVar17 * 4) + (uVar17 >> 0x1e | iVar3 << 2)" (call_expression "(uint)(uVar17 * 5 < uVar17 * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 * 5 < uVar17 * 4)" ( (binary_expression "uVar17 * 5 < uVar17 * 4" (binary_expression "uVar17 * 5" identifier * number_literal) < (binary_expression "uVar17 * 4" identifier * number_literal)) ))) + (parenthesized_expression "(uVar17 >> 0x1e | iVar3 << 2)" ( (binary_expression "uVar17 >> 0x1e | iVar3 << 2" (binary_expression "uVar17 >> 0x1e" identifier >> number_literal) | (binary_expression "iVar3 << 2" identifier << number_literal)) ))) + identifier) )) * number_literal))) ;) (expression_statement "lVar32 = __umoddi3(uVar22,uVar17 * 10,uVar7,uVar16);" (assignment_expression "lVar32 = __umoddi3(uVar22,uVar17 * 10,uVar7,uVar16)" identifier = (call_expression "__umoddi3(uVar22,uVar17 * 10,uVar7,uVar16)" identifier (argument_list "(uVar22,uVar17 * 10,uVar7,uVar16)" ( identifier , (binary_expression "uVar17 * 10" identifier * number_literal) , identifier , identifier )))) ;) (expression_statement "lVar30 = lVar32 << 1;" (assignment_expression "lVar30 = lVar32 << 1" identifier = (binary_expression "lVar32 << 1" identifier << number_literal)) ;) (expression_statement "uVar26 = (uint)((ulonglong)lVar30 >> 0x20);" (assignment_expression "uVar26 = (uint)((ulonglong)lVar30 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar30 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar34 = __udivdi3(uVar13,flags,uVar7,uVar16);" (assignment_expression "uVar34 = __udivdi3(uVar13,flags,uVar7,uVar16)" identifier = (call_expression "__udivdi3(uVar13,flags,uVar7,uVar16)" identifier (argument_list "(uVar13,flags,uVar7,uVar16)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "__udivdi3(uVar22,uVar17 * 10,uVar7,uVar16);" (call_expression "__udivdi3(uVar22,uVar17 * 10,uVar7,uVar16)" identifier (argument_list "(uVar22,uVar17 * 10,uVar7,uVar16)" ( identifier , (binary_expression "uVar17 * 10" identifier * number_literal) , identifier , identifier ))) ;) (expression_statement "uVar13 = extraout_v1;" (assignment_expression "uVar13 = extraout_v1" identifier = identifier) ;) (if_statement "if ((uVar26 < uVar7) || ((uVar7 == uVar26 && ((uint)lVar30 < uVar16)))) {\n      uVar7 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar7 = 3;\n    }\n    else {\n      uVar7 = 2;\n    }" if (parenthesized_expression "((uVar26 < uVar7) || ((uVar7 == uVar26 && ((uint)lVar30 < uVar16))))" ( (binary_expression "(uVar26 < uVar7) || ((uVar7 == uVar26 && ((uint)lVar30 < uVar16)))" (parenthesized_expression "(uVar26 < uVar7)" ( (binary_expression "uVar26 < uVar7" identifier < identifier) )) || (parenthesized_expression "((uVar7 == uVar26 && ((uint)lVar30 < uVar16)))" ( (parenthesized_expression "(uVar7 == uVar26 && ((uint)lVar30 < uVar16))" ( (binary_expression "uVar7 == uVar26 && ((uint)lVar30 < uVar16)" (binary_expression "uVar7 == uVar26" identifier == identifier) && (parenthesized_expression "((uint)lVar30 < uVar16)" ( (binary_expression "(uint)lVar30 < uVar16" (cast_expression "(uint)lVar30" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))) )) ))) )) (compound_statement "{\n      uVar7 = (uint)(lVar30 != 0);\n    }" { (expression_statement "uVar7 = (uint)(lVar30 != 0);" (assignment_expression "uVar7 = (uint)(lVar30 != 0)" identifier = (call_expression "(uint)(lVar30 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(lVar30 != 0)" ( (binary_expression "lVar30 != 0" identifier != number_literal) )))) ;) }) (else_clause "else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar7 = 3;\n    }\n    else {\n      uVar7 = 2;\n    }" else (if_statement "if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar7 = 3;\n    }\n    else {\n      uVar7 = 2;\n    }" if (parenthesized_expression "(uVar31 < (ulonglong)(lVar32 << 1))" ( (binary_expression "uVar31 < (ulonglong)(lVar32 << 1)" identifier < (call_expression "(ulonglong)(lVar32 << 1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar32 << 1)" ( (binary_expression "lVar32 << 1" identifier << number_literal) )))) )) (compound_statement "{\n      uVar7 = 3;\n    }" { (expression_statement "uVar7 = 3;" (assignment_expression "uVar7 = 3" identifier = number_literal) ;) }) (else_clause "else {\n      uVar7 = 2;\n    }" else (compound_statement "{\n      uVar7 = 2;\n    }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) }))))) (labeled_statement "LAB_00015d94:\n    pcVar18 = pcStack_b0;" statement_identifier : (expression_statement "pcVar18 = pcStack_b0;" (assignment_expression "pcVar18 = pcStack_b0" identifier = identifier) ;)) (if_statement "if ((in_a3 & 0x10) == 0) {\n      iVar3 = -1;\n    }\n    else {\n      iVar3 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar19 <= (uint)uVar34)) {\n        iVar3 = 0;\n        do {\n          uVar21 = (undefined4)(uVar34 >> 0x20);\n          __umoddi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = extraout_v1_00 * 10 + uVar13;\n          if (uVar19 == 0) {\n            trap(7);\n          }\n          uVar13 = uVar16 / uVar19;\n          uVar17 = (uVar16 % uVar19) * 2 + ((int)uVar7 >> 1);\n          uVar34 = __udivdi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = (uint)uVar34;\n          uVar26 = uVar7 + uVar17;\n          if (uVar17 < uVar19) {\n            uVar7 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar7 = 2;\n            if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }\n          }\n          iVar3 = iVar3 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19)) {\n            if (uVar16 < 10) {\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar3 != 8);\n      }\n    }" if (parenthesized_expression "((in_a3 & 0x10) == 0)" ( (binary_expression "(in_a3 & 0x10) == 0" (parenthesized_expression "(in_a3 & 0x10)" ( (binary_expression "in_a3 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar3 = -1;\n    }" { (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      iVar3 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar19 <= (uint)uVar34)) {\n        iVar3 = 0;\n        do {\n          uVar21 = (undefined4)(uVar34 >> 0x20);\n          __umoddi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = extraout_v1_00 * 10 + uVar13;\n          if (uVar19 == 0) {\n            trap(7);\n          }\n          uVar13 = uVar16 / uVar19;\n          uVar17 = (uVar16 % uVar19) * 2 + ((int)uVar7 >> 1);\n          uVar34 = __udivdi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = (uint)uVar34;\n          uVar26 = uVar7 + uVar17;\n          if (uVar17 < uVar19) {\n            uVar7 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar7 = 2;\n            if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }\n          }\n          iVar3 = iVar3 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19)) {\n            if (uVar16 < 10) {\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar3 != 8);\n      }\n    }" else (compound_statement "{\n      iVar3 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar19 <= (uint)uVar34)) {\n        iVar3 = 0;\n        do {\n          uVar21 = (undefined4)(uVar34 >> 0x20);\n          __umoddi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = extraout_v1_00 * 10 + uVar13;\n          if (uVar19 == 0) {\n            trap(7);\n          }\n          uVar13 = uVar16 / uVar19;\n          uVar17 = (uVar16 % uVar19) * 2 + ((int)uVar7 >> 1);\n          uVar34 = __udivdi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = (uint)uVar34;\n          uVar26 = uVar7 + uVar17;\n          if (uVar17 < uVar19) {\n            uVar7 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar7 = 2;\n            if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }\n          }\n          iVar3 = iVar3 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19)) {\n            if (uVar16 < 10) {\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar3 != 8);\n      }\n    }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (((int)(uVar34 >> 0x20) != 0) || (uVar19 <= (uint)uVar34)) {\n        iVar3 = 0;\n        do {\n          uVar21 = (undefined4)(uVar34 >> 0x20);\n          __umoddi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = extraout_v1_00 * 10 + uVar13;\n          if (uVar19 == 0) {\n            trap(7);\n          }\n          uVar13 = uVar16 / uVar19;\n          uVar17 = (uVar16 % uVar19) * 2 + ((int)uVar7 >> 1);\n          uVar34 = __udivdi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = (uint)uVar34;\n          uVar26 = uVar7 + uVar17;\n          if (uVar17 < uVar19) {\n            uVar7 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar7 = 2;\n            if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }\n          }\n          iVar3 = iVar3 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19)) {\n            if (uVar16 < 10) {\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar3 != 8);\n      }" if (parenthesized_expression "(((int)(uVar34 >> 0x20) != 0) || (uVar19 <= (uint)uVar34))" ( (binary_expression "((int)(uVar34 >> 0x20) != 0) || (uVar19 <= (uint)uVar34)" (parenthesized_expression "((int)(uVar34 >> 0x20) != 0)" ( (binary_expression "(int)(uVar34 >> 0x20) != 0" (cast_expression "(int)(uVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) ))) != number_literal) )) || (parenthesized_expression "(uVar19 <= (uint)uVar34)" ( (binary_expression "uVar19 <= (uint)uVar34" identifier <= (cast_expression "(uint)uVar34" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) (compound_statement "{\n        iVar3 = 0;\n        do {\n          uVar21 = (undefined4)(uVar34 >> 0x20);\n          __umoddi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = extraout_v1_00 * 10 + uVar13;\n          if (uVar19 == 0) {\n            trap(7);\n          }\n          uVar13 = uVar16 / uVar19;\n          uVar17 = (uVar16 % uVar19) * 2 + ((int)uVar7 >> 1);\n          uVar34 = __udivdi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = (uint)uVar34;\n          uVar26 = uVar7 + uVar17;\n          if (uVar17 < uVar19) {\n            uVar7 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar7 = 2;\n            if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }\n          }\n          iVar3 = iVar3 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19)) {\n            if (uVar16 < 10) {\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar3 != 8);\n      }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar21 = (undefined4)(uVar34 >> 0x20);\n          __umoddi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = extraout_v1_00 * 10 + uVar13;\n          if (uVar19 == 0) {\n            trap(7);\n          }\n          uVar13 = uVar16 / uVar19;\n          uVar17 = (uVar16 % uVar19) * 2 + ((int)uVar7 >> 1);\n          uVar34 = __udivdi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = (uint)uVar34;\n          uVar26 = uVar7 + uVar17;\n          if (uVar17 < uVar19) {\n            uVar7 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar7 = 2;\n            if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }\n          }\n          iVar3 = iVar3 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19)) {\n            if (uVar16 < 10) {\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar3 != 8);" do (compound_statement "{\n          uVar21 = (undefined4)(uVar34 >> 0x20);\n          __umoddi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = extraout_v1_00 * 10 + uVar13;\n          if (uVar19 == 0) {\n            trap(7);\n          }\n          uVar13 = uVar16 / uVar19;\n          uVar17 = (uVar16 % uVar19) * 2 + ((int)uVar7 >> 1);\n          uVar34 = __udivdi3(uVar21,(int)uVar34,0,uVar19);\n          uVar16 = (uint)uVar34;\n          uVar26 = uVar7 + uVar17;\n          if (uVar17 < uVar19) {\n            uVar7 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar7 = 2;\n            if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }\n          }\n          iVar3 = iVar3 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19)) {\n            if (uVar16 < 10) {\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        }" { (expression_statement "uVar21 = (undefined4)(uVar34 >> 0x20);" (assignment_expression "uVar21 = (undefined4)(uVar34 >> 0x20)" identifier = (call_expression "(undefined4)(uVar34 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "__umoddi3(uVar21,(int)uVar34,0,uVar19);" (call_expression "__umoddi3(uVar21,(int)uVar34,0,uVar19)" identifier (argument_list "(uVar21,(int)uVar34,0,uVar19)" ( identifier , (cast_expression "(int)uVar34" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , identifier ))) ;) (expression_statement "uVar16 = extraout_v1_00 * 10 + uVar13;" (assignment_expression "uVar16 = extraout_v1_00 * 10 + uVar13" identifier = (binary_expression "extraout_v1_00 * 10 + uVar13" (binary_expression "extraout_v1_00 * 10" identifier * number_literal) + identifier)) ;) (if_statement "if (uVar19 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar13 = uVar16 / uVar19;" (assignment_expression "uVar13 = uVar16 / uVar19" identifier = (binary_expression "uVar16 / uVar19" identifier / identifier)) ;) (expression_statement "uVar17 = (uVar16 % uVar19) * 2 + ((int)uVar7 >> 1);" (assignment_expression "uVar17 = (uVar16 % uVar19) * 2 + ((int)uVar7 >> 1)" identifier = (binary_expression "(uVar16 % uVar19) * 2 + ((int)uVar7 >> 1)" (binary_expression "(uVar16 % uVar19) * 2" (parenthesized_expression "(uVar16 % uVar19)" ( (binary_expression "uVar16 % uVar19" identifier % identifier) )) * number_literal) + (parenthesized_expression "((int)uVar7 >> 1)" ( (binary_expression "(int)uVar7 >> 1" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar34 = __udivdi3(uVar21,(int)uVar34,0,uVar19);" (assignment_expression "uVar34 = __udivdi3(uVar21,(int)uVar34,0,uVar19)" identifier = (call_expression "__udivdi3(uVar21,(int)uVar34,0,uVar19)" identifier (argument_list "(uVar21,(int)uVar34,0,uVar19)" ( identifier , (cast_expression "(int)uVar34" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , identifier )))) ;) (expression_statement "uVar16 = (uint)uVar34;" (assignment_expression "uVar16 = (uint)uVar34" identifier = (cast_expression "(uint)uVar34" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar26 = uVar7 + uVar17;" (assignment_expression "uVar26 = uVar7 + uVar17" identifier = (binary_expression "uVar7 + uVar17" identifier + identifier)) ;) (if_statement "if (uVar17 < uVar19) {\n            uVar7 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar7 = 2;\n            if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }\n          }" if (parenthesized_expression "(uVar17 < uVar19)" ( (binary_expression "uVar17 < uVar19" identifier < identifier) )) (compound_statement "{\n            uVar7 = (uint)(uVar26 != 0);\n          }" { (expression_statement "uVar7 = (uint)(uVar26 != 0);" (assignment_expression "uVar7 = (uint)(uVar26 != 0)" identifier = (call_expression "(uint)(uVar26 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )))) ;) }) (else_clause "else {\n            uVar7 = 2;\n            if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }\n          }" else (compound_statement "{\n            uVar7 = 2;\n            if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }\n          }" { (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (if_statement "if (uVar19 < uVar26) {\n              uVar7 = 3;\n            }" if (parenthesized_expression "(uVar19 < uVar26)" ( (binary_expression "uVar19 < uVar26" identifier < identifier) )) (compound_statement "{\n              uVar7 = 3;\n            }" { (expression_statement "uVar7 = 3;" (assignment_expression "uVar7 = 3" identifier = number_literal) ;) })) }))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19)) {\n            if (uVar16 < 10) {\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }" if (parenthesized_expression "(((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19))" ( (binary_expression "((int)(uVar34 >> 0x20) == 0) && (uVar16 < uVar19)" (parenthesized_expression "((int)(uVar34 >> 0x20) == 0)" ( (binary_expression "(int)(uVar34 >> 0x20) == 0" (cast_expression "(int)(uVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(uVar16 < uVar19)" ( (binary_expression "uVar16 < uVar19" identifier < identifier) ))) )) (compound_statement "{\n            if (uVar16 < 10) {\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }" { (if_statement "if (uVar16 < 10) {\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }" if (parenthesized_expression "(uVar16 < 10)" ( (binary_expression "uVar16 < 10" identifier < number_literal) )) (compound_statement "{\n              if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar13 = 0;\n              pcVar25 = pcVar18;\n              if (uVar5 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }" { (if_statement "if (uVar5 == 1) {\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (compound_statement "{\n                bVar1 = 2 < (uVar13 & 1) + uVar7;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar17 = uVar16 + 1;\n                if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }\n                cVar10 = (char)uVar13 + '1';\nLAB_00016084:\n                uVar7 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar9 + 0x286) = cVar10;\n                pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar18,iStack_90,uStack_98);\n              }" { (expression_statement "bVar1 = 2 < (uVar13 & 1) + uVar7;" (assignment_expression "bVar1 = 2 < (uVar13 & 1) + uVar7" identifier = (binary_expression "2 < (uVar13 & 1) + uVar7" number_literal < (binary_expression "(uVar13 & 1) + uVar7" (parenthesized_expression "(uVar13 & 1)" ( (binary_expression "uVar13 & 1" identifier & number_literal) )) + identifier))) ;) (labeled_statement "LAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;" statement_identifier : (if_statement "if (!bVar1) goto LAB_0001606c;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (goto_statement "goto LAB_0001606c;" goto statement_identifier ;))) (expression_statement "uVar17 = uVar16 + 1;" (assignment_expression "uVar17 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (if_statement "if (uVar13 == 9) {\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }" if (parenthesized_expression "(uVar13 == 9)" ( (binary_expression "uVar13 == 9" identifier == number_literal) )) (compound_statement "{\n                  bVar1 = uVar17 < uVar16;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar7 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);\n                  goto LAB_000160b4;\n                }" { (expression_statement "bVar1 = uVar17 < uVar16;" (assignment_expression "bVar1 = uVar17 < uVar16" identifier = (binary_expression "uVar17 < uVar16" identifier < identifier)) ;) (expression_statement "uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);" (assignment_expression "uVar34 = (ulonglong)CONCAT14(bVar1,uVar17)" identifier = (cast_expression "(ulonglong)CONCAT14(bVar1,uVar17)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,uVar17)" identifier (argument_list "(bVar1,uVar17)" ( identifier , identifier ))))) ;) (if_statement "if ((bVar1) || (uVar17 != 10)) {\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }" if (parenthesized_expression "((bVar1) || (uVar17 != 10))" ( (binary_expression "(bVar1) || (uVar17 != 10)" (parenthesized_expression "(bVar1)" ( identifier )) || (parenthesized_expression "(uVar17 != 10)" ( (binary_expression "uVar17 != 10" identifier != number_literal) ))) )) (compound_statement "{\n                    uVar7 = 0;\n                    goto LAB_00016074;\n                  }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00016074;" goto statement_identifier ;) })) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = (ulonglong)CONCAT14(bVar1,uVar17);" (assignment_expression "uVar34 = (ulonglong)CONCAT14(bVar1,uVar17)" identifier = (cast_expression "(ulonglong)CONCAT14(bVar1,uVar17)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,uVar17)" identifier (argument_list "(bVar1,uVar17)" ( identifier , identifier ))))) ;) (goto_statement "goto LAB_000160b4;" goto statement_identifier ;) })) (expression_statement "cVar10 = (char)uVar13 + '1';" (assignment_expression "cVar10 = (char)uVar13 + '1'" identifier = (binary_expression "(char)uVar13 + '1'" (cast_expression "(char)uVar13" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'1'" ' character '))) ;) (labeled_statement "LAB_00016084:\n                uVar7 = 0;" statement_identifier : (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;)) (expression_statement "pcVar24 = *(code **)(puVar23 + 0x1bef0);" (assignment_expression "pcVar24 = *(code **)(puVar23 + 0x1bef0)" identifier = (pointer_expression "*(code **)(puVar23 + 0x1bef0)" * (cast_expression "(code **)(puVar23 + 0x1bef0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef0)" ( (binary_expression "puVar23 + 0x1bef0" identifier + number_literal) ))))) ;) (expression_statement "*(char *)(iVar9 + 0x286) = cVar10;" (assignment_expression "*(char *)(iVar9 + 0x286) = cVar10" (pointer_expression "*(char *)(iVar9 + 0x286)" * (cast_expression "(char *)(iVar9 + 0x286)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x286)" ( (binary_expression "iVar9 + 0x286" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar18 = (char *)((iVar9 + 0x286) - uStack_98);" (assignment_expression "pcVar18 = (char *)((iVar9 + 0x286) - uStack_98)" identifier = (cast_expression "(char *)((iVar9 + 0x286) - uStack_98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar9 + 0x286) - uStack_98)" ( (binary_expression "(iVar9 + 0x286) - uStack_98" (parenthesized_expression "(iVar9 + 0x286)" ( (binary_expression "iVar9 + 0x286" identifier + number_literal) )) - identifier) )))) ;) (expression_statement "(*pcVar24)(pcVar18,iStack_90,uStack_98);" (call_expression "(*pcVar24)(pcVar18,iStack_90,uStack_98)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(pcVar18,iStack_90,uStack_98)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }" else (compound_statement "{\n                bVar1 = uVar7 != 0;\n                if (uVar5 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar10 = (char)uVar13 + '0';\n                if (uVar13 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }\n              }" { (expression_statement "bVar1 = uVar7 != 0;" (assignment_expression "bVar1 = uVar7 != 0" identifier = (binary_expression "uVar7 != 0" identifier != number_literal)) ;) (if_statement "if (uVar5 == 0) goto LAB_000160dc;" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000160dc;" goto statement_identifier ;)) (labeled_statement "LAB_0001606c:\n                cVar10 = (char)uVar13 + '0';" statement_identifier : (expression_statement "cVar10 = (char)uVar13 + '0';" (assignment_expression "cVar10 = (char)uVar13 + '0'" identifier = (binary_expression "(char)uVar13 + '0'" (cast_expression "(char)uVar13" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'0'" ' character '))) ;)) (if_statement "if (uVar13 != 0) goto LAB_00016084;" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016084;" goto statement_identifier ;)) (labeled_statement "LAB_00016074:\n                if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }" statement_identifier : (if_statement "if ((in_a3 & 8) == 0) {\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }" if (parenthesized_expression "((in_a3 & 8) == 0)" ( (binary_expression "(in_a3 & 8) == 0" (parenthesized_expression "(in_a3 & 8)" ( (binary_expression "in_a3 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  cVar10 = '0';\n                  goto LAB_00016084;\n                }" { (expression_statement "cVar10 = '0';" (assignment_expression "cVar10 = '0'" identifier = (char_literal "'0'" ' character ')) ;) (goto_statement "goto LAB_00016084;" goto statement_identifier ;) }))) }))) (labeled_statement "LAB_000160b4:\n              uVar13 = 0;" statement_identifier : (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;)) (expression_statement "pcVar25 = pcVar18;" (assignment_expression "pcVar25 = pcVar18" identifier = identifier) ;) (if_statement "if (uVar5 == 1) goto LAB_00015e08;" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (goto_statement "goto LAB_00015dcc;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) }) while (parenthesized_expression "(iVar3 != 8)" ( (binary_expression "iVar3 != 8" identifier != number_literal) )) ;) })) }))) (if_statement "if (uVar5 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar7 != 0) + uVar13)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar8 = (int)(uVar34 >> 0x20);\n          uVar13 = (uint)uVar34;\n          __umoddi3(iVar8,uVar13,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = __udivdi3(iVar8,uVar13,0,10);\n        } while (iVar8 != 0);\n      } while (9 < uVar13);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar18;\n      if ((uVar5 != 0) || ((int)(uVar13 + uVar7) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar18;\n      if (((in_a3 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)) || (iVar3 == 8))))\n      goto LAB_00015e08;\n      iVar3 = iVar3 + 1;\n      if ((in_a3 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar18[-1] = '0';\n        pcVar18 = pcVar18 + ~uStack_98;\n        (*pcVar24)(pcVar18,iStack_90);\n      }\n      pcVar25 = pcVar18 + -1;\n      pcVar18[-1] = '1';\n    }" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (compound_statement "{\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar7 != 0) + uVar13)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar8 = (int)(uVar34 >> 0x20);\n          uVar13 = (uint)uVar34;\n          __umoddi3(iVar8,uVar13,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = __udivdi3(iVar8,uVar13,0,10);\n        } while (iVar8 != 0);\n      } while (9 < uVar13);\n    }" { (expression_statement "pcVar25 = pcStack_b0;" (assignment_expression "pcVar25 = pcStack_b0" identifier = identifier) ;) (if_statement "if (5 < (int)((((uint)uVar34 & 1) + uVar7 != 0) + uVar13)) goto LAB_00015ddc;" if (parenthesized_expression "(5 < (int)((((uint)uVar34 & 1) + uVar7 != 0) + uVar13))" ( (binary_expression "5 < (int)((((uint)uVar34 & 1) + uVar7 != 0) + uVar13)" number_literal < (cast_expression "(int)((((uint)uVar34 & 1) + uVar7 != 0) + uVar13)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((((uint)uVar34 & 1) + uVar7 != 0) + uVar13)" ( (binary_expression "(((uint)uVar34 & 1) + uVar7 != 0) + uVar13" (parenthesized_expression "(((uint)uVar34 & 1) + uVar7 != 0)" ( (binary_expression "((uint)uVar34 & 1) + uVar7 != 0" (binary_expression "((uint)uVar34 & 1) + uVar7" (parenthesized_expression "((uint)uVar34 & 1)" ( (binary_expression "(uint)uVar34 & 1" (cast_expression "(uint)uVar34" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) + identifier) != number_literal) )) + identifier) )))) )) (goto_statement "goto LAB_00015ddc;" goto statement_identifier ;)) (labeled_statement "LAB_00015e08:\n      do {\n        do {\n          iVar8 = (int)(uVar34 >> 0x20);\n          uVar13 = (uint)uVar34;\n          __umoddi3(iVar8,uVar13,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = __udivdi3(iVar8,uVar13,0,10);\n        } while (iVar8 != 0);\n      } while (9 < uVar13);" statement_identifier : (do_statement "do {\n        do {\n          iVar8 = (int)(uVar34 >> 0x20);\n          uVar13 = (uint)uVar34;\n          __umoddi3(iVar8,uVar13,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = __udivdi3(iVar8,uVar13,0,10);\n        } while (iVar8 != 0);\n      } while (9 < uVar13);" do (compound_statement "{\n        do {\n          iVar8 = (int)(uVar34 >> 0x20);\n          uVar13 = (uint)uVar34;\n          __umoddi3(iVar8,uVar13,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = __udivdi3(iVar8,uVar13,0,10);\n        } while (iVar8 != 0);\n      }" { (do_statement "do {\n          iVar8 = (int)(uVar34 >> 0x20);\n          uVar13 = (uint)uVar34;\n          __umoddi3(iVar8,uVar13,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = __udivdi3(iVar8,uVar13,0,10);\n        } while (iVar8 != 0);" do (compound_statement "{\n          iVar8 = (int)(uVar34 >> 0x20);\n          uVar13 = (uint)uVar34;\n          __umoddi3(iVar8,uVar13,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = __udivdi3(iVar8,uVar13,0,10);\n        }" { (expression_statement "iVar8 = (int)(uVar34 >> 0x20);" (assignment_expression "iVar8 = (int)(uVar34 >> 0x20)" identifier = (cast_expression "(int)(uVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar13 = (uint)uVar34;" (assignment_expression "uVar13 = (uint)uVar34" identifier = (cast_expression "(uint)uVar34" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "__umoddi3(iVar8,uVar13,0,10);" (call_expression "__umoddi3(iVar8,uVar13,0,10)" identifier (argument_list "(iVar8,uVar13,0,10)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "pcVar25 = pcVar25 + -1;" (assignment_expression "pcVar25 = pcVar25 + -1" identifier = (binary_expression "pcVar25 + -1" identifier + number_literal)) ;) (expression_statement "*pcVar25 = extraout_v1_01 + '0';" (assignment_expression "*pcVar25 = extraout_v1_01 + '0'" (pointer_expression "*pcVar25" * identifier) = (binary_expression "extraout_v1_01 + '0'" identifier + (char_literal "'0'" ' character '))) ;) (expression_statement "uVar34 = __udivdi3(iVar8,uVar13,0,10);" (assignment_expression "uVar34 = __udivdi3(iVar8,uVar13,0,10)" identifier = (call_expression "__udivdi3(iVar8,uVar13,0,10)" identifier (argument_list "(iVar8,uVar13,0,10)" ( identifier , identifier , number_literal , number_literal )))) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) }) while (parenthesized_expression "(9 < uVar13)" ( (binary_expression "9 < uVar13" number_literal < identifier) )) ;)) }) (else_clause "else {\nLAB_00015dcc:\n      pcVar25 = pcVar18;\n      if ((uVar5 != 0) || ((int)(uVar13 + uVar7) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar18;\n      if (((in_a3 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)) || (iVar3 == 8))))\n      goto LAB_00015e08;\n      iVar3 = iVar3 + 1;\n      if ((in_a3 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar18[-1] = '0';\n        pcVar18 = pcVar18 + ~uStack_98;\n        (*pcVar24)(pcVar18,iStack_90);\n      }\n      pcVar25 = pcVar18 + -1;\n      pcVar18[-1] = '1';\n    }" else (compound_statement "{\nLAB_00015dcc:\n      pcVar25 = pcVar18;\n      if ((uVar5 != 0) || ((int)(uVar13 + uVar7) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar18;\n      if (((in_a3 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)) || (iVar3 == 8))))\n      goto LAB_00015e08;\n      iVar3 = iVar3 + 1;\n      if ((in_a3 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar18[-1] = '0';\n        pcVar18 = pcVar18 + ~uStack_98;\n        (*pcVar24)(pcVar18,iStack_90);\n      }\n      pcVar25 = pcVar18 + -1;\n      pcVar18[-1] = '1';\n    }" { (labeled_statement "LAB_00015dcc:\n      pcVar25 = pcVar18;" statement_identifier : (expression_statement "pcVar25 = pcVar18;" (assignment_expression "pcVar25 = pcVar18" identifier = identifier) ;)) (if_statement "if ((uVar5 != 0) || ((int)(uVar13 + uVar7) < 1)) goto LAB_00015e08;" if (parenthesized_expression "((uVar5 != 0) || ((int)(uVar13 + uVar7) < 1))" ( (binary_expression "(uVar5 != 0) || ((int)(uVar13 + uVar7) < 1)" (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) || (parenthesized_expression "((int)(uVar13 + uVar7) < 1)" ( (binary_expression "(int)(uVar13 + uVar7) < 1" (cast_expression "(int)(uVar13 + uVar7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar13 + uVar7)" ( (binary_expression "uVar13 + uVar7" identifier + identifier) ))) < number_literal) ))) )) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (labeled_statement "LAB_00015ddc:\n      uVar34 = uVar34 + 1;" statement_identifier : (expression_statement "uVar34 = uVar34 + 1;" (assignment_expression "uVar34 = uVar34 + 1" identifier = (binary_expression "uVar34 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar25 = pcVar18;" (assignment_expression "pcVar25 = pcVar18" identifier = identifier) ;) (if_statement "if (((in_a3 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)) || (iVar3 == 8))))\n      goto LAB_00015e08;" if (parenthesized_expression "(((in_a3 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)) || (iVar3 == 8))))" ( (binary_expression "((in_a3 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)) || (iVar3 == 8)))" (parenthesized_expression "((in_a3 & 0x10) == 0)" ( (binary_expression "(in_a3 & 0x10) == 0" (parenthesized_expression "(in_a3 & 0x10)" ( (binary_expression "in_a3 & 0x10" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)) || (iVar3 == 8)))" ( (parenthesized_expression "(((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)) || (iVar3 == 8))" ( (binary_expression "((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)) || (iVar3 == 8)" (parenthesized_expression "((int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34))" ( (binary_expression "(int)(uVar34 >> 0x20) != 0 || (uVar19 != (uint)uVar34)" (binary_expression "(int)(uVar34 >> 0x20) != 0" (cast_expression "(int)(uVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) ))) != number_literal) || (parenthesized_expression "(uVar19 != (uint)uVar34)" ( (binary_expression "uVar19 != (uint)uVar34" identifier != (cast_expression "(uint)uVar34" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) || (parenthesized_expression "(iVar3 == 8)" ( (binary_expression "iVar3 == 8" identifier == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if ((in_a3 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar18[-1] = '0';\n        pcVar18 = pcVar18 + ~uStack_98;\n        (*pcVar24)(pcVar18,iStack_90);\n      }" if (parenthesized_expression "((in_a3 & 8) == 0)" ( (binary_expression "(in_a3 & 8) == 0" (parenthesized_expression "(in_a3 & 8)" ( (binary_expression "in_a3 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar18[-1] = '0';\n        pcVar18 = pcVar18 + ~uStack_98;\n        (*pcVar24)(pcVar18,iStack_90);\n      }" { (expression_statement "pcVar24 = *(code **)(puVar23 + 0x1bef0);" (assignment_expression "pcVar24 = *(code **)(puVar23 + 0x1bef0)" identifier = (pointer_expression "*(code **)(puVar23 + 0x1bef0)" * (cast_expression "(code **)(puVar23 + 0x1bef0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef0)" ( (binary_expression "puVar23 + 0x1bef0" identifier + number_literal) ))))) ;) (expression_statement "pcVar18[-1] = '0';" (assignment_expression "pcVar18[-1] = '0'" (subscript_expression "pcVar18[-1]" identifier [ number_literal ]) = (char_literal "'0'" ' character ')) ;) (expression_statement "pcVar18 = pcVar18 + ~uStack_98;" (assignment_expression "pcVar18 = pcVar18 + ~uStack_98" identifier = (binary_expression "pcVar18 + ~uStack_98" identifier + (unary_expression "~uStack_98" ~ identifier))) ;) (expression_statement "(*pcVar24)(pcVar18,iStack_90);" (call_expression "(*pcVar24)(pcVar18,iStack_90)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(pcVar18,iStack_90)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar25 = pcVar18 + -1;" (assignment_expression "pcVar25 = pcVar18 + -1" identifier = (binary_expression "pcVar18 + -1" identifier + number_literal)) ;) (expression_statement "pcVar18[-1] = '1';" (assignment_expression "pcVar18[-1] = '1'" (subscript_expression "pcVar18[-1]" identifier [ number_literal ]) = (char_literal "'1'" ' character ')) ;) }))) }) (else_clause "else {\n    lVar30 = __umoddi3(&_gp,uStack_14,local_10,uVar11);\n    if (lVar30 == 0) {\n      lVar30 = __udivdi3(&_gp,uStack_14,local_10,uVar11);\n      uVar34 = lVar30 * CONCAT44(uVar13,flags);\n      lVar30 = __udivdi3((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar13,flags)) {\n        uVar7 = 0;\n        uVar13 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)__floatundidf(&_gp,uStack_14);\n    dVar28 = (double)__floatundidf(local_10,uVar11);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)__floatundidf(uVar13,flags);\n    dVar27 = dVar27 * dVar28;\n    if ((in_a3 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((in_a3 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = __fixunsdfdi(dVar27);\n        iVar3 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar13 = (uint)uVar33;\n        dVar28 = (double)__floatundidf(iVar3,uVar13);\n        if (((in_a3 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar3 = -1;\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }\n    else {\n      iVar3 = 0;\n      dVar28 = (double)uVar19;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar19;\n        iVar3 = iVar3 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar3 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar13 = (uVar12 == 0) + 1 + uStack_98 + 1;\n      if (uVar5 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        if (uVar7 <= uVar13) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar8 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar8 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = __fixunsdfdi(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar5 != 0) goto LAB_000159a0;\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        dVar27 = dVar28;\n        if (uVar13 < uVar7) {\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar15 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar15 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar5 == 1) goto LAB_00015a5c;\n          iVar8 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar15 + -0x728);\n        if (dVar28 < *(double *)(iVar8 + -0x730)) {\n          lVar30 = __fixunsdfdi(dVar28);\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar5 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar15 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar7;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar9,uVar7);\n    pcVar18 = pcVar25 + uVar13;\n  }" else (compound_statement "{\n    lVar30 = __umoddi3(&_gp,uStack_14,local_10,uVar11);\n    if (lVar30 == 0) {\n      lVar30 = __udivdi3(&_gp,uStack_14,local_10,uVar11);\n      uVar34 = lVar30 * CONCAT44(uVar13,flags);\n      lVar30 = __udivdi3((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar13,flags)) {\n        uVar7 = 0;\n        uVar13 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)__floatundidf(&_gp,uStack_14);\n    dVar28 = (double)__floatundidf(local_10,uVar11);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)__floatundidf(uVar13,flags);\n    dVar27 = dVar27 * dVar28;\n    if ((in_a3 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((in_a3 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = __fixunsdfdi(dVar27);\n        iVar3 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar13 = (uint)uVar33;\n        dVar28 = (double)__floatundidf(iVar3,uVar13);\n        if (((in_a3 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar3 = -1;\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }\n    else {\n      iVar3 = 0;\n      dVar28 = (double)uVar19;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar19;\n        iVar3 = iVar3 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar3 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar13 = (uVar12 == 0) + 1 + uStack_98 + 1;\n      if (uVar5 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        if (uVar7 <= uVar13) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar8 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar8 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = __fixunsdfdi(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar5 != 0) goto LAB_000159a0;\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        dVar27 = dVar28;\n        if (uVar13 < uVar7) {\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar15 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar15 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar5 == 1) goto LAB_00015a5c;\n          iVar8 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar15 + -0x728);\n        if (dVar28 < *(double *)(iVar8 + -0x730)) {\n          lVar30 = __fixunsdfdi(dVar28);\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar5 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar15 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar7;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar9,uVar7);\n    pcVar18 = pcVar25 + uVar13;\n  }" { (expression_statement "lVar30 = __umoddi3(&_gp,uStack_14,local_10,uVar11);" (assignment_expression "lVar30 = __umoddi3(&_gp,uStack_14,local_10,uVar11)" identifier = (call_expression "__umoddi3(&_gp,uStack_14,local_10,uVar11)" identifier (argument_list "(&_gp,uStack_14,local_10,uVar11)" ( (pointer_expression "&_gp" & identifier) , identifier , identifier , identifier )))) ;) (if_statement "if (lVar30 == 0) {\n      lVar30 = __udivdi3(&_gp,uStack_14,local_10,uVar11);\n      uVar34 = lVar30 * CONCAT44(uVar13,flags);\n      lVar30 = __udivdi3((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar13,flags)) {\n        uVar7 = 0;\n        uVar13 = 0;\n        goto LAB_00015d94;\n      }\n    }" if (parenthesized_expression "(lVar30 == 0)" ( (binary_expression "lVar30 == 0" identifier == number_literal) )) (compound_statement "{\n      lVar30 = __udivdi3(&_gp,uStack_14,local_10,uVar11);\n      uVar34 = lVar30 * CONCAT44(uVar13,flags);\n      lVar30 = __udivdi3((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar13,flags)) {\n        uVar7 = 0;\n        uVar13 = 0;\n        goto LAB_00015d94;\n      }\n    }" { (expression_statement "lVar30 = __udivdi3(&_gp,uStack_14,local_10,uVar11);" (assignment_expression "lVar30 = __udivdi3(&_gp,uStack_14,local_10,uVar11)" identifier = (call_expression "__udivdi3(&_gp,uStack_14,local_10,uVar11)" identifier (argument_list "(&_gp,uStack_14,local_10,uVar11)" ( (pointer_expression "&_gp" & identifier) , identifier , identifier , identifier )))) ;) (expression_statement "uVar34 = lVar30 * CONCAT44(uVar13,flags);" (assignment_expression "uVar34 = lVar30 * CONCAT44(uVar13,flags)" identifier = (binary_expression "lVar30 * CONCAT44(uVar13,flags)" identifier * (call_expression "CONCAT44(uVar13,flags)" identifier (argument_list "(uVar13,flags)" ( identifier , identifier ))))) ;) (expression_statement "lVar30 = __udivdi3((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));" (assignment_expression "lVar30 = __udivdi3((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20))" identifier = (call_expression "__udivdi3((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20))" identifier (argument_list "((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20))" ( (cast_expression "(int)(uVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) ))) , (cast_expression "(int)uVar34" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)((ulonglong)lVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (if_statement "if (lVar30 == CONCAT44(uVar13,flags)) {\n        uVar7 = 0;\n        uVar13 = 0;\n        goto LAB_00015d94;\n      }" if (parenthesized_expression "(lVar30 == CONCAT44(uVar13,flags))" ( (binary_expression "lVar30 == CONCAT44(uVar13,flags)" identifier == (call_expression "CONCAT44(uVar13,flags)" identifier (argument_list "(uVar13,flags)" ( identifier , identifier )))) )) (compound_statement "{\n        uVar7 = 0;\n        uVar13 = 0;\n        goto LAB_00015d94;\n      }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00015d94;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00015680:\n    dVar27 = (double)__floatundidf(&_gp,uStack_14);" statement_identifier : (expression_statement "dVar27 = (double)__floatundidf(&_gp,uStack_14);" (assignment_expression "dVar27 = (double)__floatundidf(&_gp,uStack_14)" identifier = (cast_expression "(double)__floatundidf(&_gp,uStack_14)" ( (type_descriptor "double" primitive_type) ) (call_expression "__floatundidf(&_gp,uStack_14)" identifier (argument_list "(&_gp,uStack_14)" ( (pointer_expression "&_gp" & identifier) , identifier ))))) ;)) (expression_statement "dVar28 = (double)__floatundidf(local_10,uVar11);" (assignment_expression "dVar28 = (double)__floatundidf(local_10,uVar11)" identifier = (cast_expression "(double)__floatundidf(local_10,uVar11)" ( (type_descriptor "double" primitive_type) ) (call_expression "__floatundidf(local_10,uVar11)" identifier (argument_list "(local_10,uVar11)" ( identifier , identifier ))))) ;) (expression_statement "dVar27 = dVar27 / dVar28;" (assignment_expression "dVar27 = dVar27 / dVar28" identifier = (binary_expression "dVar27 / dVar28" identifier / identifier)) ;) (expression_statement "dVar28 = (double)__floatundidf(uVar13,flags);" (assignment_expression "dVar28 = (double)__floatundidf(uVar13,flags)" identifier = (cast_expression "(double)__floatundidf(uVar13,flags)" ( (type_descriptor "double" primitive_type) ) (call_expression "__floatundidf(uVar13,flags)" identifier (argument_list "(uVar13,flags)" ( identifier , identifier ))))) ;) (expression_statement "dVar27 = dVar27 * dVar28;" (assignment_expression "dVar27 = dVar27 * dVar28" identifier = (binary_expression "dVar27 * dVar28" identifier * identifier)) ;) (if_statement "if ((in_a3 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((in_a3 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = __fixunsdfdi(dVar27);\n        iVar3 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar13 = (uint)uVar33;\n        dVar28 = (double)__floatundidf(iVar3,uVar13);\n        if (((in_a3 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar3 = -1;\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }\n    else {\n      iVar3 = 0;\n      dVar28 = (double)uVar19;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar19;\n        iVar3 = iVar3 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar3 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar13 = (uVar12 == 0) + 1 + uStack_98 + 1;\n      if (uVar5 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        if (uVar7 <= uVar13) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar8 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar8 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = __fixunsdfdi(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar5 != 0) goto LAB_000159a0;\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        dVar27 = dVar28;\n        if (uVar13 < uVar7) {\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar15 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar15 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar5 == 1) goto LAB_00015a5c;\n          iVar8 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar15 + -0x728);\n        if (dVar28 < *(double *)(iVar8 + -0x730)) {\n          lVar30 = __fixunsdfdi(dVar28);\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar5 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar15 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }" if (parenthesized_expression "((in_a3 & 0x10) == 0)" ( (binary_expression "(in_a3 & 0x10) == 0" (parenthesized_expression "(in_a3 & 0x10)" ( (binary_expression "in_a3 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      dVar28 = dVar27;\n      if (((in_a3 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = __fixunsdfdi(dVar27);\n        iVar3 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar13 = (uint)uVar33;\n        dVar28 = (double)__floatundidf(iVar3,uVar13);\n        if (((in_a3 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar3 = -1;\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }" { (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" identifier = identifier) ;) (if_statement "if (((in_a3 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = __fixunsdfdi(dVar27);\n        iVar3 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar13 = (uint)uVar33;\n        dVar28 = (double)__floatundidf(iVar3,uVar13);\n        if (((in_a3 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3);\n        }\n      }" if (parenthesized_expression "(((in_a3 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)))" ( (binary_expression "((in_a3 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))" (parenthesized_expression "((in_a3 & 3) != 1)" ( (binary_expression "(in_a3 & 3) != 1" (parenthesized_expression "(in_a3 & 3)" ( (binary_expression "in_a3 & 3" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))" ( (binary_expression "dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)" identifier < (pointer_expression "*(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)" * (cast_expression "(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0x1bc48) + -0x730)" ( (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x730" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal) ))))) ))) )) (compound_statement "{\n        uVar33 = __fixunsdfdi(dVar27);\n        iVar3 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar13 = (uint)uVar33;\n        dVar28 = (double)__floatundidf(iVar3,uVar13);\n        if (((in_a3 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3);\n        }\n      }" { (expression_statement "uVar33 = __fixunsdfdi(dVar27);" (assignment_expression "uVar33 = __fixunsdfdi(dVar27)" identifier = (call_expression "__fixunsdfdi(dVar27)" identifier (argument_list "(dVar27)" ( identifier )))) ;) (expression_statement "iVar3 = (int)((ulonglong)uVar33 >> 0x20);" (assignment_expression "iVar3 = (int)((ulonglong)uVar33 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar33 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar33 >> 0x20)" ( (binary_expression "(ulonglong)uVar33 >> 0x20" (cast_expression "(ulonglong)uVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar13 = (uint)uVar33;" (assignment_expression "uVar13 = (uint)uVar33" identifier = (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "dVar28 = (double)__floatundidf(iVar3,uVar13);" (assignment_expression "dVar28 = (double)__floatundidf(iVar3,uVar13)" identifier = (cast_expression "(double)__floatundidf(iVar3,uVar13)" ( (type_descriptor "double" primitive_type) ) (call_expression "__floatundidf(iVar3,uVar13)" identifier (argument_list "(iVar3,uVar13)" ( identifier , identifier ))))) ;) (if_statement "if (((in_a3 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3);\n        }" if (parenthesized_expression "(((in_a3 & 3) == 0) && (dVar27 != dVar28))" ( (binary_expression "((in_a3 & 3) == 0) && (dVar27 != dVar28)" (parenthesized_expression "((in_a3 & 3) == 0)" ( (binary_expression "(in_a3 & 3) == 0" (parenthesized_expression "(in_a3 & 3)" ( (binary_expression "in_a3 & 3" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(dVar27 != dVar28)" ( (binary_expression "dVar27 != dVar28" identifier != identifier) ))) )) (compound_statement "{\n          dVar28 = (double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3);\n        }" { (expression_statement "dVar28 = (double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3);" (assignment_expression "dVar28 = (double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3)" identifier = (cast_expression "(double)__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3)" ( (type_descriptor "double" primitive_type) ) (call_expression "__floatundidf((uint)(uVar13 + 1 < uVar13) + iVar3)" identifier (argument_list "((uint)(uVar13 + 1 < uVar13) + iVar3)" ( (binary_expression "(uint)(uVar13 + 1 < uVar13) + iVar3" (call_expression "(uint)(uVar13 + 1 < uVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 + 1 < uVar13)" ( (binary_expression "uVar13 + 1 < uVar13" (binary_expression "uVar13 + 1" identifier + number_literal) < identifier) ))) + identifier) ))))) ;) })) })) (expression_statement "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" ( (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" * (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" * (cast_expression "(code **)(puVar23 + 0x1bdb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bdb4)" ( (binary_expression "puVar23 + 0x1bdb4" identifier + number_literal) ))))) )) (argument_list "(iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7bc" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) (expression_statement "uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);" (assignment_expression "uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar9)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "uVar13 = uVar7;" (assignment_expression "uVar13 = uVar7" identifier = identifier) ;) }) (else_clause "else {\n      iVar3 = 0;\n      dVar28 = (double)uVar19;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar19;\n        iVar3 = iVar3 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar3 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar13 = (uVar12 == 0) + 1 + uStack_98 + 1;\n      if (uVar5 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        if (uVar7 <= uVar13) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar8 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar8 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = __fixunsdfdi(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar5 != 0) goto LAB_000159a0;\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        dVar27 = dVar28;\n        if (uVar13 < uVar7) {\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar15 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar15 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar5 == 1) goto LAB_00015a5c;\n          iVar8 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar15 + -0x728);\n        if (dVar28 < *(double *)(iVar8 + -0x730)) {\n          lVar30 = __fixunsdfdi(dVar28);\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar5 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar15 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }" else (compound_statement "{\n      iVar3 = 0;\n      dVar28 = (double)uVar19;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar19;\n        iVar3 = iVar3 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar3 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar13 = (uVar12 == 0) + 1 + uStack_98 + 1;\n      if (uVar5 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        if (uVar7 <= uVar13) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar8 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar8 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = __fixunsdfdi(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar5 != 0) goto LAB_000159a0;\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        dVar27 = dVar28;\n        if (uVar13 < uVar7) {\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar15 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar15 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar5 == 1) goto LAB_00015a5c;\n          iVar8 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar15 + -0x728);\n        if (dVar28 < *(double *)(iVar8 + -0x730)) {\n          lVar30 = __fixunsdfdi(dVar28);\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar5 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar15 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n      uVar13 = uVar7;\n    }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "dVar28 = (double)uVar19;" (assignment_expression "dVar28 = (double)uVar19" identifier = (cast_expression "(double)uVar19" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (do_statement "do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar19;\n        iVar3 = iVar3 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar3 != 8);" do (compound_statement "{\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar19;\n        iVar3 = iVar3 + 1;\n        if (dVar27 < dVar28) break;\n      }" { (expression_statement "dVar29 = dVar28;" (assignment_expression "dVar29 = dVar28" identifier = identifier) ;) (expression_statement "dVar28 = dVar29 * (double)uVar19;" (assignment_expression "dVar28 = dVar29 * (double)uVar19" identifier = (binary_expression "dVar29 * (double)uVar19" identifier * (cast_expression "(double)uVar19" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (dVar27 < dVar28) break;" if (parenthesized_expression "(dVar27 < dVar28)" ( (binary_expression "dVar27 < dVar28" identifier < identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar3 != 8)" ( (binary_expression "iVar3 != 8" identifier != number_literal) )) ;) (expression_statement "dVar27 = dVar27 / dVar29;" (assignment_expression "dVar27 = dVar27 / dVar29" identifier = (binary_expression "dVar27 / dVar29" identifier / identifier)) ;) (expression_statement "uVar13 = (uVar12 == 0) + 1 + uStack_98 + 1;" (assignment_expression "uVar13 = (uVar12 == 0) + 1 + uStack_98 + 1" identifier = (binary_expression "(uVar12 == 0) + 1 + uStack_98 + 1" (binary_expression "(uVar12 == 0) + 1 + uStack_98" (binary_expression "(uVar12 == 0) + 1" (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) + number_literal) + identifier) + number_literal)) ;) (if_statement "if (uVar5 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        if (uVar7 <= uVar13) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar8 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar8 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = __fixunsdfdi(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar5 != 0) goto LAB_000159a0;\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        dVar27 = dVar28;\n        if (uVar13 < uVar7) {\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar15 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar15 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar5 == 1) goto LAB_00015a5c;\n          iVar8 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar15 + -0x728);\n        if (dVar28 < *(double *)(iVar8 + -0x730)) {\n          lVar30 = __fixunsdfdi(dVar28);\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar5 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar15 + -0x728);\n        }\n      }" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (compound_statement "{\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        if (uVar7 <= uVar13) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }" { (expression_statement "(**(code **)(puVar23 + 0x1bdb4))\n                  (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))\n                  (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" ( (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" * (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" * (cast_expression "(code **)(puVar23 + 0x1bdb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bdb4)" ( (binary_expression "puVar23 + 0x1bdb4" identifier + number_literal) ))))) )) (argument_list "(iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7b4" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);" (assignment_expression "uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar9)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (if_statement "if (uVar7 <= uVar13) goto LAB_00015d0c;" if (parenthesized_expression "(uVar7 <= uVar13)" ( (binary_expression "uVar7 <= uVar13" identifier <= identifier) )) (goto_statement "goto LAB_00015d0c;" goto statement_identifier ;)) (expression_statement "dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);" (assignment_expression "dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728)" identifier = (pointer_expression "*(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728)" * (cast_expression "(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0x1bc48) + -0x728)" ( (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x728" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dVar28 = dVar27 * dVar29;" (assignment_expression "dVar28 = dVar27 * dVar29" identifier = (binary_expression "dVar27 * dVar29" identifier * identifier)) ;) }) (else_clause "else {\n        iVar8 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar8 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = __fixunsdfdi(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar5 != 0) goto LAB_000159a0;\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        dVar27 = dVar28;\n        if (uVar13 < uVar7) {\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar15 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar15 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar5 == 1) goto LAB_00015a5c;\n          iVar8 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar15 + -0x728);\n        if (dVar28 < *(double *)(iVar8 + -0x730)) {\n          lVar30 = __fixunsdfdi(dVar28);\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar5 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar15 + -0x728);\n        }\n      }" else (compound_statement "{\n        iVar8 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar8 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = __fixunsdfdi(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar5 != 0) goto LAB_000159a0;\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27);\n        uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);\n        dVar27 = dVar28;\n        if (uVar13 < uVar7) {\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar15 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar15 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar5 == 1) goto LAB_00015a5c;\n          iVar8 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar15 + -0x728);\n        if (dVar28 < *(double *)(iVar8 + -0x730)) {\n          lVar30 = __fixunsdfdi(dVar28);\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar5 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar15 + -0x728);\n        }\n      }" { (expression_statement "iVar8 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar8 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" identifier = identifier) ;) (if_statement "if (*(double *)(iVar8 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = __fixunsdfdi(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar5 != 0) goto LAB_000159a0;\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }" if (parenthesized_expression "(*(double *)(iVar8 + -0x730) <= dVar27)" ( (binary_expression "*(double *)(iVar8 + -0x730) <= dVar27" (pointer_expression "*(double *)(iVar8 + -0x730)" * (cast_expression "(double *)(iVar8 + -0x730)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x730)" ( (binary_expression "iVar8 + -0x730" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\nLAB_000159a0:\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n        }" { (labeled_statement "LAB_000159a0:\n          iVar15 = *(int *)(puVar23 + 0x1bc48);" statement_identifier : (expression_statement "iVar15 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar15 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n          lVar30 = __fixunsdfdi(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar5 != 0) goto LAB_000159a0;\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }" else (compound_statement "{\n          lVar30 = __fixunsdfdi(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar5 != 0) goto LAB_000159a0;\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }" { (expression_statement "lVar30 = __fixunsdfdi(dVar27);" (assignment_expression "lVar30 = __fixunsdfdi(dVar27)" identifier = (call_expression "__fixunsdfdi(dVar27)" identifier (argument_list "(dVar27)" ( identifier )))) ;) (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" identifier = identifier) ;) (expression_statement "dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);" (assignment_expression "dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" identifier = (cast_expression "(double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" ( (type_descriptor "double" primitive_type) ) (call_expression "__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" identifier (argument_list "((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" ( (cast_expression "(int)((ulonglong)lVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)lVar30" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (if_statement "if (uVar5 != 0) goto LAB_000159a0;" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000159a0;" goto statement_identifier ;)) (expression_statement "iVar15 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar15 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;) (if_statement "if (dVar28 != dVar27) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }" if (parenthesized_expression "(dVar28 != dVar27)" ( (binary_expression "dVar28 != dVar27" identifier != identifier) )) (compound_statement "{\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }" { (expression_statement "dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));" (assignment_expression "dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20))" identifier = (cast_expression "(double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20))" ( (type_descriptor "double" primitive_type) ) (call_expression "__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20))" identifier (argument_list "((int)((ulonglong)(lVar30 + 1) >> 0x20))" ( (cast_expression "(int)((ulonglong)(lVar30 + 1) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(lVar30 + 1) >> 0x20)" ( (binary_expression "(ulonglong)(lVar30 + 1) >> 0x20" (call_expression "(ulonglong)(lVar30 + 1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar30 + 1)" ( (binary_expression "lVar30 + 1" identifier + number_literal) ))) >> number_literal) ))) ))))) ;) (goto_statement "goto LAB_000159a0;" goto statement_identifier ;) })) }))) (expression_statement "(**(code **)(puVar23 + 0x1bdb4))(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" ( (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" * (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" * (cast_expression "(code **)(puVar23 + 0x1bdb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bdb4)" ( (binary_expression "puVar23 + 0x1bdb4" identifier + number_literal) ))))) )) (argument_list "(iVar9,1,0xffffffff,iVar15 + -0x7b4,dVar27)" ( identifier , number_literal , number_literal , (binary_expression "iVar15 + -0x7b4" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);" (assignment_expression "uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar9)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "dVar27 = dVar28;" (assignment_expression "dVar27 = dVar28" identifier = identifier) ;) (if_statement "if (uVar13 < uVar7) {\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar15 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar15 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar5 == 1) goto LAB_00015a5c;\n          iVar8 = *(int *)(puVar23 + 0x1bc48);\n        }" if (parenthesized_expression "(uVar13 < uVar7)" ( (binary_expression "uVar13 < uVar7" identifier < identifier) )) (compound_statement "{\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar15 + -0x728);\n        }" { (expression_statement "iVar15 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar15 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = dVar28 * *(double *)(iVar15 + -0x728);" (assignment_expression "dVar28 = dVar28 * *(double *)(iVar15 + -0x728)" identifier = (binary_expression "dVar28 * *(double *)(iVar15 + -0x728)" identifier * (pointer_expression "*(double *)(iVar15 + -0x728)" * (cast_expression "(double *)(iVar15 + -0x728)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x728)" ( (binary_expression "iVar15 + -0x728" identifier + number_literal) )))))) ;) }) (else_clause "else {\nLAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar15 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar5 == 1) goto LAB_00015a5c;\n          iVar8 = *(int *)(puVar23 + 0x1bc48);\n        }" else (compound_statement "{\nLAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar15 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar15 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar5 == 1) goto LAB_00015a5c;\n          iVar8 = *(int *)(puVar23 + 0x1bc48);\n        }" { (labeled_statement "LAB_00015d0c:\n          if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }" statement_identifier : (if_statement "if (((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')) {\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }" if (parenthesized_expression "(((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0'))" ( (binary_expression "((in_a3 & 8) == 0) || (*(char *)(iVar9 + uVar7 + -1) != '0')" (parenthesized_expression "((in_a3 & 8) == 0)" ( (binary_expression "(in_a3 & 8) == 0" (parenthesized_expression "(in_a3 & 8)" ( (binary_expression "in_a3 & 8" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(char *)(iVar9 + uVar7 + -1) != '0')" ( (binary_expression "*(char *)(iVar9 + uVar7 + -1) != '0'" (pointer_expression "*(char *)(iVar9 + uVar7 + -1)" * (cast_expression "(char *)(iVar9 + uVar7 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + uVar7 + -1)" ( (binary_expression "iVar9 + uVar7 + -1" (binary_expression "iVar9 + uVar7" identifier + identifier) + number_literal) )))) != (char_literal "'0'" ' character ')) ))) )) (compound_statement "{\n            uVar13 = uVar7 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }" { (expression_statement "uVar13 = uVar7 - (uStack_98 + 1);" (assignment_expression "uVar13 = uVar7 - (uStack_98 + 1)" identifier = (binary_expression "uVar7 - (uStack_98 + 1)" identifier - (parenthesized_expression "(uStack_98 + 1)" ( (binary_expression "uStack_98 + 1" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0001572c;" goto statement_identifier ;) }))) (expression_statement "iVar15 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar15 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;) (expression_statement "dVar29 = *(double *)(iVar15 + -0x728);" (assignment_expression "dVar29 = *(double *)(iVar15 + -0x728)" identifier = (pointer_expression "*(double *)(iVar15 + -0x728)" * (cast_expression "(double *)(iVar15 + -0x728)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x728)" ( (binary_expression "iVar15 + -0x728" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = dVar27 * dVar29;" (assignment_expression "dVar28 = dVar27 * dVar29" identifier = (binary_expression "dVar27 * dVar29" identifier * identifier)) ;) (if_statement "if (uVar5 == 1) goto LAB_00015a5c;" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00015a5c;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar8 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;) }))) (expression_statement "dVar29 = *(double *)(iVar15 + -0x728);" (assignment_expression "dVar29 = *(double *)(iVar15 + -0x728)" identifier = (pointer_expression "*(double *)(iVar15 + -0x728)" * (cast_expression "(double *)(iVar15 + -0x728)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x728)" ( (binary_expression "iVar15 + -0x728" identifier + number_literal) ))))) ;) (if_statement "if (dVar28 < *(double *)(iVar8 + -0x730)) {\n          lVar30 = __fixunsdfdi(dVar28);\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar5 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar15 + -0x728);\n        }" if (parenthesized_expression "(dVar28 < *(double *)(iVar8 + -0x730))" ( (binary_expression "dVar28 < *(double *)(iVar8 + -0x730)" identifier < (pointer_expression "*(double *)(iVar8 + -0x730)" * (cast_expression "(double *)(iVar8 + -0x730)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x730)" ( (binary_expression "iVar8 + -0x730" identifier + number_literal) ))))) )) (compound_statement "{\n          lVar30 = __fixunsdfdi(dVar28);\n          dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar5 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar15 + -0x728);\n        }" { (expression_statement "lVar30 = __fixunsdfdi(dVar28);" (assignment_expression "lVar30 = __fixunsdfdi(dVar28)" identifier = (call_expression "__fixunsdfdi(dVar28)" identifier (argument_list "(dVar28)" ( identifier )))) ;) (expression_statement "dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);" (assignment_expression "dVar27 = (double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" identifier = (cast_expression "(double)__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" ( (type_descriptor "double" primitive_type) ) (call_expression "__floatundidf((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" identifier (argument_list "((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" ( (cast_expression "(int)((ulonglong)lVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)lVar30" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (if_statement "if ((uVar5 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }" if (parenthesized_expression "((uVar5 == 0) && (dVar27 != dVar28))" ( (binary_expression "(uVar5 == 0) && (dVar27 != dVar28)" (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(dVar27 != dVar28)" ( (binary_expression "dVar27 != dVar28" identifier != identifier) ))) )) (compound_statement "{\n            dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }" { (expression_statement "dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20));" (assignment_expression "dVar27 = (double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20))" identifier = (cast_expression "(double)__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20))" ( (type_descriptor "double" primitive_type) ) (call_expression "__floatundidf((int)((ulonglong)(lVar30 + 1) >> 0x20))" identifier (argument_list "((int)((ulonglong)(lVar30 + 1) >> 0x20))" ( (cast_expression "(int)((ulonglong)(lVar30 + 1) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(lVar30 + 1) >> 0x20)" ( (binary_expression "(ulonglong)(lVar30 + 1) >> 0x20" (call_expression "(ulonglong)(lVar30 + 1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar30 + 1)" ( (binary_expression "lVar30 + 1" identifier + number_literal) ))) >> number_literal) ))) ))))) ;) })) (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" identifier = identifier) ;) (expression_statement "dVar29 = *(double *)(iVar15 + -0x728);" (assignment_expression "dVar29 = *(double *)(iVar15 + -0x728)" identifier = (pointer_expression "*(double *)(iVar15 + -0x728)" * (cast_expression "(double *)(iVar15 + -0x728)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x728)" ( (binary_expression "iVar15 + -0x728" identifier + number_literal) ))))) ;) })) }))) (labeled_statement "LAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);" statement_identifier : (expression_statement "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" ( (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" * (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" * (cast_expression "(code **)(puVar23 + 0x1bdb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bdb4)" ( (binary_expression "puVar23 + 0x1bdb4" identifier + number_literal) ))))) )) (argument_list "(iVar9,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7bc" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal) , (binary_expression "dVar28 / dVar29" identifier / identifier) ))) ;)) (expression_statement "uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9);" (assignment_expression "uVar7 = (**(code **)(puVar23 + 0x1be70))(iVar9)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar9)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "uVar13 = uVar7;" (assignment_expression "uVar13 = uVar7" identifier = identifier) ;) }))) (labeled_statement "LAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar7;" statement_identifier : (expression_statement "pcVar25 = pcStack_b0 + -uVar7;" (assignment_expression "pcVar25 = pcStack_b0 + -uVar7" identifier = (binary_expression "pcStack_b0 + -uVar7" identifier + (unary_expression "-uVar7" - identifier))) ;)) (expression_statement "(**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar9,uVar7);" (call_expression "(**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar9,uVar7)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef8))" ( (pointer_expression "**(code **)(puVar23 + 0x1bef8)" * (pointer_expression "*(code **)(puVar23 + 0x1bef8)" * (cast_expression "(code **)(puVar23 + 0x1bef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef8)" ( (binary_expression "puVar23 + 0x1bef8" identifier + number_literal) ))))) )) (argument_list "(pcVar25,iVar9,uVar7)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar18 = pcVar25 + uVar13;" (assignment_expression "pcVar18 = pcVar25 + uVar13" identifier = (binary_expression "pcVar25 + uVar13" identifier + identifier)) ;) }))) (if_statement "if ((in_a3 & 4) != 0) {\n    uVar5 = (int)pcVar18 - (int)pcVar25;\n    iVar8 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar5,0x29);\n    uVar13 = 0xffffffff;\n    while( true ) {\n      uVar7 = (uint)*pbVar20;\n      if (uVar7 != 0) {\n        uVar13 = uVar7;\n        if (0x7e < uVar7) {\n          uVar13 = uVar5;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar5 < uVar13) break;\n      uVar5 = uVar5 - uVar13;\n      pcVar25 = pcVar18 + -uVar13;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar5,uVar13);\n      if (uVar5 == 0) goto LAB_0001575c;\n      pcVar18 = pcVar25 + -iVar8;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar18,iStack_a4,iVar8);\n    }\n    pcVar25 = pcVar18 + -uVar5;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar5);\n  }" if (parenthesized_expression "((in_a3 & 4) != 0)" ( (binary_expression "(in_a3 & 4) != 0" (parenthesized_expression "(in_a3 & 4)" ( (binary_expression "in_a3 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar5 = (int)pcVar18 - (int)pcVar25;\n    iVar8 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar5,0x29);\n    uVar13 = 0xffffffff;\n    while( true ) {\n      uVar7 = (uint)*pbVar20;\n      if (uVar7 != 0) {\n        uVar13 = uVar7;\n        if (0x7e < uVar7) {\n          uVar13 = uVar5;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar5 < uVar13) break;\n      uVar5 = uVar5 - uVar13;\n      pcVar25 = pcVar18 + -uVar13;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar5,uVar13);\n      if (uVar5 == 0) goto LAB_0001575c;\n      pcVar18 = pcVar25 + -iVar8;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar18,iStack_a4,iVar8);\n    }\n    pcVar25 = pcVar18 + -uVar5;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar5);\n  }" { (expression_statement "uVar5 = (int)pcVar18 - (int)pcVar25;" (assignment_expression "uVar5 = (int)pcVar18 - (int)pcVar25" identifier = (binary_expression "(int)pcVar18 - (int)pcVar25" (cast_expression "(int)pcVar18" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar8 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);" (assignment_expression "iVar8 = (**(code **)(puVar23 + 0x1be70))(iStack_a4)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iStack_a4)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iStack_a4)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar5,0x29);" (call_expression "(**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar5,0x29)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be80))" ( (pointer_expression "**(code **)(puVar23 + 0x1be80)" * (pointer_expression "*(code **)(puVar23 + 0x1be80)" * (cast_expression "(code **)(puVar23 + 0x1be80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be80)" ( (binary_expression "puVar23 + 0x1be80" identifier + number_literal) ))))) )) (argument_list "(auStack_88,pcVar25,uVar5,0x29)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "uVar13 = 0xffffffff;" (assignment_expression "uVar13 = 0xffffffff" identifier = number_literal) ;) (while_statement "while( true ) {\n      uVar7 = (uint)*pbVar20;\n      if (uVar7 != 0) {\n        uVar13 = uVar7;\n        if (0x7e < uVar7) {\n          uVar13 = uVar5;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar5 < uVar13) break;\n      uVar5 = uVar5 - uVar13;\n      pcVar25 = pcVar18 + -uVar13;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar5,uVar13);\n      if (uVar5 == 0) goto LAB_0001575c;\n      pcVar18 = pcVar25 + -iVar8;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar18,iStack_a4,iVar8);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar7 = (uint)*pbVar20;\n      if (uVar7 != 0) {\n        uVar13 = uVar7;\n        if (0x7e < uVar7) {\n          uVar13 = uVar5;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar5 < uVar13) break;\n      uVar5 = uVar5 - uVar13;\n      pcVar25 = pcVar18 + -uVar13;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar5,uVar13);\n      if (uVar5 == 0) goto LAB_0001575c;\n      pcVar18 = pcVar25 + -iVar8;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar18,iStack_a4,iVar8);\n    }" { (expression_statement "uVar7 = (uint)*pbVar20;" (assignment_expression "uVar7 = (uint)*pbVar20" identifier = (binary_expression "(uint)*pbVar20" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar7 != 0) {\n        uVar13 = uVar7;\n        if (0x7e < uVar7) {\n          uVar13 = uVar5;\n        }\n        pbVar20 = pbVar20 + 1;\n      }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar13 = uVar7;\n        if (0x7e < uVar7) {\n          uVar13 = uVar5;\n        }\n        pbVar20 = pbVar20 + 1;\n      }" { (expression_statement "uVar13 = uVar7;" (assignment_expression "uVar13 = uVar7" identifier = identifier) ;) (if_statement "if (0x7e < uVar7) {\n          uVar13 = uVar5;\n        }" if (parenthesized_expression "(0x7e < uVar7)" ( (binary_expression "0x7e < uVar7" number_literal < identifier) )) (compound_statement "{\n          uVar13 = uVar5;\n        }" { (expression_statement "uVar13 = uVar5;" (assignment_expression "uVar13 = uVar5" identifier = identifier) ;) })) (expression_statement "pbVar20 = pbVar20 + 1;" (assignment_expression "pbVar20 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;) })) (if_statement "if (uVar5 < uVar13) break;" if (parenthesized_expression "(uVar5 < uVar13)" ( (binary_expression "uVar5 < uVar13" identifier < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = uVar5 - uVar13;" (assignment_expression "uVar5 = uVar5 - uVar13" identifier = (binary_expression "uVar5 - uVar13" identifier - identifier)) ;) (expression_statement "pcVar25 = pcVar18 + -uVar13;" (assignment_expression "pcVar25 = pcVar18 + -uVar13" identifier = (binary_expression "pcVar18 + -uVar13" identifier + (unary_expression "-uVar13" - identifier))) ;) (expression_statement "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar5,uVar13);" (call_expression "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar5,uVar13)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef0))" ( (pointer_expression "**(code **)(puVar23 + 0x1bef0)" * (pointer_expression "*(code **)(puVar23 + 0x1bef0)" * (cast_expression "(code **)(puVar23 + 0x1bef0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef0)" ( (binary_expression "puVar23 + 0x1bef0" identifier + number_literal) ))))) )) (argument_list "(pcVar25,auStack_88 + uVar5,uVar13)" ( identifier , (binary_expression "auStack_88 + uVar5" identifier + identifier) , identifier ))) ;) (if_statement "if (uVar5 == 0) goto LAB_0001575c;" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001575c;" goto statement_identifier ;)) (expression_statement "pcVar18 = pcVar25 + -iVar8;" (assignment_expression "pcVar18 = pcVar25 + -iVar8" identifier = (binary_expression "pcVar25 + -iVar8" identifier + (unary_expression "-iVar8" - identifier))) ;) (expression_statement "(**(code **)(puVar23 + 0x1bef0))(pcVar18,iStack_a4,iVar8);" (call_expression "(**(code **)(puVar23 + 0x1bef0))(pcVar18,iStack_a4,iVar8)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef0))" ( (pointer_expression "**(code **)(puVar23 + 0x1bef0)" * (pointer_expression "*(code **)(puVar23 + 0x1bef0)" * (cast_expression "(code **)(puVar23 + 0x1bef0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef0)" ( (binary_expression "puVar23 + 0x1bef0" identifier + number_literal) ))))) )) (argument_list "(pcVar18,iStack_a4,iVar8)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pcVar25 = pcVar18 + -uVar5;" (assignment_expression "pcVar25 = pcVar18 + -uVar5" identifier = (binary_expression "pcVar18 + -uVar5" identifier + (unary_expression "-uVar5" - identifier))) ;) (expression_statement "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar5);" (call_expression "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar5)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef0))" ( (pointer_expression "**(code **)(puVar23 + 0x1bef0)" * (pointer_expression "*(code **)(puVar23 + 0x1bef0)" * (cast_expression "(code **)(puVar23 + 0x1bef0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef0)" ( (binary_expression "puVar23 + 0x1bef0" identifier + number_literal) ))))) )) (argument_list "(pcVar25,auStack_88,uVar5)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_0001575c:\n  if ((in_a3 & 0x80) == 0) goto LAB_00015784;" statement_identifier : (if_statement "if ((in_a3 & 0x80) == 0) goto LAB_00015784;" if (parenthesized_expression "((in_a3 & 0x80) == 0)" ( (binary_expression "(in_a3 & 0x80) == 0" (parenthesized_expression "(in_a3 & 0x80)" ( (binary_expression "in_a3 & 0x80" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00015784;" goto statement_identifier ;))) (if_statement "if ((iVar3 == -1) && ((local_10 != (int *)0x0 || (iVar3 = 0, 1 < uVar11)))) {\n    iVar3 = 1;\n    uVar13 = 1;\n    piVar6 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar13;\n      uVar13 = (uint)(uVar34 * uVar19);\n      piVar6 = (int *)(uVar19 * (int)piVar6 + (int)(uVar34 * uVar19 >> 0x20));\n      if ((local_10 <= piVar6) && ((local_10 != piVar6 || (uVar11 <= uVar13)))) break;\n      iVar3 = iVar3 + 1;\n    } while (iVar3 != 8);\n    if ((in_a3 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar9 + 0x288);\n      *(undefined1 *)(iVar9 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar9 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar12 == 0) && (iVar9 = *(int *)(puVar23 + 0x1bc48), iVar3 == 1)) {\n      cVar10 = 'k';\n    }\n    else {\n      cVar10 = *(char *)(iVar3 + iVar9 + -0x748);\n    }\n    pcVar18 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar10;\n  }\n  else {\n    if ((in_a3 & 0x100) == 0 && iVar3 == 0) goto LAB_00015784;\n    if ((in_a3 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar18 = pcStack_b0;\n    if (iVar3 != 0) goto LAB_00015bf0;\n  }" if (parenthesized_expression "((iVar3 == -1) && ((local_10 != (int *)0x0 || (iVar3 = 0, 1 < uVar11))))" ( (binary_expression "(iVar3 == -1) && ((local_10 != (int *)0x0 || (iVar3 = 0, 1 < uVar11)))" (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) && (parenthesized_expression "((local_10 != (int *)0x0 || (iVar3 = 0, 1 < uVar11)))" ( (parenthesized_expression "(local_10 != (int *)0x0 || (iVar3 = 0, 1 < uVar11))" ( (binary_expression "local_10 != (int *)0x0 || (iVar3 = 0, 1 < uVar11)" (binary_expression "local_10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar3 = 0, 1 < uVar11)" ( (comma_expression "iVar3 = 0, 1 < uVar11" (assignment_expression "iVar3 = 0" identifier = number_literal) , (binary_expression "1 < uVar11" number_literal < identifier)) ))) )) ))) )) (compound_statement "{\n    iVar3 = 1;\n    uVar13 = 1;\n    piVar6 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar13;\n      uVar13 = (uint)(uVar34 * uVar19);\n      piVar6 = (int *)(uVar19 * (int)piVar6 + (int)(uVar34 * uVar19 >> 0x20));\n      if ((local_10 <= piVar6) && ((local_10 != piVar6 || (uVar11 <= uVar13)))) break;\n      iVar3 = iVar3 + 1;\n    } while (iVar3 != 8);\n    if ((in_a3 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar9 + 0x288);\n      *(undefined1 *)(iVar9 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar9 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar12 == 0) && (iVar9 = *(int *)(puVar23 + 0x1bc48), iVar3 == 1)) {\n      cVar10 = 'k';\n    }\n    else {\n      cVar10 = *(char *)(iVar3 + iVar9 + -0x748);\n    }\n    pcVar18 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar10;\n  }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "uVar13 = 1;" (assignment_expression "uVar13 = 1" identifier = number_literal) ;) (expression_statement "piVar6 = (int *)0x0;" (assignment_expression "piVar6 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      uVar34 = (ulonglong)uVar13;\n      uVar13 = (uint)(uVar34 * uVar19);\n      piVar6 = (int *)(uVar19 * (int)piVar6 + (int)(uVar34 * uVar19 >> 0x20));\n      if ((local_10 <= piVar6) && ((local_10 != piVar6 || (uVar11 <= uVar13)))) break;\n      iVar3 = iVar3 + 1;\n    } while (iVar3 != 8);" do (compound_statement "{\n      uVar34 = (ulonglong)uVar13;\n      uVar13 = (uint)(uVar34 * uVar19);\n      piVar6 = (int *)(uVar19 * (int)piVar6 + (int)(uVar34 * uVar19 >> 0x20));\n      if ((local_10 <= piVar6) && ((local_10 != piVar6 || (uVar11 <= uVar13)))) break;\n      iVar3 = iVar3 + 1;\n    }" { (expression_statement "uVar34 = (ulonglong)uVar13;" (assignment_expression "uVar34 = (ulonglong)uVar13" identifier = (cast_expression "(ulonglong)uVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "uVar13 = (uint)(uVar34 * uVar19);" (assignment_expression "uVar13 = (uint)(uVar34 * uVar19)" identifier = (call_expression "(uint)(uVar34 * uVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar34 * uVar19)" ( (binary_expression "uVar34 * uVar19" identifier * identifier) )))) ;) (expression_statement "piVar6 = (int *)(uVar19 * (int)piVar6 + (int)(uVar34 * uVar19 >> 0x20));" (assignment_expression "piVar6 = (int *)(uVar19 * (int)piVar6 + (int)(uVar34 * uVar19 >> 0x20))" identifier = (cast_expression "(int *)(uVar19 * (int)piVar6 + (int)(uVar34 * uVar19 >> 0x20))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar19 * (int)piVar6 + (int)(uVar34 * uVar19 >> 0x20))" ( (binary_expression "uVar19 * (int)piVar6 + (int)(uVar34 * uVar19 >> 0x20)" (binary_expression "uVar19 * (int)piVar6" identifier * (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) + (cast_expression "(int)(uVar34 * uVar19 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 * uVar19 >> 0x20)" ( (binary_expression "uVar34 * uVar19 >> 0x20" (binary_expression "uVar34 * uVar19" identifier * identifier) >> number_literal) )))) )))) ;) (if_statement "if ((local_10 <= piVar6) && ((local_10 != piVar6 || (uVar11 <= uVar13)))) break;" if (parenthesized_expression "((local_10 <= piVar6) && ((local_10 != piVar6 || (uVar11 <= uVar13))))" ( (binary_expression "(local_10 <= piVar6) && ((local_10 != piVar6 || (uVar11 <= uVar13)))" (parenthesized_expression "(local_10 <= piVar6)" ( (binary_expression "local_10 <= piVar6" identifier <= identifier) )) && (parenthesized_expression "((local_10 != piVar6 || (uVar11 <= uVar13)))" ( (parenthesized_expression "(local_10 != piVar6 || (uVar11 <= uVar13))" ( (binary_expression "local_10 != piVar6 || (uVar11 <= uVar13)" (binary_expression "local_10 != piVar6" identifier != identifier) || (parenthesized_expression "(uVar11 <= uVar13)" ( (binary_expression "uVar11 <= uVar13" identifier <= identifier) ))) )) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != 8)" ( (binary_expression "iVar3 != 8" identifier != number_literal) )) ;) (if_statement "if ((in_a3 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar9 + 0x288);\n      *(undefined1 *)(iVar9 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }" if (parenthesized_expression "((in_a3 & 0x40) != 0)" ( (binary_expression "(in_a3 & 0x40) != 0" (parenthesized_expression "(in_a3 & 0x40)" ( (binary_expression "in_a3 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar9 + 0x288);\n      *(undefined1 *)(iVar9 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }" { (labeled_statement "LAB_00015bdc:\n      pcStack_b0 = (char *)(iVar9 + 0x288);" statement_identifier : (expression_statement "pcStack_b0 = (char *)(iVar9 + 0x288);" (assignment_expression "pcStack_b0 = (char *)(iVar9 + 0x288)" identifier = (cast_expression "(char *)(iVar9 + 0x288)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x288)" ( (binary_expression "iVar9 + 0x288" identifier + number_literal) )))) ;)) (expression_statement "*(undefined1 *)(iVar9 + 0x287) = 0x20;" (assignment_expression "*(undefined1 *)(iVar9 + 0x287) = 0x20" (pointer_expression "*(undefined1 *)(iVar9 + 0x287)" * (cast_expression "(undefined1 *)(iVar9 + 0x287)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x287)" ( (binary_expression "iVar9 + 0x287" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00015be8;" goto statement_identifier ;) })) (labeled_statement "LAB_00015bf0:\n    iVar9 = *(int *)(puVar23 + 0x1bc48);" statement_identifier : (expression_statement "iVar9 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar9 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;)) (if_statement "if ((uVar12 == 0) && (iVar9 = *(int *)(puVar23 + 0x1bc48), iVar3 == 1)) {\n      cVar10 = 'k';\n    }\n    else {\n      cVar10 = *(char *)(iVar3 + iVar9 + -0x748);\n    }" if (parenthesized_expression "((uVar12 == 0) && (iVar9 = *(int *)(puVar23 + 0x1bc48), iVar3 == 1))" ( (binary_expression "(uVar12 == 0) && (iVar9 = *(int *)(puVar23 + 0x1bc48), iVar3 == 1)" (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar9 = *(int *)(puVar23 + 0x1bc48), iVar3 == 1)" ( (comma_expression "iVar9 = *(int *)(puVar23 + 0x1bc48), iVar3 == 1" (assignment_expression "iVar9 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) , (binary_expression "iVar3 == 1" identifier == number_literal)) ))) )) (compound_statement "{\n      cVar10 = 'k';\n    }" { (expression_statement "cVar10 = 'k';" (assignment_expression "cVar10 = 'k'" identifier = (char_literal "'k'" ' character ')) ;) }) (else_clause "else {\n      cVar10 = *(char *)(iVar3 + iVar9 + -0x748);\n    }" else (compound_statement "{\n      cVar10 = *(char *)(iVar3 + iVar9 + -0x748);\n    }" { (expression_statement "cVar10 = *(char *)(iVar3 + iVar9 + -0x748);" (assignment_expression "cVar10 = *(char *)(iVar3 + iVar9 + -0x748)" identifier = (pointer_expression "*(char *)(iVar3 + iVar9 + -0x748)" * (cast_expression "(char *)(iVar3 + iVar9 + -0x748)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar9 + -0x748)" ( (binary_expression "iVar3 + iVar9 + -0x748" (binary_expression "iVar3 + iVar9" identifier + identifier) + number_literal) ))))) ;) }))) (expression_statement "pcVar18 = pcStack_b0 + 1;" (assignment_expression "pcVar18 = pcStack_b0 + 1" identifier = (binary_expression "pcStack_b0 + 1" identifier + number_literal)) ;) (expression_statement "*pcStack_b0 = cVar10;" (assignment_expression "*pcStack_b0 = cVar10" (pointer_expression "*pcStack_b0" * identifier) = identifier) ;) }) (else_clause "else {\n    if ((in_a3 & 0x100) == 0 && iVar3 == 0) goto LAB_00015784;\n    if ((in_a3 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar18 = pcStack_b0;\n    if (iVar3 != 0) goto LAB_00015bf0;\n  }" else (compound_statement "{\n    if ((in_a3 & 0x100) == 0 && iVar3 == 0) goto LAB_00015784;\n    if ((in_a3 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar18 = pcStack_b0;\n    if (iVar3 != 0) goto LAB_00015bf0;\n  }" { (if_statement "if ((in_a3 & 0x100) == 0 && iVar3 == 0) goto LAB_00015784;" if (parenthesized_expression "((in_a3 & 0x100) == 0 && iVar3 == 0)" ( (binary_expression "(in_a3 & 0x100) == 0 && iVar3 == 0" (binary_expression "(in_a3 & 0x100) == 0" (parenthesized_expression "(in_a3 & 0x100)" ( (binary_expression "in_a3 & 0x100" identifier & number_literal) )) == number_literal) && (binary_expression "iVar3 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00015784;" goto statement_identifier ;)) (if_statement "if ((in_a3 & 0x40) != 0) goto LAB_00015bdc;" if (parenthesized_expression "((in_a3 & 0x40) != 0)" ( (binary_expression "(in_a3 & 0x40) != 0" (parenthesized_expression "(in_a3 & 0x40)" ( (binary_expression "in_a3 & 0x40" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015bdc;" goto statement_identifier ;)) (labeled_statement "LAB_00015be8:\n    pcVar18 = pcStack_b0;" statement_identifier : (expression_statement "pcVar18 = pcStack_b0;" (assignment_expression "pcVar18 = pcStack_b0" identifier = identifier) ;)) (if_statement "if (iVar3 != 0) goto LAB_00015bf0;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015bf0;" goto statement_identifier ;)) }))) (expression_statement "pcStack_b0 = pcVar18;" (assignment_expression "pcStack_b0 = pcVar18" identifier = identifier) ;) (if_statement "if ((in_a3 & 0x100) != 0) {\n    pcVar14 = pcVar18 + 1;\n    pcStack_b0 = pcVar14;\n    if ((uVar12 != 0) && (iVar3 != 0)) {\n      pcStack_b0 = pcVar18 + 2;\n      *pcVar18 = 'i';\n      pcVar18 = pcVar14;\n    }\n    *pcVar18 = 'B';\n  }" if (parenthesized_expression "((in_a3 & 0x100) != 0)" ( (binary_expression "(in_a3 & 0x100) != 0" (parenthesized_expression "(in_a3 & 0x100)" ( (binary_expression "in_a3 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    pcVar14 = pcVar18 + 1;\n    pcStack_b0 = pcVar14;\n    if ((uVar12 != 0) && (iVar3 != 0)) {\n      pcStack_b0 = pcVar18 + 2;\n      *pcVar18 = 'i';\n      pcVar18 = pcVar14;\n    }\n    *pcVar18 = 'B';\n  }" { (expression_statement "pcVar14 = pcVar18 + 1;" (assignment_expression "pcVar14 = pcVar18 + 1" identifier = (binary_expression "pcVar18 + 1" identifier + number_literal)) ;) (expression_statement "pcStack_b0 = pcVar14;" (assignment_expression "pcStack_b0 = pcVar14" identifier = identifier) ;) (if_statement "if ((uVar12 != 0) && (iVar3 != 0)) {\n      pcStack_b0 = pcVar18 + 2;\n      *pcVar18 = 'i';\n      pcVar18 = pcVar14;\n    }" if (parenthesized_expression "((uVar12 != 0) && (iVar3 != 0))" ( (binary_expression "(uVar12 != 0) && (iVar3 != 0)" (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      pcStack_b0 = pcVar18 + 2;\n      *pcVar18 = 'i';\n      pcVar18 = pcVar14;\n    }" { (expression_statement "pcStack_b0 = pcVar18 + 2;" (assignment_expression "pcStack_b0 = pcVar18 + 2" identifier = (binary_expression "pcVar18 + 2" identifier + number_literal)) ;) (expression_statement "*pcVar18 = 'i';" (assignment_expression "*pcVar18 = 'i'" (pointer_expression "*pcVar18" * identifier) = (char_literal "'i'" ' character ')) ;) (expression_statement "pcVar18 = pcVar14;" (assignment_expression "pcVar18 = pcVar14" identifier = identifier) ;) })) (expression_statement "*pcVar18 = 'B';" (assignment_expression "*pcVar18 = 'B'" (pointer_expression "*pcVar18" * identifier) = (char_literal "'B'" ' character ')) ;) })) (labeled_statement "LAB_00015784:\n  while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar4) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }" statement_identifier : (while_statement "while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar4) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar4) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }" { (expression_statement "*pcStack_b0 = '\0';" (assignment_expression "*pcStack_b0 = '\0'" (pointer_expression "*pcStack_b0" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (iStack_5c == *piVar4) break;" if (parenthesized_expression "(iStack_5c == *piVar4)" ( (binary_expression "iStack_5c == *piVar4" identifier == (pointer_expression "*piVar4" * identifier)) )) (break_statement "break;" break ;)) (expression_statement "pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();" (assignment_expression "pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))()" identifier = (cast_expression "(char *)(**(code **)(puVar23 + 0x1becc))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar23 + 0x1becc))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1becc))" ( (pointer_expression "**(code **)(puVar23 + 0x1becc)" * (pointer_expression "*(code **)(puVar23 + 0x1becc)" * (cast_expression "(code **)(puVar23 + 0x1becc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1becc)" ( (binary_expression "puVar23 + 0x1becc" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }))) (return_statement "return (int)pcVar25;" return (cast_expression "(int)pcVar25" ( (type_descriptor "int" primitive_type) ) identifier) ;) })))
(translation_unit "char * open_safer(undefined4 param_1,uint param_2,int param_3,uint param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint extraout_v1;\n  uint uVar14;\n  char extraout_v1_01;\n  int extraout_v1_00;\n  char *pcVar15;\n  int iVar16;\n  uint uVar17;\n  int iVar18;\n  uint uVar19;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  char *pcVar25;\n  uint uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  ulonglong uVar34;\n  int local_res8;\n  uint local_resc;\n  char *pcStack_b0;\n  int iStack_a4;\n  uint uStack_98;\n  int iStack_90;\n  undefined1 auStack_88 [44];\n  int iStack_5c;\n  undefined *puStack_58;\n  uint uStack_14;\n  int *local_10;\n  \n  puVar2 = PTR___stack_chk_guard_000313bc;\n  uVar12 = *(uint *)PTR___stack_chk_guard_000313bc;\n  iVar10 = param_3;\n  piVar5 = &local_res8;\n  if ((param_2 & 0x100) == 0) {\n    iVar10 = 0;\n    piVar5 = local_10;\n  }\n  local_10 = piVar5;\n  local_res8 = param_3;\n  local_resc = param_4;\n  uVar3 = (*(code *)PTR_open64_00031330)();\n  pcVar4 = (char *)fd_safer(uVar3);\n  if (uVar12 == *(uint *)puVar2) {\n    return pcVar4;\n  }\n  uVar14 = uVar12;\n  puVar23 = PTR___stack_chk_fail_0003139c;\n  (*(code *)PTR___stack_chk_fail_0003139c)();\n  piVar5 = *(int **)(puVar23 + 0x1beec);\n  uVar13 = param_4 & 0x20;\n  uVar20 = 0x400;\n  iStack_5c = *piVar5;\n  uVar6 = param_4 & 3;\n  puStack_58 = puVar2;\n  if (uVar13 == 0) {\n    uVar20 = 1000;\n  }\n  piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))();\n  iStack_90 = *piVar7;\n  uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);\n  if (0xf < uStack_98 - 1) {\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }\n  iStack_a4 = piVar7[1];\n  pbVar21 = (byte *)piVar7[2];\n  uVar8 = (**(code **)(puVar23 + 0x1be70))();\n  if (0x10 < uVar8) {\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }\n  pcStack_b0 = (char *)(iVar10 + 0x287);\n  if ((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))) {\n    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);\n    uVar8 = (uint)(uVar31 >> 0x20);\n    uVar17 = (uint)uVar31;\n    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);\n    iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar19 = (uint)uVar33;\n    uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;\n    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);\n    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);\n    uVar14 = extraout_v1;\n    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }\nLAB_00015d94:\n    pcVar4 = pcStack_b0;\n    if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }\n    if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }\n  }\n  else {\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }\n  if ((param_4 & 4) != 0) {\n    uVar6 = (int)pcVar4 - (int)pcVar25;\n    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);\n    uVar14 = 0xffffffff;\n    while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }\n    pcVar25 = pcVar4 + -uVar6;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);\n  }\nLAB_0001575c:\n  if ((param_4 & 0x80) == 0) goto LAB_00015784;\n  if ((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))) {\n    iVar18 = 1;\n    uVar14 = 1;\n    piVar7 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);\n    if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }\n    pcVar4 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar11;\n  }\n  else {\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }\n  pcStack_b0 = pcVar4;\n  if ((param_4 & 0x100) != 0) {\n    pcVar15 = pcVar4 + 1;\n    pcStack_b0 = pcVar15;\n    if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }\n    *pcVar4 = 'B';\n  }\nLAB_00015784:\n  while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }\n  return pcVar25;\n}\n\n" (function_definition "char * open_safer(undefined4 param_1,uint param_2,int param_3,uint param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint extraout_v1;\n  uint uVar14;\n  char extraout_v1_01;\n  int extraout_v1_00;\n  char *pcVar15;\n  int iVar16;\n  uint uVar17;\n  int iVar18;\n  uint uVar19;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  char *pcVar25;\n  uint uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  ulonglong uVar34;\n  int local_res8;\n  uint local_resc;\n  char *pcStack_b0;\n  int iStack_a4;\n  uint uStack_98;\n  int iStack_90;\n  undefined1 auStack_88 [44];\n  int iStack_5c;\n  undefined *puStack_58;\n  uint uStack_14;\n  int *local_10;\n  \n  puVar2 = PTR___stack_chk_guard_000313bc;\n  uVar12 = *(uint *)PTR___stack_chk_guard_000313bc;\n  iVar10 = param_3;\n  piVar5 = &local_res8;\n  if ((param_2 & 0x100) == 0) {\n    iVar10 = 0;\n    piVar5 = local_10;\n  }\n  local_10 = piVar5;\n  local_res8 = param_3;\n  local_resc = param_4;\n  uVar3 = (*(code *)PTR_open64_00031330)();\n  pcVar4 = (char *)fd_safer(uVar3);\n  if (uVar12 == *(uint *)puVar2) {\n    return pcVar4;\n  }\n  uVar14 = uVar12;\n  puVar23 = PTR___stack_chk_fail_0003139c;\n  (*(code *)PTR___stack_chk_fail_0003139c)();\n  piVar5 = *(int **)(puVar23 + 0x1beec);\n  uVar13 = param_4 & 0x20;\n  uVar20 = 0x400;\n  iStack_5c = *piVar5;\n  uVar6 = param_4 & 3;\n  puStack_58 = puVar2;\n  if (uVar13 == 0) {\n    uVar20 = 1000;\n  }\n  piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))();\n  iStack_90 = *piVar7;\n  uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);\n  if (0xf < uStack_98 - 1) {\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }\n  iStack_a4 = piVar7[1];\n  pbVar21 = (byte *)piVar7[2];\n  uVar8 = (**(code **)(puVar23 + 0x1be70))();\n  if (0x10 < uVar8) {\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }\n  pcStack_b0 = (char *)(iVar10 + 0x287);\n  if ((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))) {\n    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);\n    uVar8 = (uint)(uVar31 >> 0x20);\n    uVar17 = (uint)uVar31;\n    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);\n    iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar19 = (uint)uVar33;\n    uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;\n    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);\n    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);\n    uVar14 = extraout_v1;\n    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }\nLAB_00015d94:\n    pcVar4 = pcStack_b0;\n    if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }\n    if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }\n  }\n  else {\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }\n  if ((param_4 & 4) != 0) {\n    uVar6 = (int)pcVar4 - (int)pcVar25;\n    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);\n    uVar14 = 0xffffffff;\n    while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }\n    pcVar25 = pcVar4 + -uVar6;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);\n  }\nLAB_0001575c:\n  if ((param_4 & 0x80) == 0) goto LAB_00015784;\n  if ((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))) {\n    iVar18 = 1;\n    uVar14 = 1;\n    piVar7 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);\n    if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }\n    pcVar4 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar11;\n  }\n  else {\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }\n  pcStack_b0 = pcVar4;\n  if ((param_4 & 0x100) != 0) {\n    pcVar15 = pcVar4 + 1;\n    pcStack_b0 = pcVar15;\n    if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }\n    *pcVar4 = 'B';\n  }\nLAB_00015784:\n  while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }\n  return pcVar25;\n}" primitive_type (pointer_declarator "* open_safer(undefined4 param_1,uint param_2,int param_3,uint param_4)" * (function_declarator "open_safer(undefined4 param_1,uint param_2,int param_3,uint param_4)" identifier (parameter_list "(undefined4 param_1,uint param_2,int param_3,uint param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) )))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint extraout_v1;\n  uint uVar14;\n  char extraout_v1_01;\n  int extraout_v1_00;\n  char *pcVar15;\n  int iVar16;\n  uint uVar17;\n  int iVar18;\n  uint uVar19;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  char *pcVar25;\n  uint uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  ulonglong uVar34;\n  int local_res8;\n  uint local_resc;\n  char *pcStack_b0;\n  int iStack_a4;\n  uint uStack_98;\n  int iStack_90;\n  undefined1 auStack_88 [44];\n  int iStack_5c;\n  undefined *puStack_58;\n  uint uStack_14;\n  int *local_10;\n  \n  puVar2 = PTR___stack_chk_guard_000313bc;\n  uVar12 = *(uint *)PTR___stack_chk_guard_000313bc;\n  iVar10 = param_3;\n  piVar5 = &local_res8;\n  if ((param_2 & 0x100) == 0) {\n    iVar10 = 0;\n    piVar5 = local_10;\n  }\n  local_10 = piVar5;\n  local_res8 = param_3;\n  local_resc = param_4;\n  uVar3 = (*(code *)PTR_open64_00031330)();\n  pcVar4 = (char *)fd_safer(uVar3);\n  if (uVar12 == *(uint *)puVar2) {\n    return pcVar4;\n  }\n  uVar14 = uVar12;\n  puVar23 = PTR___stack_chk_fail_0003139c;\n  (*(code *)PTR___stack_chk_fail_0003139c)();\n  piVar5 = *(int **)(puVar23 + 0x1beec);\n  uVar13 = param_4 & 0x20;\n  uVar20 = 0x400;\n  iStack_5c = *piVar5;\n  uVar6 = param_4 & 3;\n  puStack_58 = puVar2;\n  if (uVar13 == 0) {\n    uVar20 = 1000;\n  }\n  piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))();\n  iStack_90 = *piVar7;\n  uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);\n  if (0xf < uStack_98 - 1) {\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }\n  iStack_a4 = piVar7[1];\n  pbVar21 = (byte *)piVar7[2];\n  uVar8 = (**(code **)(puVar23 + 0x1be70))();\n  if (0x10 < uVar8) {\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }\n  pcStack_b0 = (char *)(iVar10 + 0x287);\n  if ((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))) {\n    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);\n    uVar8 = (uint)(uVar31 >> 0x20);\n    uVar17 = (uint)uVar31;\n    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);\n    iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar19 = (uint)uVar33;\n    uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;\n    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);\n    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);\n    uVar14 = extraout_v1;\n    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }\nLAB_00015d94:\n    pcVar4 = pcStack_b0;\n    if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }\n    if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }\n  }\n  else {\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }\n  if ((param_4 & 4) != 0) {\n    uVar6 = (int)pcVar4 - (int)pcVar25;\n    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);\n    uVar14 = 0xffffffff;\n    while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }\n    pcVar25 = pcVar4 + -uVar6;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);\n  }\nLAB_0001575c:\n  if ((param_4 & 0x80) == 0) goto LAB_00015784;\n  if ((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))) {\n    iVar18 = 1;\n    uVar14 = 1;\n    piVar7 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);\n    if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }\n    pcVar4 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar11;\n  }\n  else {\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }\n  pcStack_b0 = pcVar4;\n  if ((param_4 & 0x100) != 0) {\n    pcVar15 = pcVar4 + 1;\n    pcStack_b0 = pcVar15;\n    if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }\n    *pcVar4 = 'B';\n  }\nLAB_00015784:\n  while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }\n  return pcVar25;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_00;" primitive_type identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "char *pcVar25;" primitive_type (pointer_declarator "*pcVar25" * identifier) ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "double dVar28;" primitive_type identifier ;) (declaration "double dVar29;" primitive_type identifier ;) (declaration "longlong lVar30;" type_identifier identifier ;) (declaration "ulonglong uVar31;" type_identifier identifier ;) (declaration "longlong lVar32;" type_identifier identifier ;) (declaration "undefined8 uVar33;" type_identifier identifier ;) (declaration "ulonglong uVar34;" type_identifier identifier ;) (declaration "int local_res8;" primitive_type identifier ;) (declaration "uint local_resc;" type_identifier identifier ;) (declaration "char *pcStack_b0;" primitive_type (pointer_declarator "*pcStack_b0" * identifier) ;) (declaration "int iStack_a4;" primitive_type identifier ;) (declaration "uint uStack_98;" type_identifier identifier ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "undefined1 auStack_88 [44];" type_identifier (array_declarator "auStack_88 [44]" identifier [ number_literal ]) ;) (declaration "int iStack_5c;" primitive_type identifier ;) (declaration "undefined *puStack_58;" type_identifier (pointer_declarator "*puStack_58" * identifier) ;) (declaration "uint uStack_14;" type_identifier identifier ;) (declaration "int *local_10;" primitive_type (pointer_declarator "*local_10" * identifier) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000313bc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000313bc" identifier = identifier) ;) (expression_statement "uVar12 = *(uint *)PTR___stack_chk_guard_000313bc;" (assignment_expression "uVar12 = *(uint *)PTR___stack_chk_guard_000313bc" identifier = (pointer_expression "*(uint *)PTR___stack_chk_guard_000313bc" * (cast_expression "(uint *)PTR___stack_chk_guard_000313bc" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar10 = param_3;" (assignment_expression "iVar10 = param_3" identifier = identifier) ;) (expression_statement "piVar5 = &local_res8;" (assignment_expression "piVar5 = &local_res8" identifier = (pointer_expression "&local_res8" & identifier)) ;) (if_statement "if ((param_2 & 0x100) == 0) {\n    iVar10 = 0;\n    piVar5 = local_10;\n  }" if (parenthesized_expression "((param_2 & 0x100) == 0)" ( (binary_expression "(param_2 & 0x100) == 0" (parenthesized_expression "(param_2 & 0x100)" ( (binary_expression "param_2 & 0x100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar10 = 0;\n    piVar5 = local_10;\n  }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "piVar5 = local_10;" (assignment_expression "piVar5 = local_10" identifier = identifier) ;) })) (expression_statement "local_10 = piVar5;" (assignment_expression "local_10 = piVar5" identifier = identifier) ;) (expression_statement "local_res8 = param_3;" (assignment_expression "local_res8 = param_3" identifier = identifier) ;) (expression_statement "local_resc = param_4;" (assignment_expression "local_resc = param_4" identifier = identifier) ;) (expression_statement "uVar3 = (*(code *)PTR_open64_00031330)();" (assignment_expression "uVar3 = (*(code *)PTR_open64_00031330)()" identifier = (call_expression "(*(code *)PTR_open64_00031330)()" (parenthesized_expression "(*(code *)PTR_open64_00031330)" ( (pointer_expression "*(code *)PTR_open64_00031330" * (cast_expression "(code *)PTR_open64_00031330" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar4 = (char *)fd_safer(uVar3);" (assignment_expression "pcVar4 = (char *)fd_safer(uVar3)" identifier = (cast_expression "(char *)fd_safer(uVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "fd_safer(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))))) ;) (if_statement "if (uVar12 == *(uint *)puVar2) {\n    return pcVar4;\n  }" if (parenthesized_expression "(uVar12 == *(uint *)puVar2)" ( (binary_expression "uVar12 == *(uint *)puVar2" identifier == (pointer_expression "*(uint *)puVar2" * (cast_expression "(uint *)puVar2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pcVar4;\n  }" { (return_statement "return pcVar4;" return identifier ;) })) (expression_statement "uVar14 = uVar12;" (assignment_expression "uVar14 = uVar12" identifier = identifier) ;) (expression_statement "puVar23 = PTR___stack_chk_fail_0003139c;" (assignment_expression "puVar23 = PTR___stack_chk_fail_0003139c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0003139c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003139c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003139c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003139c" * (cast_expression "(code *)PTR___stack_chk_fail_0003139c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar5 = *(int **)(puVar23 + 0x1beec);" (assignment_expression "piVar5 = *(int **)(puVar23 + 0x1beec)" identifier = (pointer_expression "*(int **)(puVar23 + 0x1beec)" * (cast_expression "(int **)(puVar23 + 0x1beec)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1beec)" ( (binary_expression "puVar23 + 0x1beec" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = param_4 & 0x20;" (assignment_expression "uVar13 = param_4 & 0x20" identifier = (binary_expression "param_4 & 0x20" identifier & number_literal)) ;) (expression_statement "uVar20 = 0x400;" (assignment_expression "uVar20 = 0x400" identifier = number_literal) ;) (expression_statement "iStack_5c = *piVar5;" (assignment_expression "iStack_5c = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "uVar6 = param_4 & 3;" (assignment_expression "uVar6 = param_4 & 3" identifier = (binary_expression "param_4 & 3" identifier & number_literal)) ;) (expression_statement "puStack_58 = puVar2;" (assignment_expression "puStack_58 = puVar2" identifier = identifier) ;) (if_statement "if (uVar13 == 0) {\n    uVar20 = 1000;\n  }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar20 = 1000;\n  }" { (expression_statement "uVar20 = 1000;" (assignment_expression "uVar20 = 1000" identifier = number_literal) ;) })) (expression_statement "piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))();" (assignment_expression "piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))()" identifier = (cast_expression "(int *)(**(code **)(puVar23 + 0x1be00))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar23 + 0x1be00))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1be00))" ( (pointer_expression "**(code **)(puVar23 + 0x1be00)" * (pointer_expression "*(code **)(puVar23 + 0x1be00)" * (cast_expression "(code **)(puVar23 + 0x1be00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be00)" ( (binary_expression "puVar23 + 0x1be00" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "iStack_90 = *piVar7;" (assignment_expression "iStack_90 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);" (assignment_expression "uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iStack_90)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iStack_90)" ( identifier )))) ;) (if_statement "if (0xf < uStack_98 - 1) {\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }" if (parenthesized_expression "(0xf < uStack_98 - 1)" ( (binary_expression "0xf < uStack_98 - 1" number_literal < (binary_expression "uStack_98 - 1" identifier - number_literal)) )) (compound_statement "{\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }" { (expression_statement "uStack_98 = 1;" (assignment_expression "uStack_98 = 1" identifier = number_literal) ;) (expression_statement "iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;" (assignment_expression "iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0" identifier = (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7c0" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "iStack_a4 = piVar7[1];" (assignment_expression "iStack_a4 = piVar7[1]" identifier = (subscript_expression "piVar7[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar21 = (byte *)piVar7[2];" (assignment_expression "pbVar21 = (byte *)piVar7[2]" identifier = (cast_expression "(byte *)piVar7[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar7[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar8 = (**(code **)(puVar23 + 0x1be70))();" (assignment_expression "uVar8 = (**(code **)(puVar23 + 0x1be70))()" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (0x10 < uVar8) {\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }" if (parenthesized_expression "(0x10 < uVar8)" ( (binary_expression "0x10 < uVar8" number_literal < identifier) )) (compound_statement "{\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }" { (expression_statement "iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;" (assignment_expression "iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c" identifier = (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0xf6c" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "pcStack_b0 = (char *)(iVar10 + 0x287);" (assignment_expression "pcStack_b0 = (char *)(iVar10 + 0x287)" identifier = (cast_expression "(char *)(iVar10 + 0x287)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x287)" ( (binary_expression "iVar10 + 0x287" identifier + number_literal) )))) ;) (if_statement "if ((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))) {\n    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);\n    uVar8 = (uint)(uVar31 >> 0x20);\n    uVar17 = (uint)uVar31;\n    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);\n    iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar19 = (uint)uVar33;\n    uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;\n    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);\n    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);\n    uVar14 = extraout_v1;\n    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }\nLAB_00015d94:\n    pcVar4 = pcStack_b0;\n    if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }\n    if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }\n  }\n  else {\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }" if (parenthesized_expression "((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12))))" ( (binary_expression "(&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))" (parenthesized_expression "(&_gp_1 < local_10)" ( (binary_expression "&_gp_1 < local_10" (pointer_expression "&_gp_1" & identifier) < identifier) )) || (parenthesized_expression "((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))" ( (parenthesized_expression "(local_10 == (int *)&_gp_1 && (uStack_14 < uVar12))" ( (binary_expression "local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)" (binary_expression "local_10 == (int *)&_gp_1" identifier == (cast_expression "(int *)&_gp_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&_gp_1" & identifier))) && (parenthesized_expression "(uStack_14 < uVar12)" ( (binary_expression "uStack_14 < uVar12" identifier < identifier) ))) )) ))) )) (compound_statement "{\n    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);\n    uVar8 = (uint)(uVar31 >> 0x20);\n    uVar17 = (uint)uVar31;\n    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);\n    iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar19 = (uint)uVar33;\n    uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;\n    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);\n    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);\n    uVar14 = extraout_v1;\n    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }\nLAB_00015d94:\n    pcVar4 = pcStack_b0;\n    if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }\n    if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }\n  }" { (expression_statement "lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);" (assignment_expression "lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14)" identifier = (call_expression "FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14)" identifier (argument_list "(local_10,uVar12,&_gp_1,uStack_14)" ( identifier , identifier , (pointer_expression "&_gp_1" & identifier) , identifier )))) ;) (if_statement "if (lVar30 != 0) goto LAB_00015680;" if (parenthesized_expression "(lVar30 != 0)" ( (binary_expression "lVar30 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015680;" goto statement_identifier ;)) (expression_statement "uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);" (assignment_expression "uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14)" identifier = (call_expression "FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14)" identifier (argument_list "(local_10,uVar12,&_gp_1,uStack_14)" ( identifier , identifier , (pointer_expression "&_gp_1" & identifier) , identifier )))) ;) (expression_statement "uVar8 = (uint)(uVar31 >> 0x20);" (assignment_expression "uVar8 = (uint)(uVar31 >> 0x20)" identifier = (call_expression "(uint)(uVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar31 >> 0x20)" ( (binary_expression "uVar31 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar17 = (uint)uVar31;" (assignment_expression "uVar17 = (uint)uVar31" identifier = (cast_expression "(uint)uVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);" (assignment_expression "uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17)" identifier = (call_expression "FUN_0001db50(uVar14,param_2,uVar8,uVar17)" identifier (argument_list "(uVar14,param_2,uVar8,uVar17)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar18 = (int)((ulonglong)uVar33 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)uVar33 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar33 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar33 >> 0x20)" ( (binary_expression "(ulonglong)uVar33 >> 0x20" (cast_expression "(ulonglong)uVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar19 = (uint)uVar33;" (assignment_expression "uVar19 = (uint)uVar33" identifier = (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;" (assignment_expression "uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2" identifier = (binary_expression "uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2" (binary_expression "uVar19 * 5 >> 0x1f" (binary_expression "uVar19 * 5" identifier * number_literal) >> number_literal) | (binary_expression "((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2" (parenthesized_expression "((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18)" ( (binary_expression "(uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18" (binary_expression "(uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2)" (call_expression "(uint)(uVar19 * 5 < uVar19 * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 * 5 < uVar19 * 4)" ( (binary_expression "uVar19 * 5 < uVar19 * 4" (binary_expression "uVar19 * 5" identifier * number_literal) < (binary_expression "uVar19 * 4" identifier * number_literal)) ))) + (parenthesized_expression "(uVar19 >> 0x1e | iVar18 << 2)" ( (binary_expression "uVar19 >> 0x1e | iVar18 << 2" (binary_expression "uVar19 >> 0x1e" identifier >> number_literal) | (binary_expression "iVar18 << 2" identifier << number_literal)) ))) + identifier) )) * number_literal))) ;) (expression_statement "lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);" (assignment_expression "lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17)" identifier = (call_expression "FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17)" identifier (argument_list "(uVar22,uVar19 * 10,uVar8,uVar17)" ( identifier , (binary_expression "uVar19 * 10" identifier * number_literal) , identifier , identifier )))) ;) (expression_statement "lVar30 = lVar32 << 1;" (assignment_expression "lVar30 = lVar32 << 1" identifier = (binary_expression "lVar32 << 1" identifier << number_literal)) ;) (expression_statement "uVar26 = (uint)((ulonglong)lVar30 >> 0x20);" (assignment_expression "uVar26 = (uint)((ulonglong)lVar30 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar30 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);" (assignment_expression "uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17)" identifier = (call_expression "FUN_0001d6e0(uVar14,param_2,uVar8,uVar17)" identifier (argument_list "(uVar14,param_2,uVar8,uVar17)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);" (call_expression "FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17)" identifier (argument_list "(uVar22,uVar19 * 10,uVar8,uVar17)" ( identifier , (binary_expression "uVar19 * 10" identifier * number_literal) , identifier , identifier ))) ;) (expression_statement "uVar14 = extraout_v1;" (assignment_expression "uVar14 = extraout_v1" identifier = identifier) ;) (if_statement "if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }" if (parenthesized_expression "((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17))))" ( (binary_expression "(uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))" (parenthesized_expression "(uVar26 < uVar8)" ( (binary_expression "uVar26 < uVar8" identifier < identifier) )) || (parenthesized_expression "((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))" ( (parenthesized_expression "(uVar8 == uVar26 && ((uint)lVar30 < uVar17))" ( (binary_expression "uVar8 == uVar26 && ((uint)lVar30 < uVar17)" (binary_expression "uVar8 == uVar26" identifier == identifier) && (parenthesized_expression "((uint)lVar30 < uVar17)" ( (binary_expression "(uint)lVar30 < uVar17" (cast_expression "(uint)lVar30" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))) )) ))) )) (compound_statement "{\n      uVar8 = (uint)(lVar30 != 0);\n    }" { (expression_statement "uVar8 = (uint)(lVar30 != 0);" (assignment_expression "uVar8 = (uint)(lVar30 != 0)" identifier = (call_expression "(uint)(lVar30 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(lVar30 != 0)" ( (binary_expression "lVar30 != 0" identifier != number_literal) )))) ;) }) (else_clause "else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }" else (if_statement "if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }" if (parenthesized_expression "(uVar31 < (ulonglong)(lVar32 << 1))" ( (binary_expression "uVar31 < (ulonglong)(lVar32 << 1)" identifier < (call_expression "(ulonglong)(lVar32 << 1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar32 << 1)" ( (binary_expression "lVar32 << 1" identifier << number_literal) )))) )) (compound_statement "{\n      uVar8 = 3;\n    }" { (expression_statement "uVar8 = 3;" (assignment_expression "uVar8 = 3" identifier = number_literal) ;) }) (else_clause "else {\n      uVar8 = 2;\n    }" else (compound_statement "{\n      uVar8 = 2;\n    }" { (expression_statement "uVar8 = 2;" (assignment_expression "uVar8 = 2" identifier = number_literal) ;) }))))) (labeled_statement "LAB_00015d94:\n    pcVar4 = pcStack_b0;" statement_identifier : (expression_statement "pcVar4 = pcStack_b0;" (assignment_expression "pcVar4 = pcStack_b0" identifier = identifier) ;)) (if_statement "if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }" 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) )) (compound_statement "{\n      iVar18 = -1;\n    }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }" else (compound_statement "{\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (if_statement "if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }" if (parenthesized_expression "(((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34))" ( (binary_expression "((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)" (parenthesized_expression "((int)(uVar34 >> 0x20) != 0)" ( (binary_expression "(int)(uVar34 >> 0x20) != 0" (cast_expression "(int)(uVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) ))) != number_literal) )) || (parenthesized_expression "(uVar20 <= (uint)uVar34)" ( (binary_expression "uVar20 <= (uint)uVar34" identifier <= (cast_expression "(uint)uVar34" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) (compound_statement "{\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);" do (compound_statement "{\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        }" { (expression_statement "uVar3 = (undefined4)(uVar34 >> 0x20);" (assignment_expression "uVar3 = (undefined4)(uVar34 >> 0x20)" identifier = (call_expression "(undefined4)(uVar34 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "FUN_0001db50(uVar3,(int)uVar34,0,uVar20);" (call_expression "FUN_0001db50(uVar3,(int)uVar34,0,uVar20)" identifier (argument_list "(uVar3,(int)uVar34,0,uVar20)" ( identifier , (cast_expression "(int)uVar34" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , identifier ))) ;) (expression_statement "uVar17 = extraout_v1_00 * 10 + uVar14;" (assignment_expression "uVar17 = extraout_v1_00 * 10 + uVar14" identifier = (binary_expression "extraout_v1_00 * 10 + uVar14" (binary_expression "extraout_v1_00 * 10" identifier * number_literal) + identifier)) ;) (if_statement "if (uVar20 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar14 = uVar17 / uVar20;" (assignment_expression "uVar14 = uVar17 / uVar20" identifier = (binary_expression "uVar17 / uVar20" identifier / identifier)) ;) (expression_statement "uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);" (assignment_expression "uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1)" identifier = (binary_expression "(uVar17 % uVar20) * 2 + ((int)uVar8 >> 1)" (binary_expression "(uVar17 % uVar20) * 2" (parenthesized_expression "(uVar17 % uVar20)" ( (binary_expression "uVar17 % uVar20" identifier % identifier) )) * number_literal) + (parenthesized_expression "((int)uVar8 >> 1)" ( (binary_expression "(int)uVar8 >> 1" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);" (assignment_expression "uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20)" identifier = (call_expression "FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20)" identifier (argument_list "(uVar3,(int)uVar34,0,uVar20)" ( identifier , (cast_expression "(int)uVar34" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , identifier )))) ;) (expression_statement "uVar17 = (uint)uVar34;" (assignment_expression "uVar17 = (uint)uVar34" identifier = (cast_expression "(uint)uVar34" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar26 = uVar8 + uVar19;" (assignment_expression "uVar26 = uVar8 + uVar19" identifier = (binary_expression "uVar8 + uVar19" identifier + identifier)) ;) (if_statement "if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }" if (parenthesized_expression "(uVar19 < uVar20)" ( (binary_expression "uVar19 < uVar20" identifier < identifier) )) (compound_statement "{\n            uVar8 = (uint)(uVar26 != 0);\n          }" { (expression_statement "uVar8 = (uint)(uVar26 != 0);" (assignment_expression "uVar8 = (uint)(uVar26 != 0)" identifier = (call_expression "(uint)(uVar26 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )))) ;) }) (else_clause "else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }" else (compound_statement "{\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }" { (expression_statement "uVar8 = 2;" (assignment_expression "uVar8 = 2" identifier = number_literal) ;) (if_statement "if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }" if (parenthesized_expression "(uVar20 < uVar26)" ( (binary_expression "uVar20 < uVar26" identifier < identifier) )) (compound_statement "{\n              uVar8 = 3;\n            }" { (expression_statement "uVar8 = 3;" (assignment_expression "uVar8 = 3" identifier = number_literal) ;) })) }))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }" if (parenthesized_expression "(((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20))" ( (binary_expression "((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)" (parenthesized_expression "((int)(uVar34 >> 0x20) == 0)" ( (binary_expression "(int)(uVar34 >> 0x20) == 0" (cast_expression "(int)(uVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) ))) == number_literal) )) && (parenthesized_expression "(uVar17 < uVar20)" ( (binary_expression "uVar17 < uVar20" identifier < identifier) ))) )) (compound_statement "{\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }" { (if_statement "if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }" if (parenthesized_expression "(uVar17 < 10)" ( (binary_expression "uVar17 < 10" identifier < number_literal) )) (compound_statement "{\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }" { (if_statement "if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (compound_statement "{\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }" { (expression_statement "bVar1 = 2 < (uVar14 & 1) + uVar8;" (assignment_expression "bVar1 = 2 < (uVar14 & 1) + uVar8" identifier = (binary_expression "2 < (uVar14 & 1) + uVar8" number_literal < (binary_expression "(uVar14 & 1) + uVar8" (parenthesized_expression "(uVar14 & 1)" ( (binary_expression "uVar14 & 1" identifier & number_literal) )) + identifier))) ;) (labeled_statement "LAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;" statement_identifier : (if_statement "if (!bVar1) goto LAB_0001606c;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (goto_statement "goto LAB_0001606c;" goto statement_identifier ;))) (expression_statement "uVar19 = uVar17 + 1;" (assignment_expression "uVar19 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (if_statement "if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }" if (parenthesized_expression "(uVar14 == 9)" ( (binary_expression "uVar14 == 9" identifier == number_literal) )) (compound_statement "{\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }" { (expression_statement "bVar1 = uVar19 < uVar17;" (assignment_expression "bVar1 = uVar19 < uVar17" identifier = (binary_expression "uVar19 < uVar17" identifier < identifier)) ;) (expression_statement "uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);" (assignment_expression "uVar34 = (ulonglong)CONCAT14(bVar1,uVar19)" identifier = (cast_expression "(ulonglong)CONCAT14(bVar1,uVar19)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,uVar19)" identifier (argument_list "(bVar1,uVar19)" ( identifier , identifier ))))) ;) (if_statement "if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }" if (parenthesized_expression "((bVar1) || (uVar19 != 10))" ( (binary_expression "(bVar1) || (uVar19 != 10)" (parenthesized_expression "(bVar1)" ( identifier )) || (parenthesized_expression "(uVar19 != 10)" ( (binary_expression "uVar19 != 10" identifier != number_literal) ))) )) (compound_statement "{\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00016074;" goto statement_identifier ;) })) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);" (assignment_expression "uVar34 = (ulonglong)CONCAT14(bVar1,uVar19)" identifier = (cast_expression "(ulonglong)CONCAT14(bVar1,uVar19)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(bVar1,uVar19)" identifier (argument_list "(bVar1,uVar19)" ( identifier , identifier ))))) ;) (goto_statement "goto LAB_000160b4;" goto statement_identifier ;) })) (expression_statement "cVar11 = (char)uVar14 + '1';" (assignment_expression "cVar11 = (char)uVar14 + '1'" identifier = (binary_expression "(char)uVar14 + '1'" (cast_expression "(char)uVar14" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'1'" ' character '))) ;) (labeled_statement "LAB_00016084:\n                uVar8 = 0;" statement_identifier : (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;)) (expression_statement "pcVar24 = *(code **)(puVar23 + 0x1bef0);" (assignment_expression "pcVar24 = *(code **)(puVar23 + 0x1bef0)" identifier = (pointer_expression "*(code **)(puVar23 + 0x1bef0)" * (cast_expression "(code **)(puVar23 + 0x1bef0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef0)" ( (binary_expression "puVar23 + 0x1bef0" identifier + number_literal) ))))) ;) (expression_statement "*(char *)(iVar10 + 0x286) = cVar11;" (assignment_expression "*(char *)(iVar10 + 0x286) = cVar11" (pointer_expression "*(char *)(iVar10 + 0x286)" * (cast_expression "(char *)(iVar10 + 0x286)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x286)" ( (binary_expression "iVar10 + 0x286" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);" (assignment_expression "pcVar4 = (char *)((iVar10 + 0x286) - uStack_98)" identifier = (cast_expression "(char *)((iVar10 + 0x286) - uStack_98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar10 + 0x286) - uStack_98)" ( (binary_expression "(iVar10 + 0x286) - uStack_98" (parenthesized_expression "(iVar10 + 0x286)" ( (binary_expression "iVar10 + 0x286" identifier + number_literal) )) - identifier) )))) ;) (expression_statement "(*pcVar24)(pcVar4,iStack_90,uStack_98);" (call_expression "(*pcVar24)(pcVar4,iStack_90,uStack_98)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(pcVar4,iStack_90,uStack_98)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }" else (compound_statement "{\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }" { (expression_statement "bVar1 = uVar8 != 0;" (assignment_expression "bVar1 = uVar8 != 0" identifier = (binary_expression "uVar8 != 0" identifier != number_literal)) ;) (if_statement "if (uVar6 == 0) goto LAB_000160dc;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000160dc;" goto statement_identifier ;)) (labeled_statement "LAB_0001606c:\n                cVar11 = (char)uVar14 + '0';" statement_identifier : (expression_statement "cVar11 = (char)uVar14 + '0';" (assignment_expression "cVar11 = (char)uVar14 + '0'" identifier = (binary_expression "(char)uVar14 + '0'" (cast_expression "(char)uVar14" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'0'" ' character '))) ;)) (if_statement "if (uVar14 != 0) goto LAB_00016084;" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00016084;" goto statement_identifier ;)) (labeled_statement "LAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }" statement_identifier : (if_statement "if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\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                  cVar11 = '0';\n                  goto LAB_00016084;\n                }" { (expression_statement "cVar11 = '0';" (assignment_expression "cVar11 = '0'" identifier = (char_literal "'0'" ' character ')) ;) (goto_statement "goto LAB_00016084;" goto statement_identifier ;) }))) }))) (labeled_statement "LAB_000160b4:\n              uVar14 = 0;" statement_identifier : (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;)) (expression_statement "pcVar25 = pcVar4;" (assignment_expression "pcVar25 = pcVar4" identifier = identifier) ;) (if_statement "if (uVar6 == 1) goto LAB_00015e08;" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (goto_statement "goto LAB_00015dcc;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) }) while (parenthesized_expression "(iVar18 != 8)" ( (binary_expression "iVar18 != 8" identifier != number_literal) )) ;) })) }))) (if_statement "if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (compound_statement "{\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }" { (expression_statement "pcVar25 = pcStack_b0;" (assignment_expression "pcVar25 = pcStack_b0" identifier = identifier) ;) (if_statement "if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;" if (parenthesized_expression "(5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14))" ( (binary_expression "5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)" number_literal < (cast_expression "(int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)" ( (binary_expression "(((uint)uVar34 & 1) + uVar8 != 0) + uVar14" (parenthesized_expression "(((uint)uVar34 & 1) + uVar8 != 0)" ( (binary_expression "((uint)uVar34 & 1) + uVar8 != 0" (binary_expression "((uint)uVar34 & 1) + uVar8" (parenthesized_expression "((uint)uVar34 & 1)" ( (binary_expression "(uint)uVar34 & 1" (cast_expression "(uint)uVar34" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) + identifier) != number_literal) )) + identifier) )))) )) (goto_statement "goto LAB_00015ddc;" goto statement_identifier ;)) (labeled_statement "LAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);" statement_identifier : (do_statement "do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);" do (compound_statement "{\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      }" { (do_statement "do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);" do (compound_statement "{\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        }" { (expression_statement "iVar9 = (int)(uVar34 >> 0x20);" (assignment_expression "iVar9 = (int)(uVar34 >> 0x20)" identifier = (cast_expression "(int)(uVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar14 = (uint)uVar34;" (assignment_expression "uVar14 = (uint)uVar34" identifier = (cast_expression "(uint)uVar34" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "FUN_0001db50(iVar9,uVar14,0,10);" (call_expression "FUN_0001db50(iVar9,uVar14,0,10)" identifier (argument_list "(iVar9,uVar14,0,10)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "pcVar25 = pcVar25 + -1;" (assignment_expression "pcVar25 = pcVar25 + -1" identifier = (binary_expression "pcVar25 + -1" identifier + number_literal)) ;) (expression_statement "*pcVar25 = extraout_v1_01 + '0';" (assignment_expression "*pcVar25 = extraout_v1_01 + '0'" (pointer_expression "*pcVar25" * identifier) = (binary_expression "extraout_v1_01 + '0'" identifier + (char_literal "'0'" ' character '))) ;) (expression_statement "uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);" (assignment_expression "uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10)" identifier = (call_expression "FUN_0001d6e0(iVar9,uVar14,0,10)" identifier (argument_list "(iVar9,uVar14,0,10)" ( identifier , identifier , number_literal , number_literal )))) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) }) while (parenthesized_expression "(9 < uVar14)" ( (binary_expression "9 < uVar14" number_literal < identifier) )) ;)) }) (else_clause "else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }" else (compound_statement "{\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }" { (labeled_statement "LAB_00015dcc:\n      pcVar25 = pcVar4;" statement_identifier : (expression_statement "pcVar25 = pcVar4;" (assignment_expression "pcVar25 = pcVar4" identifier = identifier) ;)) (if_statement "if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;" if (parenthesized_expression "((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1))" ( (binary_expression "(uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)" (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) || (parenthesized_expression "((int)(uVar14 + uVar8) < 1)" ( (binary_expression "(int)(uVar14 + uVar8) < 1" (cast_expression "(int)(uVar14 + uVar8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar14 + uVar8)" ( (binary_expression "uVar14 + uVar8" identifier + identifier) ))) < number_literal) ))) )) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (labeled_statement "LAB_00015ddc:\n      uVar34 = uVar34 + 1;" statement_identifier : (expression_statement "uVar34 = uVar34 + 1;" (assignment_expression "uVar34 = uVar34 + 1" identifier = (binary_expression "uVar34 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar25 = pcVar4;" (assignment_expression "pcVar25 = pcVar4" identifier = identifier) ;) (if_statement "if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;" if (parenthesized_expression "(((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))" ( (binary_expression "((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8)))" (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) )) || (parenthesized_expression "((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8)))" ( (parenthesized_expression "(((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))" ( (binary_expression "((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8)" (parenthesized_expression "((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34))" ( (binary_expression "(int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)" (binary_expression "(int)(uVar34 >> 0x20) != 0" (cast_expression "(int)(uVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) ))) != number_literal) || (parenthesized_expression "(uVar20 != (uint)uVar34)" ( (binary_expression "uVar20 != (uint)uVar34" identifier != (cast_expression "(uint)uVar34" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) || (parenthesized_expression "(iVar18 == 8)" ( (binary_expression "iVar18 == 8" identifier == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\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        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }" { (expression_statement "pcVar24 = *(code **)(puVar23 + 0x1bef0);" (assignment_expression "pcVar24 = *(code **)(puVar23 + 0x1bef0)" identifier = (pointer_expression "*(code **)(puVar23 + 0x1bef0)" * (cast_expression "(code **)(puVar23 + 0x1bef0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef0)" ( (binary_expression "puVar23 + 0x1bef0" identifier + number_literal) ))))) ;) (expression_statement "pcVar4[-1] = '0';" (assignment_expression "pcVar4[-1] = '0'" (subscript_expression "pcVar4[-1]" identifier [ number_literal ]) = (char_literal "'0'" ' character ')) ;) (expression_statement "pcVar4 = pcVar4 + ~uStack_98;" (assignment_expression "pcVar4 = pcVar4 + ~uStack_98" identifier = (binary_expression "pcVar4 + ~uStack_98" identifier + (unary_expression "~uStack_98" ~ identifier))) ;) (expression_statement "(*pcVar24)(pcVar4,iStack_90);" (call_expression "(*pcVar24)(pcVar4,iStack_90)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(pcVar4,iStack_90)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar25 = pcVar4 + -1;" (assignment_expression "pcVar25 = pcVar4 + -1" identifier = (binary_expression "pcVar4 + -1" identifier + number_literal)) ;) (expression_statement "pcVar4[-1] = '1';" (assignment_expression "pcVar4[-1] = '1'" (subscript_expression "pcVar4[-1]" identifier [ number_literal ]) = (char_literal "'1'" ' character ')) ;) }))) }) (else_clause "else {\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }" else (compound_statement "{\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }" { (expression_statement "lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);" (assignment_expression "lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12)" identifier = (call_expression "FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12)" identifier (argument_list "(&_gp_1,uStack_14,local_10,uVar12)" ( (pointer_expression "&_gp_1" & identifier) , identifier , identifier , identifier )))) ;) (if_statement "if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }" if (parenthesized_expression "(lVar30 == 0)" ( (binary_expression "lVar30 == 0" identifier == number_literal) )) (compound_statement "{\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }" { (expression_statement "lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);" (assignment_expression "lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12)" identifier = (call_expression "FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12)" identifier (argument_list "(&_gp_1,uStack_14,local_10,uVar12)" ( (pointer_expression "&_gp_1" & identifier) , identifier , identifier , identifier )))) ;) (expression_statement "uVar34 = lVar30 * CONCAT44(uVar14,param_2);" (assignment_expression "uVar34 = lVar30 * CONCAT44(uVar14,param_2)" identifier = (binary_expression "lVar30 * CONCAT44(uVar14,param_2)" identifier * (call_expression "CONCAT44(uVar14,param_2)" identifier (argument_list "(uVar14,param_2)" ( identifier , identifier ))))) ;) (expression_statement "lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));" (assignment_expression "lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20))" identifier = (call_expression "FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20))" identifier (argument_list "((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20))" ( (cast_expression "(int)(uVar34 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 >> 0x20)" ( (binary_expression "uVar34 >> 0x20" identifier >> number_literal) ))) , (cast_expression "(int)uVar34" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)((ulonglong)lVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (if_statement "if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }" if (parenthesized_expression "(lVar30 == CONCAT44(uVar14,param_2))" ( (binary_expression "lVar30 == CONCAT44(uVar14,param_2)" identifier == (call_expression "CONCAT44(uVar14,param_2)" identifier (argument_list "(uVar14,param_2)" ( identifier , identifier )))) )) (compound_statement "{\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00015d94;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);" statement_identifier : (expression_statement "dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);" (assignment_expression "dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14)" identifier = (cast_expression "(double)FUN_0001cd70(&_gp_1,uStack_14)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70(&_gp_1,uStack_14)" identifier (argument_list "(&_gp_1,uStack_14)" ( (pointer_expression "&_gp_1" & identifier) , identifier ))))) ;)) (expression_statement "dVar28 = (double)FUN_0001cd70(local_10,uVar12);" (assignment_expression "dVar28 = (double)FUN_0001cd70(local_10,uVar12)" identifier = (cast_expression "(double)FUN_0001cd70(local_10,uVar12)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70(local_10,uVar12)" identifier (argument_list "(local_10,uVar12)" ( identifier , identifier ))))) ;) (expression_statement "dVar27 = dVar27 / dVar28;" (assignment_expression "dVar27 = dVar27 / dVar28" identifier = (binary_expression "dVar27 / dVar28" identifier / identifier)) ;) (expression_statement "dVar28 = (double)FUN_0001cd70(uVar14,param_2);" (assignment_expression "dVar28 = (double)FUN_0001cd70(uVar14,param_2)" identifier = (cast_expression "(double)FUN_0001cd70(uVar14,param_2)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70(uVar14,param_2)" identifier (argument_list "(uVar14,param_2)" ( identifier , identifier ))))) ;) (expression_statement "dVar27 = dVar27 * dVar28;" (assignment_expression "dVar27 = dVar27 * dVar28" identifier = (binary_expression "dVar27 * dVar28" identifier * identifier)) ;) (if_statement "if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }" 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) )) (compound_statement "{\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }" { (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" identifier = identifier) ;) (if_statement "if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }" if (parenthesized_expression "(((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)))" ( (binary_expression "((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))" (parenthesized_expression "((param_4 & 3) != 1)" ( (binary_expression "(param_4 & 3) != 1" (parenthesized_expression "(param_4 & 3)" ( (binary_expression "param_4 & 3" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))" ( (binary_expression "dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)" identifier < (pointer_expression "*(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)" * (cast_expression "(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0x1bc48) + -0x730)" ( (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x730" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal) ))))) ))) )) (compound_statement "{\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }" { (expression_statement "uVar33 = FUN_0001ccd0(dVar27);" (assignment_expression "uVar33 = FUN_0001ccd0(dVar27)" identifier = (call_expression "FUN_0001ccd0(dVar27)" identifier (argument_list "(dVar27)" ( identifier )))) ;) (expression_statement "iVar18 = (int)((ulonglong)uVar33 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)uVar33 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar33 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar33 >> 0x20)" ( (binary_expression "(ulonglong)uVar33 >> 0x20" (cast_expression "(ulonglong)uVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = (uint)uVar33;" (assignment_expression "uVar14 = (uint)uVar33" identifier = (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "dVar28 = (double)FUN_0001cd70(iVar18,uVar14);" (assignment_expression "dVar28 = (double)FUN_0001cd70(iVar18,uVar14)" identifier = (cast_expression "(double)FUN_0001cd70(iVar18,uVar14)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70(iVar18,uVar14)" identifier (argument_list "(iVar18,uVar14)" ( identifier , identifier ))))) ;) (if_statement "if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }" if (parenthesized_expression "(((param_4 & 3) == 0) && (dVar27 != dVar28))" ( (binary_expression "((param_4 & 3) == 0) && (dVar27 != dVar28)" (parenthesized_expression "((param_4 & 3) == 0)" ( (binary_expression "(param_4 & 3) == 0" (parenthesized_expression "(param_4 & 3)" ( (binary_expression "param_4 & 3" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(dVar27 != dVar28)" ( (binary_expression "dVar27 != dVar28" identifier != identifier) ))) )) (compound_statement "{\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }" { (expression_statement "dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);" (assignment_expression "dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18)" identifier = (cast_expression "(double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18)" identifier (argument_list "((uint)(uVar14 + 1 < uVar14) + iVar18)" ( (binary_expression "(uint)(uVar14 + 1 < uVar14) + iVar18" (call_expression "(uint)(uVar14 + 1 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 + 1 < uVar14)" ( (binary_expression "uVar14 + 1 < uVar14" (binary_expression "uVar14 + 1" identifier + number_literal) < identifier) ))) + identifier) ))))) ;) })) })) (expression_statement "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" ( (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" * (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" * (cast_expression "(code **)(puVar23 + 0x1bdb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bdb4)" ( (binary_expression "puVar23 + 0x1bdb4" identifier + number_literal) ))))) )) (argument_list "(iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7bc" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);" (assignment_expression "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar10)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "uVar14 = uVar8;" (assignment_expression "uVar14 = uVar8" identifier = identifier) ;) }) (else_clause "else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }" else (compound_statement "{\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "dVar28 = (double)uVar20;" (assignment_expression "dVar28 = (double)uVar20" identifier = (cast_expression "(double)uVar20" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (do_statement "do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);" do (compound_statement "{\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      }" { (expression_statement "dVar29 = dVar28;" (assignment_expression "dVar29 = dVar28" identifier = identifier) ;) (expression_statement "dVar28 = dVar29 * (double)uVar20;" (assignment_expression "dVar28 = dVar29 * (double)uVar20" identifier = (binary_expression "dVar29 * (double)uVar20" identifier * (cast_expression "(double)uVar20" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (dVar27 < dVar28) break;" if (parenthesized_expression "(dVar27 < dVar28)" ( (binary_expression "dVar27 < dVar28" identifier < identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar18 != 8)" ( (binary_expression "iVar18 != 8" identifier != number_literal) )) ;) (expression_statement "dVar27 = dVar27 / dVar29;" (assignment_expression "dVar27 = dVar27 / dVar29" identifier = (binary_expression "dVar27 / dVar29" identifier / identifier)) ;) (expression_statement "uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;" (assignment_expression "uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1" identifier = (binary_expression "(uVar13 == 0) + 1 + uStack_98 + 1" (binary_expression "(uVar13 == 0) + 1 + uStack_98" (binary_expression "(uVar13 == 0) + 1" (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) + number_literal) + identifier) + number_literal)) ;) (if_statement "if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (compound_statement "{\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }" { (expression_statement "(**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" ( (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" * (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" * (cast_expression "(code **)(puVar23 + 0x1bdb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bdb4)" ( (binary_expression "puVar23 + 0x1bdb4" identifier + number_literal) ))))) )) (argument_list "(iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7b4" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);" (assignment_expression "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar10)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (if_statement "if (uVar8 <= uVar14) goto LAB_00015d0c;" if (parenthesized_expression "(uVar8 <= uVar14)" ( (binary_expression "uVar8 <= uVar14" identifier <= identifier) )) (goto_statement "goto LAB_00015d0c;" goto statement_identifier ;)) (expression_statement "dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);" (assignment_expression "dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728)" identifier = (pointer_expression "*(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728)" * (cast_expression "(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar23 + 0x1bc48) + -0x728)" ( (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x728" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dVar28 = dVar27 * dVar29;" (assignment_expression "dVar28 = dVar27 * dVar29" identifier = (binary_expression "dVar27 * dVar29" identifier * identifier)) ;) }) (else_clause "else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }" else (compound_statement "{\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }" { (expression_statement "iVar9 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar9 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" identifier = identifier) ;) (if_statement "if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }" if (parenthesized_expression "(*(double *)(iVar9 + -0x730) <= dVar27)" ( (binary_expression "*(double *)(iVar9 + -0x730) <= dVar27" (pointer_expression "*(double *)(iVar9 + -0x730)" * (cast_expression "(double *)(iVar9 + -0x730)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x730)" ( (binary_expression "iVar9 + -0x730" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }" { (labeled_statement "LAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);" statement_identifier : (expression_statement "iVar16 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar16 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }" else (compound_statement "{\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }" { (expression_statement "lVar30 = FUN_0001ccd0(dVar27);" (assignment_expression "lVar30 = FUN_0001ccd0(dVar27)" identifier = (call_expression "FUN_0001ccd0(dVar27)" identifier (argument_list "(dVar27)" ( identifier )))) ;) (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" identifier = identifier) ;) (expression_statement "dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);" (assignment_expression "dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" identifier = (cast_expression "(double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" identifier (argument_list "((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" ( (cast_expression "(int)((ulonglong)lVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)lVar30" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (if_statement "if (uVar6 != 0) goto LAB_000159a0;" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000159a0;" goto statement_identifier ;)) (expression_statement "iVar16 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar16 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;) (if_statement "if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }" if (parenthesized_expression "(dVar28 != dVar27)" ( (binary_expression "dVar28 != dVar27" identifier != identifier) )) (compound_statement "{\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }" { (expression_statement "dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));" (assignment_expression "dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" identifier = (cast_expression "(double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" identifier (argument_list "((int)((ulonglong)(lVar30 + 1) >> 0x20))" ( (cast_expression "(int)((ulonglong)(lVar30 + 1) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(lVar30 + 1) >> 0x20)" ( (binary_expression "(ulonglong)(lVar30 + 1) >> 0x20" (call_expression "(ulonglong)(lVar30 + 1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar30 + 1)" ( (binary_expression "lVar30 + 1" identifier + number_literal) ))) >> number_literal) ))) ))))) ;) (goto_statement "goto LAB_000159a0;" goto statement_identifier ;) })) }))) (expression_statement "(**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" ( (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" * (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" * (cast_expression "(code **)(puVar23 + 0x1bdb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bdb4)" ( (binary_expression "puVar23 + 0x1bdb4" identifier + number_literal) ))))) )) (argument_list "(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27)" ( identifier , number_literal , number_literal , (binary_expression "iVar16 + -0x7b4" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);" (assignment_expression "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar10)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "dVar27 = dVar28;" (assignment_expression "dVar27 = dVar28" identifier = identifier) ;) (if_statement "if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }" if (parenthesized_expression "(uVar14 < uVar8)" ( (binary_expression "uVar14 < uVar8" identifier < identifier) )) (compound_statement "{\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }" { (expression_statement "iVar16 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar16 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = dVar28 * *(double *)(iVar16 + -0x728);" (assignment_expression "dVar28 = dVar28 * *(double *)(iVar16 + -0x728)" identifier = (binary_expression "dVar28 * *(double *)(iVar16 + -0x728)" identifier * (pointer_expression "*(double *)(iVar16 + -0x728)" * (cast_expression "(double *)(iVar16 + -0x728)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + -0x728)" ( (binary_expression "iVar16 + -0x728" identifier + number_literal) )))))) ;) }) (else_clause "else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }" else (compound_statement "{\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }" { (labeled_statement "LAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }" statement_identifier : (if_statement "if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }" if (parenthesized_expression "(((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0'))" ( (binary_expression "((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -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 "(*(char *)(iVar10 + uVar8 + -1) != '0')" ( (binary_expression "*(char *)(iVar10 + uVar8 + -1) != '0'" (pointer_expression "*(char *)(iVar10 + uVar8 + -1)" * (cast_expression "(char *)(iVar10 + uVar8 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + uVar8 + -1)" ( (binary_expression "iVar10 + uVar8 + -1" (binary_expression "iVar10 + uVar8" identifier + identifier) + number_literal) )))) != (char_literal "'0'" ' character ')) ))) )) (compound_statement "{\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }" { (expression_statement "uVar14 = uVar8 - (uStack_98 + 1);" (assignment_expression "uVar14 = uVar8 - (uStack_98 + 1)" identifier = (binary_expression "uVar8 - (uStack_98 + 1)" identifier - (parenthesized_expression "(uStack_98 + 1)" ( (binary_expression "uStack_98 + 1" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0001572c;" goto statement_identifier ;) }))) (expression_statement "iVar16 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar16 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;) (expression_statement "dVar29 = *(double *)(iVar16 + -0x728);" (assignment_expression "dVar29 = *(double *)(iVar16 + -0x728)" identifier = (pointer_expression "*(double *)(iVar16 + -0x728)" * (cast_expression "(double *)(iVar16 + -0x728)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + -0x728)" ( (binary_expression "iVar16 + -0x728" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = dVar27 * dVar29;" (assignment_expression "dVar28 = dVar27 * dVar29" identifier = (binary_expression "dVar27 * dVar29" identifier * identifier)) ;) (if_statement "if (uVar6 == 1) goto LAB_00015a5c;" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00015a5c;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar9 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;) }))) (expression_statement "dVar29 = *(double *)(iVar16 + -0x728);" (assignment_expression "dVar29 = *(double *)(iVar16 + -0x728)" identifier = (pointer_expression "*(double *)(iVar16 + -0x728)" * (cast_expression "(double *)(iVar16 + -0x728)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + -0x728)" ( (binary_expression "iVar16 + -0x728" identifier + number_literal) ))))) ;) (if_statement "if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }" if (parenthesized_expression "(dVar28 < *(double *)(iVar9 + -0x730))" ( (binary_expression "dVar28 < *(double *)(iVar9 + -0x730)" identifier < (pointer_expression "*(double *)(iVar9 + -0x730)" * (cast_expression "(double *)(iVar9 + -0x730)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -0x730)" ( (binary_expression "iVar9 + -0x730" identifier + number_literal) ))))) )) (compound_statement "{\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }" { (expression_statement "lVar30 = FUN_0001ccd0(dVar28);" (assignment_expression "lVar30 = FUN_0001ccd0(dVar28)" identifier = (call_expression "FUN_0001ccd0(dVar28)" identifier (argument_list "(dVar28)" ( identifier )))) ;) (expression_statement "dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);" (assignment_expression "dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" identifier = (cast_expression "(double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" identifier (argument_list "((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" ( (cast_expression "(int)((ulonglong)lVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)lVar30" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (if_statement "if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }" if (parenthesized_expression "((uVar6 == 0) && (dVar27 != dVar28))" ( (binary_expression "(uVar6 == 0) && (dVar27 != dVar28)" (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) && (parenthesized_expression "(dVar27 != dVar28)" ( (binary_expression "dVar27 != dVar28" identifier != identifier) ))) )) (compound_statement "{\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }" { (expression_statement "dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));" (assignment_expression "dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" identifier = (cast_expression "(double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" ( (type_descriptor "double" primitive_type) ) (call_expression "FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" identifier (argument_list "((int)((ulonglong)(lVar30 + 1) >> 0x20))" ( (cast_expression "(int)((ulonglong)(lVar30 + 1) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(lVar30 + 1) >> 0x20)" ( (binary_expression "(ulonglong)(lVar30 + 1) >> 0x20" (call_expression "(ulonglong)(lVar30 + 1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar30 + 1)" ( (binary_expression "lVar30 + 1" identifier + number_literal) ))) >> number_literal) ))) ))))) ;) })) (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" identifier = identifier) ;) (expression_statement "dVar29 = *(double *)(iVar16 + -0x728);" (assignment_expression "dVar29 = *(double *)(iVar16 + -0x728)" identifier = (pointer_expression "*(double *)(iVar16 + -0x728)" * (cast_expression "(double *)(iVar16 + -0x728)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + -0x728)" ( (binary_expression "iVar16 + -0x728" identifier + number_literal) ))))) ;) })) }))) (labeled_statement "LAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);" statement_identifier : (expression_statement "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" ( (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" * (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" * (cast_expression "(code **)(puVar23 + 0x1bdb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bdb4)" ( (binary_expression "puVar23 + 0x1bdb4" identifier + number_literal) ))))) )) (argument_list "(iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29)" ( identifier , number_literal , number_literal , (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7bc" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) )))) + number_literal) , (binary_expression "dVar28 / dVar29" identifier / identifier) ))) ;)) (expression_statement "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);" (assignment_expression "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar10)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iVar10)" ( identifier )))) ;) (expression_statement "uVar14 = uVar8;" (assignment_expression "uVar14 = uVar8" identifier = identifier) ;) }))) (labeled_statement "LAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;" statement_identifier : (expression_statement "pcVar25 = pcStack_b0 + -uVar8;" (assignment_expression "pcVar25 = pcStack_b0 + -uVar8" identifier = (binary_expression "pcStack_b0 + -uVar8" identifier + (unary_expression "-uVar8" - identifier))) ;)) (expression_statement "(**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);" (call_expression "(**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef8))" ( (pointer_expression "**(code **)(puVar23 + 0x1bef8)" * (pointer_expression "*(code **)(puVar23 + 0x1bef8)" * (cast_expression "(code **)(puVar23 + 0x1bef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef8)" ( (binary_expression "puVar23 + 0x1bef8" identifier + number_literal) ))))) )) (argument_list "(pcVar25,iVar10,uVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar4 = pcVar25 + uVar14;" (assignment_expression "pcVar4 = pcVar25 + uVar14" identifier = (binary_expression "pcVar25 + uVar14" identifier + identifier)) ;) }))) (if_statement "if ((param_4 & 4) != 0) {\n    uVar6 = (int)pcVar4 - (int)pcVar25;\n    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);\n    uVar14 = 0xffffffff;\n    while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }\n    pcVar25 = pcVar4 + -uVar6;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);\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    uVar6 = (int)pcVar4 - (int)pcVar25;\n    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);\n    uVar14 = 0xffffffff;\n    while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }\n    pcVar25 = pcVar4 + -uVar6;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);\n  }" { (expression_statement "uVar6 = (int)pcVar4 - (int)pcVar25;" (assignment_expression "uVar6 = (int)pcVar4 - (int)pcVar25" identifier = (binary_expression "(int)pcVar4 - (int)pcVar25" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);" (assignment_expression "iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4)" identifier = (call_expression "(**(code **)(puVar23 + 0x1be70))(iStack_a4)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" ( (pointer_expression "**(code **)(puVar23 + 0x1be70)" * (pointer_expression "*(code **)(puVar23 + 0x1be70)" * (cast_expression "(code **)(puVar23 + 0x1be70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be70)" ( (binary_expression "puVar23 + 0x1be70" identifier + number_literal) ))))) )) (argument_list "(iStack_a4)" ( identifier )))) ;) (expression_statement "(**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);" (call_expression "(**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be80))" ( (pointer_expression "**(code **)(puVar23 + 0x1be80)" * (pointer_expression "*(code **)(puVar23 + 0x1be80)" * (cast_expression "(code **)(puVar23 + 0x1be80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1be80)" ( (binary_expression "puVar23 + 0x1be80" identifier + number_literal) ))))) )) (argument_list "(auStack_88,pcVar25,uVar6,0x29)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "uVar14 = 0xffffffff;" (assignment_expression "uVar14 = 0xffffffff" identifier = number_literal) ;) (while_statement "while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }" { (expression_statement "uVar8 = (uint)*pbVar21;" (assignment_expression "uVar8 = (uint)*pbVar21" identifier = (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }" { (expression_statement "uVar14 = uVar8;" (assignment_expression "uVar14 = uVar8" identifier = identifier) ;) (if_statement "if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }" if (parenthesized_expression "(0x7e < uVar8)" ( (binary_expression "0x7e < uVar8" number_literal < identifier) )) (compound_statement "{\n          uVar14 = uVar6;\n        }" { (expression_statement "uVar14 = uVar6;" (assignment_expression "uVar14 = uVar6" identifier = identifier) ;) })) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) })) (if_statement "if (uVar6 < uVar14) break;" if (parenthesized_expression "(uVar6 < uVar14)" ( (binary_expression "uVar6 < uVar14" identifier < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = uVar6 - uVar14;" (assignment_expression "uVar6 = uVar6 - uVar14" identifier = (binary_expression "uVar6 - uVar14" identifier - identifier)) ;) (expression_statement "pcVar25 = pcVar4 + -uVar14;" (assignment_expression "pcVar25 = pcVar4 + -uVar14" identifier = (binary_expression "pcVar4 + -uVar14" identifier + (unary_expression "-uVar14" - identifier))) ;) (expression_statement "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);" (call_expression "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef0))" ( (pointer_expression "**(code **)(puVar23 + 0x1bef0)" * (pointer_expression "*(code **)(puVar23 + 0x1bef0)" * (cast_expression "(code **)(puVar23 + 0x1bef0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef0)" ( (binary_expression "puVar23 + 0x1bef0" identifier + number_literal) ))))) )) (argument_list "(pcVar25,auStack_88 + uVar6,uVar14)" ( identifier , (binary_expression "auStack_88 + uVar6" identifier + identifier) , identifier ))) ;) (if_statement "if (uVar6 == 0) goto LAB_0001575c;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001575c;" goto statement_identifier ;)) (expression_statement "pcVar4 = pcVar25 + -iVar9;" (assignment_expression "pcVar4 = pcVar25 + -iVar9" identifier = (binary_expression "pcVar25 + -iVar9" identifier + (unary_expression "-iVar9" - identifier))) ;) (expression_statement "(**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);" (call_expression "(**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef0))" ( (pointer_expression "**(code **)(puVar23 + 0x1bef0)" * (pointer_expression "*(code **)(puVar23 + 0x1bef0)" * (cast_expression "(code **)(puVar23 + 0x1bef0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef0)" ( (binary_expression "puVar23 + 0x1bef0" identifier + number_literal) ))))) )) (argument_list "(pcVar4,iStack_a4,iVar9)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pcVar25 = pcVar4 + -uVar6;" (assignment_expression "pcVar25 = pcVar4 + -uVar6" identifier = (binary_expression "pcVar4 + -uVar6" identifier + (unary_expression "-uVar6" - identifier))) ;) (expression_statement "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);" (call_expression "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef0))" ( (pointer_expression "**(code **)(puVar23 + 0x1bef0)" * (pointer_expression "*(code **)(puVar23 + 0x1bef0)" * (cast_expression "(code **)(puVar23 + 0x1bef0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1bef0)" ( (binary_expression "puVar23 + 0x1bef0" identifier + number_literal) ))))) )) (argument_list "(pcVar25,auStack_88,uVar6)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_0001575c:\n  if ((param_4 & 0x80) == 0) goto LAB_00015784;" statement_identifier : (if_statement "if ((param_4 & 0x80) == 0) goto LAB_00015784;" 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_00015784;" goto statement_identifier ;))) (if_statement "if ((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))) {\n    iVar18 = 1;\n    uVar14 = 1;\n    piVar7 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);\n    if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }\n    pcVar4 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar11;\n  }\n  else {\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }" if (parenthesized_expression "((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12))))" ( (binary_expression "(iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))" (parenthesized_expression "(iVar18 == -1)" ( (binary_expression "iVar18 == -1" identifier == number_literal) )) && (parenthesized_expression "((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))" ( (parenthesized_expression "(local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12))" ( (binary_expression "local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)" (binary_expression "local_10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar18 = 0, 1 < uVar12)" ( (comma_expression "iVar18 = 0, 1 < uVar12" (assignment_expression "iVar18 = 0" identifier = number_literal) , (binary_expression "1 < uVar12" number_literal < identifier)) ))) )) ))) )) (compound_statement "{\n    iVar18 = 1;\n    uVar14 = 1;\n    piVar7 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);\n    if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }\n    pcVar4 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar11;\n  }" { (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" identifier = number_literal) ;) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "piVar7 = (int *)0x0;" (assignment_expression "piVar7 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);" do (compound_statement "{\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    }" { (expression_statement "uVar34 = (ulonglong)uVar14;" (assignment_expression "uVar34 = (ulonglong)uVar14" identifier = (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "uVar14 = (uint)(uVar34 * uVar20);" (assignment_expression "uVar14 = (uint)(uVar34 * uVar20)" identifier = (call_expression "(uint)(uVar34 * uVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar34 * uVar20)" ( (binary_expression "uVar34 * uVar20" identifier * identifier) )))) ;) (expression_statement "piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));" (assignment_expression "piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20))" identifier = (cast_expression "(int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20))" ( (binary_expression "uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20)" (binary_expression "uVar20 * (int)piVar7" identifier * (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) + (cast_expression "(int)(uVar34 * uVar20 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar34 * uVar20 >> 0x20)" ( (binary_expression "uVar34 * uVar20 >> 0x20" (binary_expression "uVar34 * uVar20" identifier * identifier) >> number_literal) )))) )))) ;) (if_statement "if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;" if (parenthesized_expression "((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14))))" ( (binary_expression "(local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))" (parenthesized_expression "(local_10 <= piVar7)" ( (binary_expression "local_10 <= piVar7" identifier <= identifier) )) && (parenthesized_expression "((local_10 != piVar7 || (uVar12 <= uVar14)))" ( (parenthesized_expression "(local_10 != piVar7 || (uVar12 <= uVar14))" ( (binary_expression "local_10 != piVar7 || (uVar12 <= uVar14)" (binary_expression "local_10 != piVar7" identifier != identifier) || (parenthesized_expression "(uVar12 <= uVar14)" ( (binary_expression "uVar12 <= uVar14" identifier <= identifier) ))) )) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 8)" ( (binary_expression "iVar18 != 8" identifier != number_literal) )) ;) (if_statement "if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\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_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }" { (labeled_statement "LAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);" statement_identifier : (expression_statement "pcStack_b0 = (char *)(iVar10 + 0x288);" (assignment_expression "pcStack_b0 = (char *)(iVar10 + 0x288)" identifier = (cast_expression "(char *)(iVar10 + 0x288)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x288)" ( (binary_expression "iVar10 + 0x288" identifier + number_literal) )))) ;)) (expression_statement "*(undefined1 *)(iVar10 + 0x287) = 0x20;" (assignment_expression "*(undefined1 *)(iVar10 + 0x287) = 0x20" (pointer_expression "*(undefined1 *)(iVar10 + 0x287)" * (cast_expression "(undefined1 *)(iVar10 + 0x287)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x287)" ( (binary_expression "iVar10 + 0x287" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00015be8;" goto statement_identifier ;) })) (labeled_statement "LAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);" statement_identifier : (expression_statement "iVar10 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar10 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) ;)) (if_statement "if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }" if (parenthesized_expression "((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1))" ( (binary_expression "(uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)" (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)" ( (comma_expression "iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1" (assignment_expression "iVar10 = *(int *)(puVar23 + 0x1bc48)" identifier = (pointer_expression "*(int *)(puVar23 + 0x1bc48)" * (cast_expression "(int *)(puVar23 + 0x1bc48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1bc48)" ( (binary_expression "puVar23 + 0x1bc48" identifier + number_literal) ))))) , (binary_expression "iVar18 == 1" identifier == number_literal)) ))) )) (compound_statement "{\n      cVar11 = 'k';\n    }" { (expression_statement "cVar11 = 'k';" (assignment_expression "cVar11 = 'k'" identifier = (char_literal "'k'" ' character ')) ;) }) (else_clause "else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }" else (compound_statement "{\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }" { (expression_statement "cVar11 = *(char *)(iVar18 + iVar10 + -0x748);" (assignment_expression "cVar11 = *(char *)(iVar18 + iVar10 + -0x748)" identifier = (pointer_expression "*(char *)(iVar18 + iVar10 + -0x748)" * (cast_expression "(char *)(iVar18 + iVar10 + -0x748)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + iVar10 + -0x748)" ( (binary_expression "iVar18 + iVar10 + -0x748" (binary_expression "iVar18 + iVar10" identifier + identifier) + number_literal) ))))) ;) }))) (expression_statement "pcVar4 = pcStack_b0 + 1;" (assignment_expression "pcVar4 = pcStack_b0 + 1" identifier = (binary_expression "pcStack_b0 + 1" identifier + number_literal)) ;) (expression_statement "*pcStack_b0 = cVar11;" (assignment_expression "*pcStack_b0 = cVar11" (pointer_expression "*pcStack_b0" * identifier) = identifier) ;) }) (else_clause "else {\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }" else (compound_statement "{\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }" { (if_statement "if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;" if (parenthesized_expression "((param_4 & 0x100) == 0 && iVar18 == 0)" ( (binary_expression "(param_4 & 0x100) == 0 && iVar18 == 0" (binary_expression "(param_4 & 0x100) == 0" (parenthesized_expression "(param_4 & 0x100)" ( (binary_expression "param_4 & 0x100" identifier & number_literal) )) == number_literal) && (binary_expression "iVar18 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00015784;" goto statement_identifier ;)) (if_statement "if ((param_4 & 0x40) != 0) goto LAB_00015bdc;" 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_00015bdc;" goto statement_identifier ;)) (labeled_statement "LAB_00015be8:\n    pcVar4 = pcStack_b0;" statement_identifier : (expression_statement "pcVar4 = pcStack_b0;" (assignment_expression "pcVar4 = pcStack_b0" identifier = identifier) ;)) (if_statement "if (iVar18 != 0) goto LAB_00015bf0;" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00015bf0;" goto statement_identifier ;)) }))) (expression_statement "pcStack_b0 = pcVar4;" (assignment_expression "pcStack_b0 = pcVar4" identifier = identifier) ;) (if_statement "if ((param_4 & 0x100) != 0) {\n    pcVar15 = pcVar4 + 1;\n    pcStack_b0 = pcVar15;\n    if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }\n    *pcVar4 = 'B';\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 "{\n    pcVar15 = pcVar4 + 1;\n    pcStack_b0 = pcVar15;\n    if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }\n    *pcVar4 = 'B';\n  }" { (expression_statement "pcVar15 = pcVar4 + 1;" (assignment_expression "pcVar15 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "pcStack_b0 = pcVar15;" (assignment_expression "pcStack_b0 = pcVar15" identifier = identifier) ;) (if_statement "if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }" if (parenthesized_expression "((uVar13 != 0) && (iVar18 != 0))" ( (binary_expression "(uVar13 != 0) && (iVar18 != 0)" (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }" { (expression_statement "pcStack_b0 = pcVar4 + 2;" (assignment_expression "pcStack_b0 = pcVar4 + 2" identifier = (binary_expression "pcVar4 + 2" identifier + number_literal)) ;) (expression_statement "*pcVar4 = 'i';" (assignment_expression "*pcVar4 = 'i'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'i'" ' character ')) ;) (expression_statement "pcVar4 = pcVar15;" (assignment_expression "pcVar4 = pcVar15" identifier = identifier) ;) })) (expression_statement "*pcVar4 = 'B';" (assignment_expression "*pcVar4 = 'B'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'B'" ' character ')) ;) })) (labeled_statement "LAB_00015784:\n  while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }" statement_identifier : (while_statement "while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }" { (expression_statement "*pcStack_b0 = '\0';" (assignment_expression "*pcStack_b0 = '\0'" (pointer_expression "*pcStack_b0" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (iStack_5c == *piVar5) break;" if (parenthesized_expression "(iStack_5c == *piVar5)" ( (binary_expression "iStack_5c == *piVar5" identifier == (pointer_expression "*piVar5" * identifier)) )) (break_statement "break;" break ;)) (expression_statement "pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();" (assignment_expression "pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))()" identifier = (cast_expression "(char *)(**(code **)(puVar23 + 0x1becc))()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar23 + 0x1becc))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1becc))" ( (pointer_expression "**(code **)(puVar23 + 0x1becc)" * (pointer_expression "*(code **)(puVar23 + 0x1becc)" * (cast_expression "(code **)(puVar23 + 0x1becc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1becc)" ( (binary_expression "puVar23 + 0x1becc" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }))) (return_statement "return pcVar25;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (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 = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT * LIT) >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT * LIT) < (binary_expression IDENT * LIT)) ))) + (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT << LIT)) ))) + IDENT) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT * LIT) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (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 = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT * LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (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) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT % IDENT) )) * LIT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT < (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + IDENT))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (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 IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (char_literal ' character '))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) (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) + (char_literal ' character '))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (goto_statement goto statement_identifier ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) + IDENT) != LIT) )) + IDENT) )))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + 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 , IDENT , LIT , LIT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }) while (parenthesized_expression ( (binary_expression LIT < IDENT) )) ;)) }) (else_clause else (compound_statement { (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 (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) < LIT) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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) )) == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) != LIT) || (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression ~ IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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 { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) , (cast_expression ( (type_descriptor TYPE) ) 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 == (call_expression IDENT (argument_list ( IDENT , IDENT )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) < IDENT) ))) + IDENT) ))))) ;) })) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (break_statement break ;)) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) + LIT) + IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) }) (else_clause else (compound_statement { (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) ))) ))))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) ))) ))))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }))) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression IDENT / IDENT) ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (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 (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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 (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (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 (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (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 (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression LIT < IDENT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) >> LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) && (binary_expression IDENT == LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (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 IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) })) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "char * open_safer(undefined4 param_1,uint param_2,int param_3,uint param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint extraout_v1;\n  uint uVar14;\n  char extraout_v1_01;\n  int extraout_v1_00;\n  char *pcVar15;\n  int iVar16;\n  uint uVar17;\n  int iVar18;\n  uint uVar19;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  char *pcVar25;\n  uint uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  ulonglong uVar34;\n  int local_res8;\n  uint local_resc;\n  char *pcStack_b0;\n  int iStack_a4;\n  uint uStack_98;\n  int iStack_90;\n  undefined1 auStack_88 [44];\n  int iStack_5c;\n  undefined *puStack_58;\n  uint uStack_14;\n  int *local_10;\n  \n  puVar2 = PTR___stack_chk_guard_000313bc;\n  uVar12 = *(uint *)PTR___stack_chk_guard_000313bc;\n  iVar10 = param_3;\n  piVar5 = &local_res8;\n  if ((param_2 & 0x100) == 0) {\n    iVar10 = 0;\n    piVar5 = local_10;\n  }\n  local_10 = piVar5;\n  local_res8 = param_3;\n  local_resc = param_4;\n  uVar3 = (*(code *)PTR_open64_00031330)();\n  pcVar4 = (char *)fd_safer(uVar3);\n  if (uVar12 == *(uint *)puVar2) {\n    return pcVar4;\n  }\n  uVar14 = uVar12;\n  puVar23 = PTR___stack_chk_fail_0003139c;\n  (*(code *)PTR___stack_chk_fail_0003139c)();\n  piVar5 = *(int **)(puVar23 + 0x1beec);\n  uVar13 = param_4 & 0x20;\n  uVar20 = 0x400;\n  iStack_5c = *piVar5;\n  uVar6 = param_4 & 3;\n  puStack_58 = puVar2;\n  if (uVar13 == 0) {\n    uVar20 = 1000;\n  }\n  piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))();\n  iStack_90 = *piVar7;\n  uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);\n  if (0xf < uStack_98 - 1) {\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }\n  iStack_a4 = piVar7[1];\n  pbVar21 = (byte *)piVar7[2];\n  uVar8 = (**(code **)(puVar23 + 0x1be70))();\n  if (0x10 < uVar8) {\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }\n  pcStack_b0 = (char *)(iVar10 + 0x287);\n  if ((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))) {\n    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);\n    uVar8 = (uint)(uVar31 >> 0x20);\n    uVar17 = (uint)uVar31;\n    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);\n    iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar19 = (uint)uVar33;\n    uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;\n    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);\n    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);\n    uVar14 = extraout_v1;\n    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }\nLAB_00015d94:\n    pcVar4 = pcStack_b0;\n    if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }\n    if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }\n  }\n  else {\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }\n  if ((param_4 & 4) != 0) {\n    uVar6 = (int)pcVar4 - (int)pcVar25;\n    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);\n    uVar14 = 0xffffffff;\n    while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }\n    pcVar25 = pcVar4 + -uVar6;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);\n  }\nLAB_0001575c:\n  if ((param_4 & 0x80) == 0) goto LAB_00015784;\n  if ((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))) {\n    iVar18 = 1;\n    uVar14 = 1;\n    piVar7 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);\n    if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }\n    pcVar4 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar11;\n  }\n  else {\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }\n  pcStack_b0 = pcVar4;\n  if ((param_4 & 0x100) != 0) {\n    pcVar15 = pcVar4 + 1;\n    pcStack_b0 = pcVar15;\n    if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }\n    *pcVar4 = 'B';\n  }\nLAB_00015784:\n  while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }\n  return pcVar25;\n}" (primitive_type "char") (pointer_declarator "* open_safer(undefined4 param_1,uint param_2,int param_3,uint param_4)" (* "*") (function_declarator "open_safer(undefined4 param_1,uint param_2,int param_3,uint param_4)" (identifier "open_safer") (parameter_list "(undefined4 param_1,uint param_2,int param_3,uint param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) () ")")))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int *piVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  uint uVar12;\n  uint uVar13;\n  uint extraout_v1;\n  uint uVar14;\n  char extraout_v1_01;\n  int extraout_v1_00;\n  char *pcVar15;\n  int iVar16;\n  uint uVar17;\n  int iVar18;\n  uint uVar19;\n  uint uVar20;\n  byte *pbVar21;\n  uint uVar22;\n  undefined *puVar23;\n  code *pcVar24;\n  char *pcVar25;\n  uint uVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  ulonglong uVar34;\n  int local_res8;\n  uint local_resc;\n  char *pcStack_b0;\n  int iStack_a4;\n  uint uStack_98;\n  int iStack_90;\n  undefined1 auStack_88 [44];\n  int iStack_5c;\n  undefined *puStack_58;\n  uint uStack_14;\n  int *local_10;\n  \n  puVar2 = PTR___stack_chk_guard_000313bc;\n  uVar12 = *(uint *)PTR___stack_chk_guard_000313bc;\n  iVar10 = param_3;\n  piVar5 = &local_res8;\n  if ((param_2 & 0x100) == 0) {\n    iVar10 = 0;\n    piVar5 = local_10;\n  }\n  local_10 = piVar5;\n  local_res8 = param_3;\n  local_resc = param_4;\n  uVar3 = (*(code *)PTR_open64_00031330)();\n  pcVar4 = (char *)fd_safer(uVar3);\n  if (uVar12 == *(uint *)puVar2) {\n    return pcVar4;\n  }\n  uVar14 = uVar12;\n  puVar23 = PTR___stack_chk_fail_0003139c;\n  (*(code *)PTR___stack_chk_fail_0003139c)();\n  piVar5 = *(int **)(puVar23 + 0x1beec);\n  uVar13 = param_4 & 0x20;\n  uVar20 = 0x400;\n  iStack_5c = *piVar5;\n  uVar6 = param_4 & 3;\n  puStack_58 = puVar2;\n  if (uVar13 == 0) {\n    uVar20 = 1000;\n  }\n  piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))();\n  iStack_90 = *piVar7;\n  uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);\n  if (0xf < uStack_98 - 1) {\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }\n  iStack_a4 = piVar7[1];\n  pbVar21 = (byte *)piVar7[2];\n  uVar8 = (**(code **)(puVar23 + 0x1be70))();\n  if (0x10 < uVar8) {\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }\n  pcStack_b0 = (char *)(iVar10 + 0x287);\n  if ((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))) {\n    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);\n    uVar8 = (uint)(uVar31 >> 0x20);\n    uVar17 = (uint)uVar31;\n    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);\n    iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar19 = (uint)uVar33;\n    uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;\n    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);\n    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);\n    uVar14 = extraout_v1;\n    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }\nLAB_00015d94:\n    pcVar4 = pcStack_b0;\n    if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }\n    if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }\n  }\n  else {\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }\n  if ((param_4 & 4) != 0) {\n    uVar6 = (int)pcVar4 - (int)pcVar25;\n    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);\n    uVar14 = 0xffffffff;\n    while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }\n    pcVar25 = pcVar4 + -uVar6;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);\n  }\nLAB_0001575c:\n  if ((param_4 & 0x80) == 0) goto LAB_00015784;\n  if ((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))) {\n    iVar18 = 1;\n    uVar14 = 1;\n    piVar7 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);\n    if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }\n    pcVar4 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar11;\n  }\n  else {\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }\n  pcStack_b0 = pcVar4;\n  if ((param_4 & 0x100) != 0) {\n    pcVar15 = pcVar4 + 1;\n    pcStack_b0 = pcVar15;\n    if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }\n    *pcVar4 = 'B';\n  }\nLAB_00015784:\n  while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }\n  return pcVar25;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "char cVar11;" (primitive_type "char") (identifier "cVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "uint extraout_v1;" (type_identifier "uint") (identifier "extraout_v1") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "char extraout_v1_01;" (primitive_type "char") (identifier "extraout_v1_01") (; ";")) (declaration "int extraout_v1_00;" (primitive_type "int") (identifier "extraout_v1_00") (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "byte *pbVar21;" (type_identifier "byte") (pointer_declarator "*pbVar21" (* "*") (identifier "pbVar21")) (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "undefined *puVar23;" (type_identifier "undefined") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "code *pcVar24;" (type_identifier "code") (pointer_declarator "*pcVar24" (* "*") (identifier "pcVar24")) (; ";")) (declaration "char *pcVar25;" (primitive_type "char") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "uint uVar26;" (type_identifier "uint") (identifier "uVar26") (; ";")) (declaration "double dVar27;" (primitive_type "double") (identifier "dVar27") (; ";")) (declaration "double dVar28;" (primitive_type "double") (identifier "dVar28") (; ";")) (declaration "double dVar29;" (primitive_type "double") (identifier "dVar29") (; ";")) (declaration "longlong lVar30;" (type_identifier "longlong") (identifier "lVar30") (; ";")) (declaration "ulonglong uVar31;" (type_identifier "ulonglong") (identifier "uVar31") (; ";")) (declaration "longlong lVar32;" (type_identifier "longlong") (identifier "lVar32") (; ";")) (declaration "undefined8 uVar33;" (type_identifier "undefined8") (identifier "uVar33") (; ";")) (declaration "ulonglong uVar34;" (type_identifier "ulonglong") (identifier "uVar34") (; ";")) (declaration "int local_res8;" (primitive_type "int") (identifier "local_res8") (; ";")) (declaration "uint local_resc;" (type_identifier "uint") (identifier "local_resc") (; ";")) (declaration "char *pcStack_b0;" (primitive_type "char") (pointer_declarator "*pcStack_b0" (* "*") (identifier "pcStack_b0")) (; ";")) (declaration "int iStack_a4;" (primitive_type "int") (identifier "iStack_a4") (; ";")) (declaration "uint uStack_98;" (type_identifier "uint") (identifier "uStack_98") (; ";")) (declaration "int iStack_90;" (primitive_type "int") (identifier "iStack_90") (; ";")) (declaration "undefined1 auStack_88 [44];" (type_identifier "undefined1") (array_declarator "auStack_88 [44]" (identifier "auStack_88") ([ "[") (number_literal "44") (] "]")) (; ";")) (declaration "int iStack_5c;" (primitive_type "int") (identifier "iStack_5c") (; ";")) (declaration "undefined *puStack_58;" (type_identifier "undefined") (pointer_declarator "*puStack_58" (* "*") (identifier "puStack_58")) (; ";")) (declaration "uint uStack_14;" (type_identifier "uint") (identifier "uStack_14") (; ";")) (declaration "int *local_10;" (primitive_type "int") (pointer_declarator "*local_10" (* "*") (identifier "local_10")) (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_000313bc;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000313bc" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_000313bc")) (; ";")) (expression_statement "uVar12 = *(uint *)PTR___stack_chk_guard_000313bc;" (assignment_expression "uVar12 = *(uint *)PTR___stack_chk_guard_000313bc" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)PTR___stack_chk_guard_000313bc" (* "*") (cast_expression "(uint *)PTR___stack_chk_guard_000313bc" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000313bc")))) (; ";")) (expression_statement "iVar10 = param_3;" (assignment_expression "iVar10 = param_3" (identifier "iVar10") (= "=") (identifier "param_3")) (; ";")) (expression_statement "piVar5 = &local_res8;" (assignment_expression "piVar5 = &local_res8" (identifier "piVar5") (= "=") (pointer_expression "&local_res8" (& "&") (identifier "local_res8"))) (; ";")) (if_statement "if ((param_2 & 0x100) == 0) {\n    iVar10 = 0;\n    piVar5 = local_10;\n  }" (if "if") (parenthesized_expression "((param_2 & 0x100) == 0)" (( "(") (binary_expression "(param_2 & 0x100) == 0" (parenthesized_expression "(param_2 & 0x100)" (( "(") (binary_expression "param_2 & 0x100" (identifier "param_2") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar10 = 0;\n    piVar5 = local_10;\n  }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar5 = local_10;" (assignment_expression "piVar5 = local_10" (identifier "piVar5") (= "=") (identifier "local_10")) (; ";")) (} "}"))) (expression_statement "local_10 = piVar5;" (assignment_expression "local_10 = piVar5" (identifier "local_10") (= "=") (identifier "piVar5")) (; ";")) (expression_statement "local_res8 = param_3;" (assignment_expression "local_res8 = param_3" (identifier "local_res8") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_resc = param_4;" (assignment_expression "local_resc = param_4" (identifier "local_resc") (= "=") (identifier "param_4")) (; ";")) (expression_statement "uVar3 = (*(code *)PTR_open64_00031330)();" (assignment_expression "uVar3 = (*(code *)PTR_open64_00031330)()" (identifier "uVar3") (= "=") (call_expression "(*(code *)PTR_open64_00031330)()" (parenthesized_expression "(*(code *)PTR_open64_00031330)" (( "(") (pointer_expression "*(code *)PTR_open64_00031330" (* "*") (cast_expression "(code *)PTR_open64_00031330" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_open64_00031330"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar4 = (char *)fd_safer(uVar3);" (assignment_expression "pcVar4 = (char *)fd_safer(uVar3)" (identifier "pcVar4") (= "=") (cast_expression "(char *)fd_safer(uVar3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "fd_safer(uVar3)" (identifier "fd_safer") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))))) (; ";")) (if_statement "if (uVar12 == *(uint *)puVar2) {\n    return pcVar4;\n  }" (if "if") (parenthesized_expression "(uVar12 == *(uint *)puVar2)" (( "(") (binary_expression "uVar12 == *(uint *)puVar2" (identifier "uVar12") (== "==") (pointer_expression "*(uint *)puVar2" (* "*") (cast_expression "(uint *)puVar2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n    return pcVar4;\n  }" ({ "{") (return_statement "return pcVar4;" (return "return") (identifier "pcVar4") (; ";")) (} "}"))) (expression_statement "uVar14 = uVar12;" (assignment_expression "uVar14 = uVar12" (identifier "uVar14") (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar23 = PTR___stack_chk_fail_0003139c;" (assignment_expression "puVar23 = PTR___stack_chk_fail_0003139c" (identifier "puVar23") (= "=") (identifier "PTR___stack_chk_fail_0003139c")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0003139c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003139c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003139c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0003139c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0003139c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0003139c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar5 = *(int **)(puVar23 + 0x1beec);" (assignment_expression "piVar5 = *(int **)(puVar23 + 0x1beec)" (identifier "piVar5") (= "=") (pointer_expression "*(int **)(puVar23 + 0x1beec)" (* "*") (cast_expression "(int **)(puVar23 + 0x1beec)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1beec)" (( "(") (binary_expression "puVar23 + 0x1beec" (identifier "puVar23") (+ "+") (number_literal "0x1beec")) () ")"))))) (; ";")) (expression_statement "uVar13 = param_4 & 0x20;" (assignment_expression "uVar13 = param_4 & 0x20" (identifier "uVar13") (= "=") (binary_expression "param_4 & 0x20" (identifier "param_4") (& "&") (number_literal "0x20"))) (; ";")) (expression_statement "uVar20 = 0x400;" (assignment_expression "uVar20 = 0x400" (identifier "uVar20") (= "=") (number_literal "0x400")) (; ";")) (expression_statement "iStack_5c = *piVar5;" (assignment_expression "iStack_5c = *piVar5" (identifier "iStack_5c") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (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 "puStack_58 = puVar2;" (assignment_expression "puStack_58 = puVar2" (identifier "puStack_58") (= "=") (identifier "puVar2")) (; ";")) (if_statement "if (uVar13 == 0) {\n    uVar20 = 1000;\n  }" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar20 = 1000;\n  }" ({ "{") (expression_statement "uVar20 = 1000;" (assignment_expression "uVar20 = 1000" (identifier "uVar20") (= "=") (number_literal "1000")) (; ";")) (} "}"))) (expression_statement "piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))();" (assignment_expression "piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))()" (identifier "piVar7") (= "=") (cast_expression "(int *)(**(code **)(puVar23 + 0x1be00))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar23 + 0x1be00))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1be00))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1be00)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1be00)" (* "*") (cast_expression "(code **)(puVar23 + 0x1be00)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1be00)" (( "(") (binary_expression "puVar23 + 0x1be00" (identifier "puVar23") (+ "+") (number_literal "0x1be00")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iStack_90 = *piVar7;" (assignment_expression "iStack_90 = *piVar7" (identifier "iStack_90") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);" (assignment_expression "uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90)" (identifier "uStack_98") (= "=") (call_expression "(**(code **)(puVar23 + 0x1be70))(iStack_90)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1be70)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1be70)" (* "*") (cast_expression "(code **)(puVar23 + 0x1be70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1be70)" (( "(") (binary_expression "puVar23 + 0x1be70" (identifier "puVar23") (+ "+") (number_literal "0x1be70")) () ")"))))) () ")")) (argument_list "(iStack_90)" (( "(") (identifier "iStack_90") () ")")))) (; ";")) (if_statement "if (0xf < uStack_98 - 1) {\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }" (if "if") (parenthesized_expression "(0xf < uStack_98 - 1)" (( "(") (binary_expression "0xf < uStack_98 - 1" (number_literal "0xf") (< "<") (binary_expression "uStack_98 - 1" (identifier "uStack_98") (- "-") (number_literal "1"))) () ")")) (compound_statement "{\n    uStack_98 = 1;\n    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;\n  }" ({ "{") (expression_statement "uStack_98 = 1;" (assignment_expression "uStack_98 = 1" (identifier "uStack_98") (= "=") (number_literal "1")) (; ";")) (expression_statement "iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;" (assignment_expression "iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0" (identifier "iStack_90") (= "=") (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7c0" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" (* "*") (cast_expression "(int *)(puVar23 + 0x1bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1bc48)" (( "(") (binary_expression "puVar23 + 0x1bc48" (identifier "puVar23") (+ "+") (number_literal "0x1bc48")) () ")")))) (+ "+") (number_literal "-0x7c0"))) (; ";")) (} "}"))) (expression_statement "iStack_a4 = piVar7[1];" (assignment_expression "iStack_a4 = piVar7[1]" (identifier "iStack_a4") (= "=") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar21 = (byte *)piVar7[2];" (assignment_expression "pbVar21 = (byte *)piVar7[2]" (identifier "pbVar21") (= "=") (cast_expression "(byte *)piVar7[2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar7[2]" (identifier "piVar7") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "uVar8 = (**(code **)(puVar23 + 0x1be70))();" (assignment_expression "uVar8 = (**(code **)(puVar23 + 0x1be70))()" (identifier "uVar8") (= "=") (call_expression "(**(code **)(puVar23 + 0x1be70))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1be70)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1be70)" (* "*") (cast_expression "(code **)(puVar23 + 0x1be70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1be70)" (( "(") (binary_expression "puVar23 + 0x1be70" (identifier "puVar23") (+ "+") (number_literal "0x1be70")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (0x10 < uVar8) {\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }" (if "if") (parenthesized_expression "(0x10 < uVar8)" (( "(") (binary_expression "0x10 < uVar8" (number_literal "0x10") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;\n  }" ({ "{") (expression_statement "iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;" (assignment_expression "iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c" (identifier "iStack_a4") (= "=") (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0xf6c" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" (* "*") (cast_expression "(int *)(puVar23 + 0x1bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1bc48)" (( "(") (binary_expression "puVar23 + 0x1bc48" (identifier "puVar23") (+ "+") (number_literal "0x1bc48")) () ")")))) (+ "+") (number_literal "-0xf6c"))) (; ";")) (} "}"))) (expression_statement "pcStack_b0 = (char *)(iVar10 + 0x287);" (assignment_expression "pcStack_b0 = (char *)(iVar10 + 0x287)" (identifier "pcStack_b0") (= "=") (cast_expression "(char *)(iVar10 + 0x287)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x287)" (( "(") (binary_expression "iVar10 + 0x287" (identifier "iVar10") (+ "+") (number_literal "0x287")) () ")")))) (; ";")) (if_statement "if ((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))) {\n    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);\n    uVar8 = (uint)(uVar31 >> 0x20);\n    uVar17 = (uint)uVar31;\n    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);\n    iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar19 = (uint)uVar33;\n    uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;\n    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);\n    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);\n    uVar14 = extraout_v1;\n    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }\nLAB_00015d94:\n    pcVar4 = pcStack_b0;\n    if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }\n    if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }\n  }\n  else {\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }" (if "if") (parenthesized_expression "((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12))))" (( "(") (binary_expression "(&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))" (parenthesized_expression "(&_gp_1 < local_10)" (( "(") (binary_expression "&_gp_1 < local_10" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (< "<") (identifier "local_10")) () ")")) (|| "||") (parenthesized_expression "((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))" (( "(") (parenthesized_expression "(local_10 == (int *)&_gp_1 && (uStack_14 < uVar12))" (( "(") (binary_expression "local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)" (binary_expression "local_10 == (int *)&_gp_1" (identifier "local_10") (== "==") (cast_expression "(int *)&_gp_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")))) (&& "&&") (parenthesized_expression "(uStack_14 < uVar12)" (( "(") (binary_expression "uStack_14 < uVar12" (identifier "uStack_14") (< "<") (identifier "uVar12")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);\n    if (lVar30 != 0) goto LAB_00015680;\n    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);\n    uVar8 = (uint)(uVar31 >> 0x20);\n    uVar17 = (uint)uVar31;\n    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);\n    iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n    uVar19 = (uint)uVar33;\n    uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;\n    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);\n    lVar30 = lVar32 << 1;\n    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);\n    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);\n    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);\n    uVar14 = extraout_v1;\n    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }\nLAB_00015d94:\n    pcVar4 = pcStack_b0;\n    if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }\n    if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }\n  }" ({ "{") (expression_statement "lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);" (assignment_expression "lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14)" (identifier "lVar30") (= "=") (call_expression "FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14)" (identifier "FUN_0001db50") (argument_list "(local_10,uVar12,&_gp_1,uStack_14)" (( "(") (identifier "local_10") (, ",") (identifier "uVar12") (, ",") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (, ",") (identifier "uStack_14") () ")")))) (; ";")) (if_statement "if (lVar30 != 0) goto LAB_00015680;" (if "if") (parenthesized_expression "(lVar30 != 0)" (( "(") (binary_expression "lVar30 != 0" (identifier "lVar30") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015680;" (goto "goto") (statement_identifier "LAB_00015680") (; ";"))) (expression_statement "uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);" (assignment_expression "uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14)" (identifier "uVar31") (= "=") (call_expression "FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14)" (identifier "FUN_0001d6e0") (argument_list "(local_10,uVar12,&_gp_1,uStack_14)" (( "(") (identifier "local_10") (, ",") (identifier "uVar12") (, ",") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (, ",") (identifier "uStack_14") () ")")))) (; ";")) (expression_statement "uVar8 = (uint)(uVar31 >> 0x20);" (assignment_expression "uVar8 = (uint)(uVar31 >> 0x20)" (identifier "uVar8") (= "=") (call_expression "(uint)(uVar31 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar31 >> 0x20)" (( "(") (binary_expression "uVar31 >> 0x20" (identifier "uVar31") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar17 = (uint)uVar31;" (assignment_expression "uVar17 = (uint)uVar31" (identifier "uVar17") (= "=") (cast_expression "(uint)uVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar31"))) (; ";")) (expression_statement "uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);" (assignment_expression "uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17)" (identifier "uVar33") (= "=") (call_expression "FUN_0001db50(uVar14,param_2,uVar8,uVar17)" (identifier "FUN_0001db50") (argument_list "(uVar14,param_2,uVar8,uVar17)" (( "(") (identifier "uVar14") (, ",") (identifier "param_2") (, ",") (identifier "uVar8") (, ",") (identifier "uVar17") () ")")))) (; ";")) (expression_statement "iVar18 = (int)((ulonglong)uVar33 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)uVar33 >> 0x20)" (identifier "iVar18") (= "=") (cast_expression "(int)((ulonglong)uVar33 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar33 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar33 >> 0x20" (cast_expression "(ulonglong)uVar33" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar33")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar19 = (uint)uVar33;" (assignment_expression "uVar19 = (uint)uVar33" (identifier "uVar19") (= "=") (cast_expression "(uint)uVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar33"))) (; ";")) (expression_statement "uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;" (assignment_expression "uVar22 = uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2" (identifier "uVar22") (= "=") (binary_expression "uVar19 * 5 >> 0x1f |\n             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2" (binary_expression "uVar19 * 5 >> 0x1f" (binary_expression "uVar19 * 5" (identifier "uVar19") (* "*") (number_literal "5")) (>> ">>") (number_literal "0x1f")) (| "|") (binary_expression "((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2" (parenthesized_expression "((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18)" (( "(") (binary_expression "(uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18" (binary_expression "(uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2)" (call_expression "(uint)(uVar19 * 5 < uVar19 * 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar19 * 5 < uVar19 * 4)" (( "(") (binary_expression "uVar19 * 5 < uVar19 * 4" (binary_expression "uVar19 * 5" (identifier "uVar19") (* "*") (number_literal "5")) (< "<") (binary_expression "uVar19 * 4" (identifier "uVar19") (* "*") (number_literal "4"))) () ")"))) (+ "+") (parenthesized_expression "(uVar19 >> 0x1e | iVar18 << 2)" (( "(") (binary_expression "uVar19 >> 0x1e | iVar18 << 2" (binary_expression "uVar19 >> 0x1e" (identifier "uVar19") (>> ">>") (number_literal "0x1e")) (| "|") (binary_expression "iVar18 << 2" (identifier "iVar18") (<< "<<") (number_literal "2"))) () ")"))) (+ "+") (identifier "iVar18")) () ")")) (* "*") (number_literal "2")))) (; ";")) (expression_statement "lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);" (assignment_expression "lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17)" (identifier "lVar32") (= "=") (call_expression "FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17)" (identifier "FUN_0001db50") (argument_list "(uVar22,uVar19 * 10,uVar8,uVar17)" (( "(") (identifier "uVar22") (, ",") (binary_expression "uVar19 * 10" (identifier "uVar19") (* "*") (number_literal "10")) (, ",") (identifier "uVar8") (, ",") (identifier "uVar17") () ")")))) (; ";")) (expression_statement "lVar30 = lVar32 << 1;" (assignment_expression "lVar30 = lVar32 << 1" (identifier "lVar30") (= "=") (binary_expression "lVar32 << 1" (identifier "lVar32") (<< "<<") (number_literal "1"))) (; ";")) (expression_statement "uVar26 = (uint)((ulonglong)lVar30 >> 0x20);" (assignment_expression "uVar26 = (uint)((ulonglong)lVar30 >> 0x20)" (identifier "uVar26") (= "=") (call_expression "(uint)((ulonglong)lVar30 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar30 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar30")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);" (assignment_expression "uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17)" (identifier "uVar34") (= "=") (call_expression "FUN_0001d6e0(uVar14,param_2,uVar8,uVar17)" (identifier "FUN_0001d6e0") (argument_list "(uVar14,param_2,uVar8,uVar17)" (( "(") (identifier "uVar14") (, ",") (identifier "param_2") (, ",") (identifier "uVar8") (, ",") (identifier "uVar17") () ")")))) (; ";")) (expression_statement "FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);" (call_expression "FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17)" (identifier "FUN_0001d6e0") (argument_list "(uVar22,uVar19 * 10,uVar8,uVar17)" (( "(") (identifier "uVar22") (, ",") (binary_expression "uVar19 * 10" (identifier "uVar19") (* "*") (number_literal "10")) (, ",") (identifier "uVar8") (, ",") (identifier "uVar17") () ")"))) (; ";")) (expression_statement "uVar14 = extraout_v1;" (assignment_expression "uVar14 = extraout_v1" (identifier "uVar14") (= "=") (identifier "extraout_v1")) (; ";")) (if_statement "if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {\n      uVar8 = (uint)(lVar30 != 0);\n    }\n    else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }" (if "if") (parenthesized_expression "((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17))))" (( "(") (binary_expression "(uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))" (parenthesized_expression "(uVar26 < uVar8)" (( "(") (binary_expression "uVar26 < uVar8" (identifier "uVar26") (< "<") (identifier "uVar8")) () ")")) (|| "||") (parenthesized_expression "((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))" (( "(") (parenthesized_expression "(uVar8 == uVar26 && ((uint)lVar30 < uVar17))" (( "(") (binary_expression "uVar8 == uVar26 && ((uint)lVar30 < uVar17)" (binary_expression "uVar8 == uVar26" (identifier "uVar8") (== "==") (identifier "uVar26")) (&& "&&") (parenthesized_expression "((uint)lVar30 < uVar17)" (( "(") (binary_expression "(uint)lVar30 < uVar17" (cast_expression "(uint)lVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar30")) (< "<") (identifier "uVar17")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      uVar8 = (uint)(lVar30 != 0);\n    }" ({ "{") (expression_statement "uVar8 = (uint)(lVar30 != 0);" (assignment_expression "uVar8 = (uint)(lVar30 != 0)" (identifier "uVar8") (= "=") (call_expression "(uint)(lVar30 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(lVar30 != 0)" (( "(") (binary_expression "lVar30 != 0" (identifier "lVar30") (!= "!=") (number_literal "0")) () ")")))) (; ";")) (} "}")) (else_clause "else if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }" (else "else") (if_statement "if (uVar31 < (ulonglong)(lVar32 << 1)) {\n      uVar8 = 3;\n    }\n    else {\n      uVar8 = 2;\n    }" (if "if") (parenthesized_expression "(uVar31 < (ulonglong)(lVar32 << 1))" (( "(") (binary_expression "uVar31 < (ulonglong)(lVar32 << 1)" (identifier "uVar31") (< "<") (call_expression "(ulonglong)(lVar32 << 1)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(lVar32 << 1)" (( "(") (binary_expression "lVar32 << 1" (identifier "lVar32") (<< "<<") (number_literal "1")) () ")")))) () ")")) (compound_statement "{\n      uVar8 = 3;\n    }" ({ "{") (expression_statement "uVar8 = 3;" (assignment_expression "uVar8 = 3" (identifier "uVar8") (= "=") (number_literal "3")) (; ";")) (} "}")) (else_clause "else {\n      uVar8 = 2;\n    }" (else "else") (compound_statement "{\n      uVar8 = 2;\n    }" ({ "{") (expression_statement "uVar8 = 2;" (assignment_expression "uVar8 = 2" (identifier "uVar8") (= "=") (number_literal "2")) (; ";")) (} "}")))))) (labeled_statement "LAB_00015d94:\n    pcVar4 = pcStack_b0;" (statement_identifier "LAB_00015d94") (: ":") (expression_statement "pcVar4 = pcStack_b0;" (assignment_expression "pcVar4 = pcStack_b0" (identifier "pcVar4") (= "=") (identifier "pcStack_b0")) (; ";"))) (if_statement "if ((param_4 & 0x10) == 0) {\n      iVar18 = -1;\n    }\n    else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }" (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")) () ")")) (compound_statement "{\n      iVar18 = -1;\n    }" ({ "{") (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" (identifier "iVar18") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }" (else "else") (compound_statement "{\n      iVar18 = 0;\n      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }\n    }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (if_statement "if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }" (if "if") (parenthesized_expression "(((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34))" (( "(") (binary_expression "((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)" (parenthesized_expression "((int)(uVar34 >> 0x20) != 0)" (( "(") (binary_expression "(int)(uVar34 >> 0x20) != 0" (cast_expression "(int)(uVar34 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar34 >> 0x20)" (( "(") (binary_expression "uVar34 >> 0x20" (identifier "uVar34") (>> ">>") (number_literal "0x20")) () ")"))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar20 <= (uint)uVar34)" (( "(") (binary_expression "uVar20 <= (uint)uVar34" (identifier "uVar20") (<= "<=") (cast_expression "(uint)uVar34" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar34"))) () ")"))) () ")")) (compound_statement "{\n        iVar18 = 0;\n        do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);\n      }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        } while (iVar18 != 8);" (do "do") (compound_statement "{\n          uVar3 = (undefined4)(uVar34 >> 0x20);\n          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = extraout_v1_00 * 10 + uVar14;\n          if (uVar20 == 0) {\n            trap(7);\n          }\n          uVar14 = uVar17 / uVar20;\n          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);\n          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);\n          uVar17 = (uint)uVar34;\n          uVar26 = uVar8 + uVar19;\n          if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }\n          iVar18 = iVar18 + 1;\n          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }\n        }" ({ "{") (expression_statement "uVar3 = (undefined4)(uVar34 >> 0x20);" (assignment_expression "uVar3 = (undefined4)(uVar34 >> 0x20)" (identifier "uVar3") (= "=") (call_expression "(undefined4)(uVar34 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "(uVar34 >> 0x20)" (( "(") (binary_expression "uVar34 >> 0x20" (identifier "uVar34") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "FUN_0001db50(uVar3,(int)uVar34,0,uVar20);" (call_expression "FUN_0001db50(uVar3,(int)uVar34,0,uVar20)" (identifier "FUN_0001db50") (argument_list "(uVar3,(int)uVar34,0,uVar20)" (( "(") (identifier "uVar3") (, ",") (cast_expression "(int)uVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar34")) (, ",") (number_literal "0") (, ",") (identifier "uVar20") () ")"))) (; ";")) (expression_statement "uVar17 = extraout_v1_00 * 10 + uVar14;" (assignment_expression "uVar17 = extraout_v1_00 * 10 + uVar14" (identifier "uVar17") (= "=") (binary_expression "extraout_v1_00 * 10 + uVar14" (binary_expression "extraout_v1_00 * 10" (identifier "extraout_v1_00") (* "*") (number_literal "10")) (+ "+") (identifier "uVar14"))) (; ";")) (if_statement "if (uVar20 == 0) {\n            trap(7);\n          }" (if "if") (parenthesized_expression "(uVar20 == 0)" (( "(") (binary_expression "uVar20 == 0" (identifier "uVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            trap(7);\n          }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar14 = uVar17 / uVar20;" (assignment_expression "uVar14 = uVar17 / uVar20" (identifier "uVar14") (= "=") (binary_expression "uVar17 / uVar20" (identifier "uVar17") (/ "/") (identifier "uVar20"))) (; ";")) (expression_statement "uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);" (assignment_expression "uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1)" (identifier "uVar19") (= "=") (binary_expression "(uVar17 % uVar20) * 2 + ((int)uVar8 >> 1)" (binary_expression "(uVar17 % uVar20) * 2" (parenthesized_expression "(uVar17 % uVar20)" (( "(") (binary_expression "uVar17 % uVar20" (identifier "uVar17") (% "%") (identifier "uVar20")) () ")")) (* "*") (number_literal "2")) (+ "+") (parenthesized_expression "((int)uVar8 >> 1)" (( "(") (binary_expression "(int)uVar8 >> 1" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);" (assignment_expression "uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20)" (identifier "uVar34") (= "=") (call_expression "FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20)" (identifier "FUN_0001d6e0") (argument_list "(uVar3,(int)uVar34,0,uVar20)" (( "(") (identifier "uVar3") (, ",") (cast_expression "(int)uVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar34")) (, ",") (number_literal "0") (, ",") (identifier "uVar20") () ")")))) (; ";")) (expression_statement "uVar17 = (uint)uVar34;" (assignment_expression "uVar17 = (uint)uVar34" (identifier "uVar17") (= "=") (cast_expression "(uint)uVar34" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar34"))) (; ";")) (expression_statement "uVar26 = uVar8 + uVar19;" (assignment_expression "uVar26 = uVar8 + uVar19" (identifier "uVar26") (= "=") (binary_expression "uVar8 + uVar19" (identifier "uVar8") (+ "+") (identifier "uVar19"))) (; ";")) (if_statement "if (uVar19 < uVar20) {\n            uVar8 = (uint)(uVar26 != 0);\n          }\n          else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }" (if "if") (parenthesized_expression "(uVar19 < uVar20)" (( "(") (binary_expression "uVar19 < uVar20" (identifier "uVar19") (< "<") (identifier "uVar20")) () ")")) (compound_statement "{\n            uVar8 = (uint)(uVar26 != 0);\n          }" ({ "{") (expression_statement "uVar8 = (uint)(uVar26 != 0);" (assignment_expression "uVar8 = (uint)(uVar26 != 0)" (identifier "uVar8") (= "=") (call_expression "(uint)(uVar26 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar26 != 0)" (( "(") (binary_expression "uVar26 != 0" (identifier "uVar26") (!= "!=") (number_literal "0")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }" (else "else") (compound_statement "{\n            uVar8 = 2;\n            if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }\n          }" ({ "{") (expression_statement "uVar8 = 2;" (assignment_expression "uVar8 = 2" (identifier "uVar8") (= "=") (number_literal "2")) (; ";")) (if_statement "if (uVar20 < uVar26) {\n              uVar8 = 3;\n            }" (if "if") (parenthesized_expression "(uVar20 < uVar26)" (( "(") (binary_expression "uVar20 < uVar26" (identifier "uVar20") (< "<") (identifier "uVar26")) () ")")) (compound_statement "{\n              uVar8 = 3;\n            }" ({ "{") (expression_statement "uVar8 = 3;" (assignment_expression "uVar8 = 3" (identifier "uVar8") (= "=") (number_literal "3")) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }" (if "if") (parenthesized_expression "(((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20))" (( "(") (binary_expression "((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)" (parenthesized_expression "((int)(uVar34 >> 0x20) == 0)" (( "(") (binary_expression "(int)(uVar34 >> 0x20) == 0" (cast_expression "(int)(uVar34 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar34 >> 0x20)" (( "(") (binary_expression "uVar34 >> 0x20" (identifier "uVar34") (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar17 < uVar20)" (( "(") (binary_expression "uVar17 < uVar20" (identifier "uVar17") (< "<") (identifier "uVar20")) () ")"))) () ")")) (compound_statement "{\n            if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }\n            break;\n          }" ({ "{") (if_statement "if (uVar17 < 10) {\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }" (if "if") (parenthesized_expression "(uVar17 < 10)" (( "(") (binary_expression "uVar17 < 10" (identifier "uVar17") (< "<") (number_literal "10")) () ")")) (compound_statement "{\n              if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }\nLAB_000160b4:\n              uVar14 = 0;\n              pcVar25 = pcVar4;\n              if (uVar6 == 1) goto LAB_00015e08;\n              goto LAB_00015dcc;\n            }" ({ "{") (if_statement "if (uVar6 == 1) {\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }\n              else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }" (if "if") (parenthesized_expression "(uVar6 == 1)" (( "(") (binary_expression "uVar6 == 1" (identifier "uVar6") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                bVar1 = 2 < (uVar14 & 1) + uVar8;\nLAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;\n                uVar19 = uVar17 + 1;\n                if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }\n                cVar11 = (char)uVar14 + '1';\nLAB_00016084:\n                uVar8 = 0;\n                pcVar24 = *(code **)(puVar23 + 0x1bef0);\n                *(char *)(iVar10 + 0x286) = cVar11;\n                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);\n                (*pcVar24)(pcVar4,iStack_90,uStack_98);\n              }" ({ "{") (expression_statement "bVar1 = 2 < (uVar14 & 1) + uVar8;" (assignment_expression "bVar1 = 2 < (uVar14 & 1) + uVar8" (identifier "bVar1") (= "=") (binary_expression "2 < (uVar14 & 1) + uVar8" (number_literal "2") (< "<") (binary_expression "(uVar14 & 1) + uVar8" (parenthesized_expression "(uVar14 & 1)" (( "(") (binary_expression "uVar14 & 1" (identifier "uVar14") (& "&") (number_literal "1")) () ")")) (+ "+") (identifier "uVar8")))) (; ";")) (labeled_statement "LAB_000160dc:\n                if (!bVar1) goto LAB_0001606c;" (statement_identifier "LAB_000160dc") (: ":") (if_statement "if (!bVar1) goto LAB_0001606c;" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (goto_statement "goto LAB_0001606c;" (goto "goto") (statement_identifier "LAB_0001606c") (; ";")))) (expression_statement "uVar19 = uVar17 + 1;" (assignment_expression "uVar19 = uVar17 + 1" (identifier "uVar19") (= "=") (binary_expression "uVar17 + 1" (identifier "uVar17") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar14 == 9) {\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }" (if "if") (parenthesized_expression "(uVar14 == 9)" (( "(") (binary_expression "uVar14 == 9" (identifier "uVar14") (== "==") (number_literal "9")) () ")")) (compound_statement "{\n                  bVar1 = uVar19 < uVar17;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }\n                  uVar8 = 0;\n                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);\n                  goto LAB_000160b4;\n                }" ({ "{") (expression_statement "bVar1 = uVar19 < uVar17;" (assignment_expression "bVar1 = uVar19 < uVar17" (identifier "bVar1") (= "=") (binary_expression "uVar19 < uVar17" (identifier "uVar19") (< "<") (identifier "uVar17"))) (; ";")) (expression_statement "uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);" (assignment_expression "uVar34 = (ulonglong)CONCAT14(bVar1,uVar19)" (identifier "uVar34") (= "=") (cast_expression "(ulonglong)CONCAT14(bVar1,uVar19)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(bVar1,uVar19)" (identifier "CONCAT14") (argument_list "(bVar1,uVar19)" (( "(") (identifier "bVar1") (, ",") (identifier "uVar19") () ")"))))) (; ";")) (if_statement "if ((bVar1) || (uVar19 != 10)) {\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }" (if "if") (parenthesized_expression "((bVar1) || (uVar19 != 10))" (( "(") (binary_expression "(bVar1) || (uVar19 != 10)" (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (|| "||") (parenthesized_expression "(uVar19 != 10)" (( "(") (binary_expression "uVar19 != 10" (identifier "uVar19") (!= "!=") (number_literal "10")) () ")"))) () ")")) (compound_statement "{\n                    uVar8 = 0;\n                    goto LAB_00016074;\n                  }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00016074;" (goto "goto") (statement_identifier "LAB_00016074") (; ";")) (} "}"))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);" (assignment_expression "uVar34 = (ulonglong)CONCAT14(bVar1,uVar19)" (identifier "uVar34") (= "=") (cast_expression "(ulonglong)CONCAT14(bVar1,uVar19)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(bVar1,uVar19)" (identifier "CONCAT14") (argument_list "(bVar1,uVar19)" (( "(") (identifier "bVar1") (, ",") (identifier "uVar19") () ")"))))) (; ";")) (goto_statement "goto LAB_000160b4;" (goto "goto") (statement_identifier "LAB_000160b4") (; ";")) (} "}"))) (expression_statement "cVar11 = (char)uVar14 + '1';" (assignment_expression "cVar11 = (char)uVar14 + '1'" (identifier "cVar11") (= "=") (binary_expression "(char)uVar14 + '1'" (cast_expression "(char)uVar14" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar14")) (+ "+") (char_literal "'1'" (' "'") (character "1") (' "'")))) (; ";")) (labeled_statement "LAB_00016084:\n                uVar8 = 0;" (statement_identifier "LAB_00016084") (: ":") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";"))) (expression_statement "pcVar24 = *(code **)(puVar23 + 0x1bef0);" (assignment_expression "pcVar24 = *(code **)(puVar23 + 0x1bef0)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puVar23 + 0x1bef0)" (* "*") (cast_expression "(code **)(puVar23 + 0x1bef0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1bef0)" (( "(") (binary_expression "puVar23 + 0x1bef0" (identifier "puVar23") (+ "+") (number_literal "0x1bef0")) () ")"))))) (; ";")) (expression_statement "*(char *)(iVar10 + 0x286) = cVar11;" (assignment_expression "*(char *)(iVar10 + 0x286) = cVar11" (pointer_expression "*(char *)(iVar10 + 0x286)" (* "*") (cast_expression "(char *)(iVar10 + 0x286)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x286)" (( "(") (binary_expression "iVar10 + 0x286" (identifier "iVar10") (+ "+") (number_literal "0x286")) () ")")))) (= "=") (identifier "cVar11")) (; ";")) (expression_statement "pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);" (assignment_expression "pcVar4 = (char *)((iVar10 + 0x286) - uStack_98)" (identifier "pcVar4") (= "=") (cast_expression "(char *)((iVar10 + 0x286) - uStack_98)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar10 + 0x286) - uStack_98)" (( "(") (binary_expression "(iVar10 + 0x286) - uStack_98" (parenthesized_expression "(iVar10 + 0x286)" (( "(") (binary_expression "iVar10 + 0x286" (identifier "iVar10") (+ "+") (number_literal "0x286")) () ")")) (- "-") (identifier "uStack_98")) () ")")))) (; ";")) (expression_statement "(*pcVar24)(pcVar4,iStack_90,uStack_98);" (call_expression "(*pcVar24)(pcVar4,iStack_90,uStack_98)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(pcVar4,iStack_90,uStack_98)" (( "(") (identifier "pcVar4") (, ",") (identifier "iStack_90") (, ",") (identifier "uStack_98") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }" (else "else") (compound_statement "{\n                bVar1 = uVar8 != 0;\n                if (uVar6 == 0) goto LAB_000160dc;\nLAB_0001606c:\n                cVar11 = (char)uVar14 + '0';\n                if (uVar14 != 0) goto LAB_00016084;\nLAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }\n              }" ({ "{") (expression_statement "bVar1 = uVar8 != 0;" (assignment_expression "bVar1 = uVar8 != 0" (identifier "bVar1") (= "=") (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0"))) (; ";")) (if_statement "if (uVar6 == 0) goto LAB_000160dc;" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000160dc;" (goto "goto") (statement_identifier "LAB_000160dc") (; ";"))) (labeled_statement "LAB_0001606c:\n                cVar11 = (char)uVar14 + '0';" (statement_identifier "LAB_0001606c") (: ":") (expression_statement "cVar11 = (char)uVar14 + '0';" (assignment_expression "cVar11 = (char)uVar14 + '0'" (identifier "cVar11") (= "=") (binary_expression "(char)uVar14 + '0'" (cast_expression "(char)uVar14" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar14")) (+ "+") (char_literal "'0'" (' "'") (character "0") (' "'")))) (; ";"))) (if_statement "if (uVar14 != 0) goto LAB_00016084;" (if "if") (parenthesized_expression "(uVar14 != 0)" (( "(") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00016084;" (goto "goto") (statement_identifier "LAB_00016084") (; ";"))) (labeled_statement "LAB_00016074:\n                if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\n                }" (statement_identifier "LAB_00016074") (: ":") (if_statement "if ((param_4 & 8) == 0) {\n                  cVar11 = '0';\n                  goto LAB_00016084;\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                  cVar11 = '0';\n                  goto LAB_00016084;\n                }" ({ "{") (expression_statement "cVar11 = '0';" (assignment_expression "cVar11 = '0'" (identifier "cVar11") (= "=") (char_literal "'0'" (' "'") (character "0") (' "'"))) (; ";")) (goto_statement "goto LAB_00016084;" (goto "goto") (statement_identifier "LAB_00016084") (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_000160b4:\n              uVar14 = 0;" (statement_identifier "LAB_000160b4") (: ":") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";"))) (expression_statement "pcVar25 = pcVar4;" (assignment_expression "pcVar25 = pcVar4" (identifier "pcVar25") (= "=") (identifier "pcVar4")) (; ";")) (if_statement "if (uVar6 == 1) goto LAB_00015e08;" (if "if") (parenthesized_expression "(uVar6 == 1)" (( "(") (binary_expression "uVar6 == 1" (identifier "uVar6") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_00015e08;" (goto "goto") (statement_identifier "LAB_00015e08") (; ";"))) (goto_statement "goto LAB_00015dcc;" (goto "goto") (statement_identifier "LAB_00015dcc") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(iVar18 != 8)" (( "(") (binary_expression "iVar18 != 8" (identifier "iVar18") (!= "!=") (number_literal "8")) () ")")) (; ";")) (} "}"))) (} "}")))) (if_statement "if (uVar6 == 1) {\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }\n    else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }" (if "if") (parenthesized_expression "(uVar6 == 1)" (( "(") (binary_expression "uVar6 == 1" (identifier "uVar6") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      pcVar25 = pcStack_b0;\n      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;\nLAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);\n    }" ({ "{") (expression_statement "pcVar25 = pcStack_b0;" (assignment_expression "pcVar25 = pcStack_b0" (identifier "pcVar25") (= "=") (identifier "pcStack_b0")) (; ";")) (if_statement "if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;" (if "if") (parenthesized_expression "(5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14))" (( "(") (binary_expression "5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)" (number_literal "5") (< "<") (cast_expression "(int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)" (( "(") (binary_expression "(((uint)uVar34 & 1) + uVar8 != 0) + uVar14" (parenthesized_expression "(((uint)uVar34 & 1) + uVar8 != 0)" (( "(") (binary_expression "((uint)uVar34 & 1) + uVar8 != 0" (binary_expression "((uint)uVar34 & 1) + uVar8" (parenthesized_expression "((uint)uVar34 & 1)" (( "(") (binary_expression "(uint)uVar34 & 1" (cast_expression "(uint)uVar34" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar34")) (& "&") (number_literal "1")) () ")")) (+ "+") (identifier "uVar8")) (!= "!=") (number_literal "0")) () ")")) (+ "+") (identifier "uVar14")) () ")")))) () ")")) (goto_statement "goto LAB_00015ddc;" (goto "goto") (statement_identifier "LAB_00015ddc") (; ";"))) (labeled_statement "LAB_00015e08:\n      do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);" (statement_identifier "LAB_00015e08") (: ":") (do_statement "do {\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      } while (9 < uVar14);" (do "do") (compound_statement "{\n        do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);\n      }" ({ "{") (do_statement "do {\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        } while (iVar9 != 0);" (do "do") (compound_statement "{\n          iVar9 = (int)(uVar34 >> 0x20);\n          uVar14 = (uint)uVar34;\n          FUN_0001db50(iVar9,uVar14,0,10);\n          pcVar25 = pcVar25 + -1;\n          *pcVar25 = extraout_v1_01 + '0';\n          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);\n        }" ({ "{") (expression_statement "iVar9 = (int)(uVar34 >> 0x20);" (assignment_expression "iVar9 = (int)(uVar34 >> 0x20)" (identifier "iVar9") (= "=") (cast_expression "(int)(uVar34 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar34 >> 0x20)" (( "(") (binary_expression "uVar34 >> 0x20" (identifier "uVar34") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar14 = (uint)uVar34;" (assignment_expression "uVar14 = (uint)uVar34" (identifier "uVar14") (= "=") (cast_expression "(uint)uVar34" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar34"))) (; ";")) (expression_statement "FUN_0001db50(iVar9,uVar14,0,10);" (call_expression "FUN_0001db50(iVar9,uVar14,0,10)" (identifier "FUN_0001db50") (argument_list "(iVar9,uVar14,0,10)" (( "(") (identifier "iVar9") (, ",") (identifier "uVar14") (, ",") (number_literal "0") (, ",") (number_literal "10") () ")"))) (; ";")) (expression_statement "pcVar25 = pcVar25 + -1;" (assignment_expression "pcVar25 = pcVar25 + -1" (identifier "pcVar25") (= "=") (binary_expression "pcVar25 + -1" (identifier "pcVar25") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*pcVar25 = extraout_v1_01 + '0';" (assignment_expression "*pcVar25 = extraout_v1_01 + '0'" (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) (= "=") (binary_expression "extraout_v1_01 + '0'" (identifier "extraout_v1_01") (+ "+") (char_literal "'0'" (' "'") (character "0") (' "'")))) (; ";")) (expression_statement "uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);" (assignment_expression "uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10)" (identifier "uVar34") (= "=") (call_expression "FUN_0001d6e0(iVar9,uVar14,0,10)" (identifier "FUN_0001d6e0") (argument_list "(iVar9,uVar14,0,10)" (( "(") (identifier "iVar9") (, ",") (identifier "uVar14") (, ",") (number_literal "0") (, ",") (number_literal "10") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(9 < uVar14)" (( "(") (binary_expression "9 < uVar14" (number_literal "9") (< "<") (identifier "uVar14")) () ")")) (; ";"))) (} "}")) (else_clause "else {\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }" (else "else") (compound_statement "{\nLAB_00015dcc:\n      pcVar25 = pcVar4;\n      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;\nLAB_00015ddc:\n      uVar34 = uVar34 + 1;\n      pcVar25 = pcVar4;\n      if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;\n      iVar18 = iVar18 + 1;\n      if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }\n      pcVar25 = pcVar4 + -1;\n      pcVar4[-1] = '1';\n    }" ({ "{") (labeled_statement "LAB_00015dcc:\n      pcVar25 = pcVar4;" (statement_identifier "LAB_00015dcc") (: ":") (expression_statement "pcVar25 = pcVar4;" (assignment_expression "pcVar25 = pcVar4" (identifier "pcVar25") (= "=") (identifier "pcVar4")) (; ";"))) (if_statement "if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;" (if "if") (parenthesized_expression "((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1))" (( "(") (binary_expression "(uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)" (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((int)(uVar14 + uVar8) < 1)" (( "(") (binary_expression "(int)(uVar14 + uVar8) < 1" (cast_expression "(int)(uVar14 + uVar8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar14 + uVar8)" (( "(") (binary_expression "uVar14 + uVar8" (identifier "uVar14") (+ "+") (identifier "uVar8")) () ")"))) (< "<") (number_literal "1")) () ")"))) () ")")) (goto_statement "goto LAB_00015e08;" (goto "goto") (statement_identifier "LAB_00015e08") (; ";"))) (labeled_statement "LAB_00015ddc:\n      uVar34 = uVar34 + 1;" (statement_identifier "LAB_00015ddc") (: ":") (expression_statement "uVar34 = uVar34 + 1;" (assignment_expression "uVar34 = uVar34 + 1" (identifier "uVar34") (= "=") (binary_expression "uVar34 + 1" (identifier "uVar34") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "pcVar25 = pcVar4;" (assignment_expression "pcVar25 = pcVar4" (identifier "pcVar25") (= "=") (identifier "pcVar4")) (; ";")) (if_statement "if (((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))\n      goto LAB_00015e08;" (if "if") (parenthesized_expression "(((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))" (( "(") (binary_expression "((param_4 & 0x10) == 0) ||\n         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8)))" (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")) () ")")) (|| "||") (parenthesized_expression "((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8)))" (( "(") (parenthesized_expression "(((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))" (( "(") (binary_expression "((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8)" (parenthesized_expression "((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34))" (( "(") (binary_expression "(int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)" (binary_expression "(int)(uVar34 >> 0x20) != 0" (cast_expression "(int)(uVar34 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar34 >> 0x20)" (( "(") (binary_expression "uVar34 >> 0x20" (identifier "uVar34") (>> ">>") (number_literal "0x20")) () ")"))) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(uVar20 != (uint)uVar34)" (( "(") (binary_expression "uVar20 != (uint)uVar34" (identifier "uVar20") (!= "!=") (cast_expression "(uint)uVar34" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar34"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar18 == 8)" (( "(") (binary_expression "iVar18 == 8" (identifier "iVar18") (== "==") (number_literal "8")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00015e08;" (goto "goto") (statement_identifier "LAB_00015e08") (; ";"))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((param_4 & 8) == 0) {\n        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\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        pcVar24 = *(code **)(puVar23 + 0x1bef0);\n        pcVar4[-1] = '0';\n        pcVar4 = pcVar4 + ~uStack_98;\n        (*pcVar24)(pcVar4,iStack_90);\n      }" ({ "{") (expression_statement "pcVar24 = *(code **)(puVar23 + 0x1bef0);" (assignment_expression "pcVar24 = *(code **)(puVar23 + 0x1bef0)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puVar23 + 0x1bef0)" (* "*") (cast_expression "(code **)(puVar23 + 0x1bef0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1bef0)" (( "(") (binary_expression "puVar23 + 0x1bef0" (identifier "puVar23") (+ "+") (number_literal "0x1bef0")) () ")"))))) (; ";")) (expression_statement "pcVar4[-1] = '0';" (assignment_expression "pcVar4[-1] = '0'" (subscript_expression "pcVar4[-1]" (identifier "pcVar4") ([ "[") (number_literal "-1") (] "]")) (= "=") (char_literal "'0'" (' "'") (character "0") (' "'"))) (; ";")) (expression_statement "pcVar4 = pcVar4 + ~uStack_98;" (assignment_expression "pcVar4 = pcVar4 + ~uStack_98" (identifier "pcVar4") (= "=") (binary_expression "pcVar4 + ~uStack_98" (identifier "pcVar4") (+ "+") (unary_expression "~uStack_98" (~ "~") (identifier "uStack_98")))) (; ";")) (expression_statement "(*pcVar24)(pcVar4,iStack_90);" (call_expression "(*pcVar24)(pcVar4,iStack_90)" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "(pcVar4,iStack_90)" (( "(") (identifier "pcVar4") (, ",") (identifier "iStack_90") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar25 = pcVar4 + -1;" (assignment_expression "pcVar25 = pcVar4 + -1" (identifier "pcVar25") (= "=") (binary_expression "pcVar4 + -1" (identifier "pcVar4") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pcVar4[-1] = '1';" (assignment_expression "pcVar4[-1] = '1'" (subscript_expression "pcVar4[-1]" (identifier "pcVar4") ([ "[") (number_literal "-1") (] "]")) (= "=") (char_literal "'1'" (' "'") (character "1") (' "'"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }" (else "else") (compound_statement "{\n    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);\n    if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }\nLAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);\n    dVar28 = (double)FUN_0001cd70(local_10,uVar12);\n    dVar27 = dVar27 / dVar28;\n    dVar28 = (double)FUN_0001cd70(uVar14,param_2);\n    dVar27 = dVar27 * dVar28;\n    if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\nLAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;\n    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);\n    pcVar4 = pcVar25 + uVar14;\n  }" ({ "{") (expression_statement "lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);" (assignment_expression "lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12)" (identifier "lVar30") (= "=") (call_expression "FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12)" (identifier "FUN_0001db50") (argument_list "(&_gp_1,uStack_14,local_10,uVar12)" (( "(") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (, ",") (identifier "uStack_14") (, ",") (identifier "local_10") (, ",") (identifier "uVar12") () ")")))) (; ";")) (if_statement "if (lVar30 == 0) {\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }" (if "if") (parenthesized_expression "(lVar30 == 0)" (( "(") (binary_expression "lVar30 == 0" (identifier "lVar30") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);\n      uVar34 = lVar30 * CONCAT44(uVar14,param_2);\n      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));\n      if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }\n    }" ({ "{") (expression_statement "lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);" (assignment_expression "lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12)" (identifier "lVar30") (= "=") (call_expression "FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12)" (identifier "FUN_0001d6e0") (argument_list "(&_gp_1,uStack_14,local_10,uVar12)" (( "(") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (, ",") (identifier "uStack_14") (, ",") (identifier "local_10") (, ",") (identifier "uVar12") () ")")))) (; ";")) (expression_statement "uVar34 = lVar30 * CONCAT44(uVar14,param_2);" (assignment_expression "uVar34 = lVar30 * CONCAT44(uVar14,param_2)" (identifier "uVar34") (= "=") (binary_expression "lVar30 * CONCAT44(uVar14,param_2)" (identifier "lVar30") (* "*") (call_expression "CONCAT44(uVar14,param_2)" (identifier "CONCAT44") (argument_list "(uVar14,param_2)" (( "(") (identifier "uVar14") (, ",") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));" (assignment_expression "lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20))" (identifier "lVar30") (= "=") (call_expression "FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20))" (identifier "FUN_0001d6e0") (argument_list "((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20))" (( "(") (cast_expression "(int)(uVar34 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar34 >> 0x20)" (( "(") (binary_expression "uVar34 >> 0x20" (identifier "uVar34") (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(int)uVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar34")) (, ",") (cast_expression "(int)((ulonglong)lVar30 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar30")) (>> ">>") (number_literal "0x20")) () ")"))) () ")")))) (; ";")) (if_statement "if (lVar30 == CONCAT44(uVar14,param_2)) {\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }" (if "if") (parenthesized_expression "(lVar30 == CONCAT44(uVar14,param_2))" (( "(") (binary_expression "lVar30 == CONCAT44(uVar14,param_2)" (identifier "lVar30") (== "==") (call_expression "CONCAT44(uVar14,param_2)" (identifier "CONCAT44") (argument_list "(uVar14,param_2)" (( "(") (identifier "uVar14") (, ",") (identifier "param_2") () ")")))) () ")")) (compound_statement "{\n        uVar8 = 0;\n        uVar14 = 0;\n        goto LAB_00015d94;\n      }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00015d94;" (goto "goto") (statement_identifier "LAB_00015d94") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00015680:\n    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);" (statement_identifier "LAB_00015680") (: ":") (expression_statement "dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);" (assignment_expression "dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14)" (identifier "dVar27") (= "=") (cast_expression "(double)FUN_0001cd70(&_gp_1,uStack_14)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "FUN_0001cd70(&_gp_1,uStack_14)" (identifier "FUN_0001cd70") (argument_list "(&_gp_1,uStack_14)" (( "(") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (, ",") (identifier "uStack_14") () ")"))))) (; ";"))) (expression_statement "dVar28 = (double)FUN_0001cd70(local_10,uVar12);" (assignment_expression "dVar28 = (double)FUN_0001cd70(local_10,uVar12)" (identifier "dVar28") (= "=") (cast_expression "(double)FUN_0001cd70(local_10,uVar12)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "FUN_0001cd70(local_10,uVar12)" (identifier "FUN_0001cd70") (argument_list "(local_10,uVar12)" (( "(") (identifier "local_10") (, ",") (identifier "uVar12") () ")"))))) (; ";")) (expression_statement "dVar27 = dVar27 / dVar28;" (assignment_expression "dVar27 = dVar27 / dVar28" (identifier "dVar27") (= "=") (binary_expression "dVar27 / dVar28" (identifier "dVar27") (/ "/") (identifier "dVar28"))) (; ";")) (expression_statement "dVar28 = (double)FUN_0001cd70(uVar14,param_2);" (assignment_expression "dVar28 = (double)FUN_0001cd70(uVar14,param_2)" (identifier "dVar28") (= "=") (cast_expression "(double)FUN_0001cd70(uVar14,param_2)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "FUN_0001cd70(uVar14,param_2)" (identifier "FUN_0001cd70") (argument_list "(uVar14,param_2)" (( "(") (identifier "uVar14") (, ",") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "dVar27 = dVar27 * dVar28;" (assignment_expression "dVar27 = dVar27 * dVar28" (identifier "dVar27") (= "=") (binary_expression "dVar27 * dVar28" (identifier "dVar27") (* "*") (identifier "dVar28"))) (; ";")) (if_statement "if ((param_4 & 0x10) == 0) {\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }\n    else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }" (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")) () ")")) (compound_statement "{\n      dVar28 = dVar27;\n      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);\n      iVar18 = -1;\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }" ({ "{") (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" (identifier "dVar28") (= "=") (identifier "dVar27")) (; ";")) (if_statement "if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }" (if "if") (parenthesized_expression "(((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)))" (( "(") (binary_expression "((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))" (parenthesized_expression "((param_4 & 3) != 1)" (( "(") (binary_expression "(param_4 & 3) != 1" (parenthesized_expression "(param_4 & 3)" (( "(") (binary_expression "param_4 & 3" (identifier "param_4") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))" (( "(") (binary_expression "dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)" (identifier "dVar27") (< "<") (pointer_expression "*(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)" (* "*") (cast_expression "(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar23 + 0x1bc48) + -0x730)" (( "(") (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x730" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" (* "*") (cast_expression "(int *)(puVar23 + 0x1bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1bc48)" (( "(") (binary_expression "puVar23 + 0x1bc48" (identifier "puVar23") (+ "+") (number_literal "0x1bc48")) () ")")))) (+ "+") (number_literal "-0x730")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n        uVar33 = FUN_0001ccd0(dVar27);\n        iVar18 = (int)((ulonglong)uVar33 >> 0x20);\n        uVar14 = (uint)uVar33;\n        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);\n        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }\n      }" ({ "{") (expression_statement "uVar33 = FUN_0001ccd0(dVar27);" (assignment_expression "uVar33 = FUN_0001ccd0(dVar27)" (identifier "uVar33") (= "=") (call_expression "FUN_0001ccd0(dVar27)" (identifier "FUN_0001ccd0") (argument_list "(dVar27)" (( "(") (identifier "dVar27") () ")")))) (; ";")) (expression_statement "iVar18 = (int)((ulonglong)uVar33 >> 0x20);" (assignment_expression "iVar18 = (int)((ulonglong)uVar33 >> 0x20)" (identifier "iVar18") (= "=") (cast_expression "(int)((ulonglong)uVar33 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar33 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar33 >> 0x20" (cast_expression "(ulonglong)uVar33" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar33")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar14 = (uint)uVar33;" (assignment_expression "uVar14 = (uint)uVar33" (identifier "uVar14") (= "=") (cast_expression "(uint)uVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar33"))) (; ";")) (expression_statement "dVar28 = (double)FUN_0001cd70(iVar18,uVar14);" (assignment_expression "dVar28 = (double)FUN_0001cd70(iVar18,uVar14)" (identifier "dVar28") (= "=") (cast_expression "(double)FUN_0001cd70(iVar18,uVar14)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "FUN_0001cd70(iVar18,uVar14)" (identifier "FUN_0001cd70") (argument_list "(iVar18,uVar14)" (( "(") (identifier "iVar18") (, ",") (identifier "uVar14") () ")"))))) (; ";")) (if_statement "if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }" (if "if") (parenthesized_expression "(((param_4 & 3) == 0) && (dVar27 != dVar28))" (( "(") (binary_expression "((param_4 & 3) == 0) && (dVar27 != dVar28)" (parenthesized_expression "((param_4 & 3) == 0)" (( "(") (binary_expression "(param_4 & 3) == 0" (parenthesized_expression "(param_4 & 3)" (( "(") (binary_expression "param_4 & 3" (identifier "param_4") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(dVar27 != dVar28)" (( "(") (binary_expression "dVar27 != dVar28" (identifier "dVar27") (!= "!=") (identifier "dVar28")) () ")"))) () ")")) (compound_statement "{\n          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);\n        }" ({ "{") (expression_statement "dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);" (assignment_expression "dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18)" (identifier "dVar28") (= "=") (cast_expression "(double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18)" (identifier "FUN_0001cd70") (argument_list "((uint)(uVar14 + 1 < uVar14) + iVar18)" (( "(") (binary_expression "(uint)(uVar14 + 1 < uVar14) + iVar18" (call_expression "(uint)(uVar14 + 1 < uVar14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 + 1 < uVar14)" (( "(") (binary_expression "uVar14 + 1 < uVar14" (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1")) (< "<") (identifier "uVar14")) () ")"))) (+ "+") (identifier "iVar18")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" (* "*") (cast_expression "(code **)(puVar23 + 0x1bdb4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1bdb4)" (( "(") (binary_expression "puVar23 + 0x1bdb4" (identifier "puVar23") (+ "+") (number_literal "0x1bdb4")) () ")"))))) () ")")) (argument_list "(iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28)" (( "(") (identifier "iVar10") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7bc" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" (* "*") (cast_expression "(int *)(puVar23 + 0x1bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1bc48)" (( "(") (binary_expression "puVar23 + 0x1bc48" (identifier "puVar23") (+ "+") (number_literal "0x1bc48")) () ")")))) (+ "+") (number_literal "-0x7bc")) (, ",") (identifier "dVar28") () ")"))) (; ";")) (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" (identifier "iVar18") (= "=") (number_literal "-1")) (; ";")) (expression_statement "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);" (assignment_expression "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar10)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1be70)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1be70)" (* "*") (cast_expression "(code **)(puVar23 + 0x1be70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1be70)" (( "(") (binary_expression "puVar23 + 0x1be70" (identifier "puVar23") (+ "+") (number_literal "0x1be70")) () ")"))))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (expression_statement "uVar14 = uVar8;" (assignment_expression "uVar14 = uVar8" (identifier "uVar14") (= "=") (identifier "uVar8")) (; ";")) (} "}")) (else_clause "else {\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }" (else "else") (compound_statement "{\n      iVar18 = 0;\n      dVar28 = (double)uVar20;\n      do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);\n      dVar27 = dVar27 / dVar29;\n      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;\n      if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }\nLAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);\n      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n      uVar14 = uVar8;\n    }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar28 = (double)uVar20;" (assignment_expression "dVar28 = (double)uVar20" (identifier "dVar28") (= "=") (cast_expression "(double)uVar20" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "uVar20"))) (; ";")) (do_statement "do {\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      } while (iVar18 != 8);" (do "do") (compound_statement "{\n        dVar29 = dVar28;\n        dVar28 = dVar29 * (double)uVar20;\n        iVar18 = iVar18 + 1;\n        if (dVar27 < dVar28) break;\n      }" ({ "{") (expression_statement "dVar29 = dVar28;" (assignment_expression "dVar29 = dVar28" (identifier "dVar29") (= "=") (identifier "dVar28")) (; ";")) (expression_statement "dVar28 = dVar29 * (double)uVar20;" (assignment_expression "dVar28 = dVar29 * (double)uVar20" (identifier "dVar28") (= "=") (binary_expression "dVar29 * (double)uVar20" (identifier "dVar29") (* "*") (cast_expression "(double)uVar20" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "uVar20")))) (; ";")) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (dVar27 < dVar28) break;" (if "if") (parenthesized_expression "(dVar27 < dVar28)" (( "(") (binary_expression "dVar27 < dVar28" (identifier "dVar27") (< "<") (identifier "dVar28")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar18 != 8)" (( "(") (binary_expression "iVar18 != 8" (identifier "iVar18") (!= "!=") (number_literal "8")) () ")")) (; ";")) (expression_statement "dVar27 = dVar27 / dVar29;" (assignment_expression "dVar27 = dVar27 / dVar29" (identifier "dVar27") (= "=") (binary_expression "dVar27 / dVar29" (identifier "dVar27") (/ "/") (identifier "dVar29"))) (; ";")) (expression_statement "uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;" (assignment_expression "uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1" (identifier "uVar14") (= "=") (binary_expression "(uVar13 == 0) + 1 + uStack_98 + 1" (binary_expression "(uVar13 == 0) + 1 + uStack_98" (binary_expression "(uVar13 == 0) + 1" (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (+ "+") (number_literal "1")) (+ "+") (identifier "uStack_98")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar6 == 1) {\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }\n      else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }" (if "if") (parenthesized_expression "(uVar6 == 1)" (( "(") (binary_expression "uVar6 == 1" (identifier "uVar6") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        (**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        if (uVar8 <= uVar14) goto LAB_00015d0c;\n        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);\n        dVar28 = dVar27 * dVar29;\n      }" ({ "{") (expression_statement "(**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))\n                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" (* "*") (cast_expression "(code **)(puVar23 + 0x1bdb4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1bdb4)" (( "(") (binary_expression "puVar23 + 0x1bdb4" (identifier "puVar23") (+ "+") (number_literal "0x1bdb4")) () ")"))))) () ")")) (argument_list "(iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27)" (( "(") (identifier "iVar10") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7b4" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" (* "*") (cast_expression "(int *)(puVar23 + 0x1bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1bc48)" (( "(") (binary_expression "puVar23 + 0x1bc48" (identifier "puVar23") (+ "+") (number_literal "0x1bc48")) () ")")))) (+ "+") (number_literal "-0x7b4")) (, ",") (identifier "dVar27") () ")"))) (; ";")) (expression_statement "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);" (assignment_expression "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar10)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1be70)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1be70)" (* "*") (cast_expression "(code **)(puVar23 + 0x1be70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1be70)" (( "(") (binary_expression "puVar23 + 0x1be70" (identifier "puVar23") (+ "+") (number_literal "0x1be70")) () ")"))))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (if_statement "if (uVar8 <= uVar14) goto LAB_00015d0c;" (if "if") (parenthesized_expression "(uVar8 <= uVar14)" (( "(") (binary_expression "uVar8 <= uVar14" (identifier "uVar8") (<= "<=") (identifier "uVar14")) () ")")) (goto_statement "goto LAB_00015d0c;" (goto "goto") (statement_identifier "LAB_00015d0c") (; ";"))) (expression_statement "dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);" (assignment_expression "dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728)" (identifier "dVar29") (= "=") (pointer_expression "*(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728)" (* "*") (cast_expression "(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar23 + 0x1bc48) + -0x728)" (( "(") (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x728" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" (* "*") (cast_expression "(int *)(puVar23 + 0x1bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1bc48)" (( "(") (binary_expression "puVar23 + 0x1bc48" (identifier "puVar23") (+ "+") (number_literal "0x1bc48")) () ")")))) (+ "+") (number_literal "-0x728")) () ")"))))) (; ";")) (expression_statement "dVar28 = dVar27 * dVar29;" (assignment_expression "dVar28 = dVar27 * dVar29" (identifier "dVar28") (= "=") (binary_expression "dVar27 * dVar29" (identifier "dVar27") (* "*") (identifier "dVar29"))) (; ";")) (} "}")) (else_clause "else {\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }" (else "else") (compound_statement "{\n        iVar9 = *(int *)(puVar23 + 0x1bc48);\n        dVar28 = dVar27;\n        if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }\n        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);\n        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);\n        dVar27 = dVar28;\n        if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }\n        dVar29 = *(double *)(iVar16 + -0x728);\n        if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }\n      }" ({ "{") (expression_statement "iVar9 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar9 = *(int *)(puVar23 + 0x1bc48)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar23 + 0x1bc48)" (* "*") (cast_expression "(int *)(puVar23 + 0x1bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1bc48)" (( "(") (binary_expression "puVar23 + 0x1bc48" (identifier "puVar23") (+ "+") (number_literal "0x1bc48")) () ")"))))) (; ";")) (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" (identifier "dVar28") (= "=") (identifier "dVar27")) (; ";")) (if_statement "if (*(double *)(iVar9 + -0x730) <= dVar27) {\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }\n        else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }" (if "if") (parenthesized_expression "(*(double *)(iVar9 + -0x730) <= dVar27)" (( "(") (binary_expression "*(double *)(iVar9 + -0x730) <= dVar27" (pointer_expression "*(double *)(iVar9 + -0x730)" (* "*") (cast_expression "(double *)(iVar9 + -0x730)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + -0x730)" (( "(") (binary_expression "iVar9 + -0x730" (identifier "iVar9") (+ "+") (number_literal "-0x730")) () ")")))) (<= "<=") (identifier "dVar27")) () ")")) (compound_statement "{\nLAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n        }" ({ "{") (labeled_statement "LAB_000159a0:\n          iVar16 = *(int *)(puVar23 + 0x1bc48);" (statement_identifier "LAB_000159a0") (: ":") (expression_statement "iVar16 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar16 = *(int *)(puVar23 + 0x1bc48)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar23 + 0x1bc48)" (* "*") (cast_expression "(int *)(puVar23 + 0x1bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1bc48)" (( "(") (binary_expression "puVar23 + 0x1bc48" (identifier "puVar23") (+ "+") (number_literal "0x1bc48")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }" (else "else") (compound_statement "{\n          lVar30 = FUN_0001ccd0(dVar27);\n          dVar28 = dVar27;\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if (uVar6 != 0) goto LAB_000159a0;\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }\n        }" ({ "{") (expression_statement "lVar30 = FUN_0001ccd0(dVar27);" (assignment_expression "lVar30 = FUN_0001ccd0(dVar27)" (identifier "lVar30") (= "=") (call_expression "FUN_0001ccd0(dVar27)" (identifier "FUN_0001ccd0") (argument_list "(dVar27)" (( "(") (identifier "dVar27") () ")")))) (; ";")) (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" (identifier "dVar28") (= "=") (identifier "dVar27")) (; ";")) (expression_statement "dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);" (assignment_expression "dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" (identifier "dVar27") (= "=") (cast_expression "(double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" (identifier "FUN_0001cd70") (argument_list "((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" (( "(") (cast_expression "(int)((ulonglong)lVar30 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar30")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(int)lVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar30")) () ")"))))) (; ";")) (if_statement "if (uVar6 != 0) goto LAB_000159a0;" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000159a0;" (goto "goto") (statement_identifier "LAB_000159a0") (; ";"))) (expression_statement "iVar16 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar16 = *(int *)(puVar23 + 0x1bc48)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar23 + 0x1bc48)" (* "*") (cast_expression "(int *)(puVar23 + 0x1bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1bc48)" (( "(") (binary_expression "puVar23 + 0x1bc48" (identifier "puVar23") (+ "+") (number_literal "0x1bc48")) () ")"))))) (; ";")) (if_statement "if (dVar28 != dVar27) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }" (if "if") (parenthesized_expression "(dVar28 != dVar27)" (( "(") (binary_expression "dVar28 != dVar27" (identifier "dVar28") (!= "!=") (identifier "dVar27")) () ")")) (compound_statement "{\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n            goto LAB_000159a0;\n          }" ({ "{") (expression_statement "dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));" (assignment_expression "dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" (identifier "dVar27") (= "=") (cast_expression "(double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" (identifier "FUN_0001cd70") (argument_list "((int)((ulonglong)(lVar30 + 1) >> 0x20))" (( "(") (cast_expression "(int)((ulonglong)(lVar30 + 1) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)(lVar30 + 1) >> 0x20)" (( "(") (binary_expression "(ulonglong)(lVar30 + 1) >> 0x20" (call_expression "(ulonglong)(lVar30 + 1)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(lVar30 + 1)" (( "(") (binary_expression "lVar30 + 1" (identifier "lVar30") (+ "+") (number_literal "1")) () ")"))) (>> ">>") (number_literal "0x20")) () ")"))) () ")"))))) (; ";")) (goto_statement "goto LAB_000159a0;" (goto "goto") (statement_identifier "LAB_000159a0") (; ";")) (} "}"))) (} "}")))) (expression_statement "(**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" (* "*") (cast_expression "(code **)(puVar23 + 0x1bdb4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1bdb4)" (( "(") (binary_expression "puVar23 + 0x1bdb4" (identifier "puVar23") (+ "+") (number_literal "0x1bdb4")) () ")"))))) () ")")) (argument_list "(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27)" (( "(") (identifier "iVar10") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (binary_expression "iVar16 + -0x7b4" (identifier "iVar16") (+ "+") (number_literal "-0x7b4")) (, ",") (identifier "dVar27") () ")"))) (; ";")) (expression_statement "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);" (assignment_expression "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar10)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1be70)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1be70)" (* "*") (cast_expression "(code **)(puVar23 + 0x1be70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1be70)" (( "(") (binary_expression "puVar23 + 0x1be70" (identifier "puVar23") (+ "+") (number_literal "0x1be70")) () ")"))))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (expression_statement "dVar27 = dVar28;" (assignment_expression "dVar27 = dVar28" (identifier "dVar27") (= "=") (identifier "dVar28")) (; ";")) (if_statement "if (uVar14 < uVar8) {\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }\n        else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }" (if "if") (parenthesized_expression "(uVar14 < uVar8)" (( "(") (binary_expression "uVar14 < uVar8" (identifier "uVar14") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);\n        }" ({ "{") (expression_statement "iVar16 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar16 = *(int *)(puVar23 + 0x1bc48)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar23 + 0x1bc48)" (* "*") (cast_expression "(int *)(puVar23 + 0x1bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1bc48)" (( "(") (binary_expression "puVar23 + 0x1bc48" (identifier "puVar23") (+ "+") (number_literal "0x1bc48")) () ")"))))) (; ";")) (expression_statement "dVar28 = dVar28 * *(double *)(iVar16 + -0x728);" (assignment_expression "dVar28 = dVar28 * *(double *)(iVar16 + -0x728)" (identifier "dVar28") (= "=") (binary_expression "dVar28 * *(double *)(iVar16 + -0x728)" (identifier "dVar28") (* "*") (pointer_expression "*(double *)(iVar16 + -0x728)" (* "*") (cast_expression "(double *)(iVar16 + -0x728)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + -0x728)" (( "(") (binary_expression "iVar16 + -0x728" (identifier "iVar16") (+ "+") (number_literal "-0x728")) () ")")))))) (; ";")) (} "}")) (else_clause "else {\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }" (else "else") (compound_statement "{\nLAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }\n          iVar16 = *(int *)(puVar23 + 0x1bc48);\n          dVar29 = *(double *)(iVar16 + -0x728);\n          dVar28 = dVar27 * dVar29;\n          if (uVar6 == 1) goto LAB_00015a5c;\n          iVar9 = *(int *)(puVar23 + 0x1bc48);\n        }" ({ "{") (labeled_statement "LAB_00015d0c:\n          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }" (statement_identifier "LAB_00015d0c") (: ":") (if_statement "if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }" (if "if") (parenthesized_expression "(((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0'))" (( "(") (binary_expression "((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -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 "(*(char *)(iVar10 + uVar8 + -1) != '0')" (( "(") (binary_expression "*(char *)(iVar10 + uVar8 + -1) != '0'" (pointer_expression "*(char *)(iVar10 + uVar8 + -1)" (* "*") (cast_expression "(char *)(iVar10 + uVar8 + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + uVar8 + -1)" (( "(") (binary_expression "iVar10 + uVar8 + -1" (binary_expression "iVar10 + uVar8" (identifier "iVar10") (+ "+") (identifier "uVar8")) (+ "+") (number_literal "-1")) () ")")))) (!= "!=") (char_literal "'0'" (' "'") (character "0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            uVar14 = uVar8 - (uStack_98 + 1);\n            goto LAB_0001572c;\n          }" ({ "{") (expression_statement "uVar14 = uVar8 - (uStack_98 + 1);" (assignment_expression "uVar14 = uVar8 - (uStack_98 + 1)" (identifier "uVar14") (= "=") (binary_expression "uVar8 - (uStack_98 + 1)" (identifier "uVar8") (- "-") (parenthesized_expression "(uStack_98 + 1)" (( "(") (binary_expression "uStack_98 + 1" (identifier "uStack_98") (+ "+") (number_literal "1")) () ")")))) (; ";")) (goto_statement "goto LAB_0001572c;" (goto "goto") (statement_identifier "LAB_0001572c") (; ";")) (} "}")))) (expression_statement "iVar16 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar16 = *(int *)(puVar23 + 0x1bc48)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar23 + 0x1bc48)" (* "*") (cast_expression "(int *)(puVar23 + 0x1bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1bc48)" (( "(") (binary_expression "puVar23 + 0x1bc48" (identifier "puVar23") (+ "+") (number_literal "0x1bc48")) () ")"))))) (; ";")) (expression_statement "dVar29 = *(double *)(iVar16 + -0x728);" (assignment_expression "dVar29 = *(double *)(iVar16 + -0x728)" (identifier "dVar29") (= "=") (pointer_expression "*(double *)(iVar16 + -0x728)" (* "*") (cast_expression "(double *)(iVar16 + -0x728)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + -0x728)" (( "(") (binary_expression "iVar16 + -0x728" (identifier "iVar16") (+ "+") (number_literal "-0x728")) () ")"))))) (; ";")) (expression_statement "dVar28 = dVar27 * dVar29;" (assignment_expression "dVar28 = dVar27 * dVar29" (identifier "dVar28") (= "=") (binary_expression "dVar27 * dVar29" (identifier "dVar27") (* "*") (identifier "dVar29"))) (; ";")) (if_statement "if (uVar6 == 1) goto LAB_00015a5c;" (if "if") (parenthesized_expression "(uVar6 == 1)" (( "(") (binary_expression "uVar6 == 1" (identifier "uVar6") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_00015a5c;" (goto "goto") (statement_identifier "LAB_00015a5c") (; ";"))) (expression_statement "iVar9 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar9 = *(int *)(puVar23 + 0x1bc48)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar23 + 0x1bc48)" (* "*") (cast_expression "(int *)(puVar23 + 0x1bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1bc48)" (( "(") (binary_expression "puVar23 + 0x1bc48" (identifier "puVar23") (+ "+") (number_literal "0x1bc48")) () ")"))))) (; ";")) (} "}")))) (expression_statement "dVar29 = *(double *)(iVar16 + -0x728);" (assignment_expression "dVar29 = *(double *)(iVar16 + -0x728)" (identifier "dVar29") (= "=") (pointer_expression "*(double *)(iVar16 + -0x728)" (* "*") (cast_expression "(double *)(iVar16 + -0x728)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + -0x728)" (( "(") (binary_expression "iVar16 + -0x728" (identifier "iVar16") (+ "+") (number_literal "-0x728")) () ")"))))) (; ";")) (if_statement "if (dVar28 < *(double *)(iVar9 + -0x730)) {\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }" (if "if") (parenthesized_expression "(dVar28 < *(double *)(iVar9 + -0x730))" (( "(") (binary_expression "dVar28 < *(double *)(iVar9 + -0x730)" (identifier "dVar28") (< "<") (pointer_expression "*(double *)(iVar9 + -0x730)" (* "*") (cast_expression "(double *)(iVar9 + -0x730)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + -0x730)" (( "(") (binary_expression "iVar9 + -0x730" (identifier "iVar9") (+ "+") (number_literal "-0x730")) () ")"))))) () ")")) (compound_statement "{\n          lVar30 = FUN_0001ccd0(dVar28);\n          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);\n          if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }\n          dVar28 = dVar27;\n          dVar29 = *(double *)(iVar16 + -0x728);\n        }" ({ "{") (expression_statement "lVar30 = FUN_0001ccd0(dVar28);" (assignment_expression "lVar30 = FUN_0001ccd0(dVar28)" (identifier "lVar30") (= "=") (call_expression "FUN_0001ccd0(dVar28)" (identifier "FUN_0001ccd0") (argument_list "(dVar28)" (( "(") (identifier "dVar28") () ")")))) (; ";")) (expression_statement "dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);" (assignment_expression "dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" (identifier "dVar27") (= "=") (cast_expression "(double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" (identifier "FUN_0001cd70") (argument_list "((int)((ulonglong)lVar30 >> 0x20),(int)lVar30)" (( "(") (cast_expression "(int)((ulonglong)lVar30 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar30")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(int)lVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar30")) () ")"))))) (; ";")) (if_statement "if ((uVar6 == 0) && (dVar27 != dVar28)) {\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }" (if "if") (parenthesized_expression "((uVar6 == 0) && (dVar27 != dVar28))" (( "(") (binary_expression "(uVar6 == 0) && (dVar27 != dVar28)" (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(dVar27 != dVar28)" (( "(") (binary_expression "dVar27 != dVar28" (identifier "dVar27") (!= "!=") (identifier "dVar28")) () ")"))) () ")")) (compound_statement "{\n            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));\n          }" ({ "{") (expression_statement "dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));" (assignment_expression "dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" (identifier "dVar27") (= "=") (cast_expression "(double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20))" (identifier "FUN_0001cd70") (argument_list "((int)((ulonglong)(lVar30 + 1) >> 0x20))" (( "(") (cast_expression "(int)((ulonglong)(lVar30 + 1) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)(lVar30 + 1) >> 0x20)" (( "(") (binary_expression "(ulonglong)(lVar30 + 1) >> 0x20" (call_expression "(ulonglong)(lVar30 + 1)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(lVar30 + 1)" (( "(") (binary_expression "lVar30 + 1" (identifier "lVar30") (+ "+") (number_literal "1")) () ")"))) (>> ">>") (number_literal "0x20")) () ")"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "dVar28 = dVar27;" (assignment_expression "dVar28 = dVar27" (identifier "dVar28") (= "=") (identifier "dVar27")) (; ";")) (expression_statement "dVar29 = *(double *)(iVar16 + -0x728);" (assignment_expression "dVar29 = *(double *)(iVar16 + -0x728)" (identifier "dVar29") (= "=") (pointer_expression "*(double *)(iVar16 + -0x728)" (* "*") (cast_expression "(double *)(iVar16 + -0x728)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + -0x728)" (( "(") (binary_expression "iVar16 + -0x728" (identifier "iVar16") (+ "+") (number_literal "-0x728")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00015a5c:\n      (**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);" (statement_identifier "LAB_00015a5c") (: ":") (expression_statement "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);" (call_expression "(**(code **)(puVar23 + 0x1bdb4))\n                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bdb4))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1bdb4)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1bdb4)" (* "*") (cast_expression "(code **)(puVar23 + 0x1bdb4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1bdb4)" (( "(") (binary_expression "puVar23 + 0x1bdb4" (identifier "puVar23") (+ "+") (number_literal "0x1bdb4")) () ")"))))) () ")")) (argument_list "(iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29)" (( "(") (identifier "iVar10") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (binary_expression "*(int *)(puVar23 + 0x1bc48) + -0x7bc" (pointer_expression "*(int *)(puVar23 + 0x1bc48)" (* "*") (cast_expression "(int *)(puVar23 + 0x1bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1bc48)" (( "(") (binary_expression "puVar23 + 0x1bc48" (identifier "puVar23") (+ "+") (number_literal "0x1bc48")) () ")")))) (+ "+") (number_literal "-0x7bc")) (, ",") (binary_expression "dVar28 / dVar29" (identifier "dVar28") (/ "/") (identifier "dVar29")) () ")"))) (; ";"))) (expression_statement "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);" (assignment_expression "uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(puVar23 + 0x1be70))(iVar10)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1be70)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1be70)" (* "*") (cast_expression "(code **)(puVar23 + 0x1be70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1be70)" (( "(") (binary_expression "puVar23 + 0x1be70" (identifier "puVar23") (+ "+") (number_literal "0x1be70")) () ")"))))) () ")")) (argument_list "(iVar10)" (( "(") (identifier "iVar10") () ")")))) (; ";")) (expression_statement "uVar14 = uVar8;" (assignment_expression "uVar14 = uVar8" (identifier "uVar14") (= "=") (identifier "uVar8")) (; ";")) (} "}")))) (labeled_statement "LAB_0001572c:\n    pcVar25 = pcStack_b0 + -uVar8;" (statement_identifier "LAB_0001572c") (: ":") (expression_statement "pcVar25 = pcStack_b0 + -uVar8;" (assignment_expression "pcVar25 = pcStack_b0 + -uVar8" (identifier "pcVar25") (= "=") (binary_expression "pcStack_b0 + -uVar8" (identifier "pcStack_b0") (+ "+") (unary_expression "-uVar8" (- "-") (identifier "uVar8")))) (; ";"))) (expression_statement "(**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);" (call_expression "(**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef8))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1bef8)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1bef8)" (* "*") (cast_expression "(code **)(puVar23 + 0x1bef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1bef8)" (( "(") (binary_expression "puVar23 + 0x1bef8" (identifier "puVar23") (+ "+") (number_literal "0x1bef8")) () ")"))))) () ")")) (argument_list "(pcVar25,iVar10,uVar8)" (( "(") (identifier "pcVar25") (, ",") (identifier "iVar10") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "pcVar4 = pcVar25 + uVar14;" (assignment_expression "pcVar4 = pcVar25 + uVar14" (identifier "pcVar4") (= "=") (binary_expression "pcVar25 + uVar14" (identifier "pcVar25") (+ "+") (identifier "uVar14"))) (; ";")) (} "}")))) (if_statement "if ((param_4 & 4) != 0) {\n    uVar6 = (int)pcVar4 - (int)pcVar25;\n    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);\n    uVar14 = 0xffffffff;\n    while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }\n    pcVar25 = pcVar4 + -uVar6;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);\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    uVar6 = (int)pcVar4 - (int)pcVar25;\n    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);\n    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);\n    uVar14 = 0xffffffff;\n    while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }\n    pcVar25 = pcVar4 + -uVar6;\n    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);\n  }" ({ "{") (expression_statement "uVar6 = (int)pcVar4 - (int)pcVar25;" (assignment_expression "uVar6 = (int)pcVar4 - (int)pcVar25" (identifier "uVar6") (= "=") (binary_expression "(int)pcVar4 - (int)pcVar25" (cast_expression "(int)pcVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar4")) (- "-") (cast_expression "(int)pcVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar25")))) (; ";")) (expression_statement "iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);" (assignment_expression "iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(puVar23 + 0x1be70))(iStack_a4)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be70))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1be70)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1be70)" (* "*") (cast_expression "(code **)(puVar23 + 0x1be70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1be70)" (( "(") (binary_expression "puVar23 + 0x1be70" (identifier "puVar23") (+ "+") (number_literal "0x1be70")) () ")"))))) () ")")) (argument_list "(iStack_a4)" (( "(") (identifier "iStack_a4") () ")")))) (; ";")) (expression_statement "(**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);" (call_expression "(**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29)" (parenthesized_expression "(**(code **)(puVar23 + 0x1be80))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1be80)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1be80)" (* "*") (cast_expression "(code **)(puVar23 + 0x1be80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1be80)" (( "(") (binary_expression "puVar23 + 0x1be80" (identifier "puVar23") (+ "+") (number_literal "0x1be80")) () ")"))))) () ")")) (argument_list "(auStack_88,pcVar25,uVar6,0x29)" (( "(") (identifier "auStack_88") (, ",") (identifier "pcVar25") (, ",") (identifier "uVar6") (, ",") (number_literal "0x29") () ")"))) (; ";")) (expression_statement "uVar14 = 0xffffffff;" (assignment_expression "uVar14 = 0xffffffff" (identifier "uVar14") (= "=") (number_literal "0xffffffff")) (; ";")) (while_statement "while( true ) {\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      uVar8 = (uint)*pbVar21;\n      if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }\n      if (uVar6 < uVar14) break;\n      uVar6 = uVar6 - uVar14;\n      pcVar25 = pcVar4 + -uVar14;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);\n      if (uVar6 == 0) goto LAB_0001575c;\n      pcVar4 = pcVar25 + -iVar9;\n      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);\n    }" ({ "{") (expression_statement "uVar8 = (uint)*pbVar21;" (assignment_expression "uVar8 = (uint)*pbVar21" (identifier "uVar8") (= "=") (binary_expression "(uint)*pbVar21" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar21"))) (; ";")) (if_statement "if (uVar8 != 0) {\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }" (if "if") (parenthesized_expression "(uVar8 != 0)" (( "(") (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar14 = uVar8;\n        if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }\n        pbVar21 = pbVar21 + 1;\n      }" ({ "{") (expression_statement "uVar14 = uVar8;" (assignment_expression "uVar14 = uVar8" (identifier "uVar14") (= "=") (identifier "uVar8")) (; ";")) (if_statement "if (0x7e < uVar8) {\n          uVar14 = uVar6;\n        }" (if "if") (parenthesized_expression "(0x7e < uVar8)" (( "(") (binary_expression "0x7e < uVar8" (number_literal "0x7e") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n          uVar14 = uVar6;\n        }" ({ "{") (expression_statement "uVar14 = uVar6;" (assignment_expression "uVar14 = uVar6" (identifier "uVar14") (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + 1" (identifier "pbVar21") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (uVar6 < uVar14) break;" (if "if") (parenthesized_expression "(uVar6 < uVar14)" (( "(") (binary_expression "uVar6 < uVar14" (identifier "uVar6") (< "<") (identifier "uVar14")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar6 = uVar6 - uVar14;" (assignment_expression "uVar6 = uVar6 - uVar14" (identifier "uVar6") (= "=") (binary_expression "uVar6 - uVar14" (identifier "uVar6") (- "-") (identifier "uVar14"))) (; ";")) (expression_statement "pcVar25 = pcVar4 + -uVar14;" (assignment_expression "pcVar25 = pcVar4 + -uVar14" (identifier "pcVar25") (= "=") (binary_expression "pcVar4 + -uVar14" (identifier "pcVar4") (+ "+") (unary_expression "-uVar14" (- "-") (identifier "uVar14")))) (; ";")) (expression_statement "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);" (call_expression "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef0))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1bef0)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1bef0)" (* "*") (cast_expression "(code **)(puVar23 + 0x1bef0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1bef0)" (( "(") (binary_expression "puVar23 + 0x1bef0" (identifier "puVar23") (+ "+") (number_literal "0x1bef0")) () ")"))))) () ")")) (argument_list "(pcVar25,auStack_88 + uVar6,uVar14)" (( "(") (identifier "pcVar25") (, ",") (binary_expression "auStack_88 + uVar6" (identifier "auStack_88") (+ "+") (identifier "uVar6")) (, ",") (identifier "uVar14") () ")"))) (; ";")) (if_statement "if (uVar6 == 0) goto LAB_0001575c;" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001575c;" (goto "goto") (statement_identifier "LAB_0001575c") (; ";"))) (expression_statement "pcVar4 = pcVar25 + -iVar9;" (assignment_expression "pcVar4 = pcVar25 + -iVar9" (identifier "pcVar4") (= "=") (binary_expression "pcVar25 + -iVar9" (identifier "pcVar25") (+ "+") (unary_expression "-iVar9" (- "-") (identifier "iVar9")))) (; ";")) (expression_statement "(**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);" (call_expression "(**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef0))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1bef0)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1bef0)" (* "*") (cast_expression "(code **)(puVar23 + 0x1bef0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1bef0)" (( "(") (binary_expression "puVar23 + 0x1bef0" (identifier "puVar23") (+ "+") (number_literal "0x1bef0")) () ")"))))) () ")")) (argument_list "(pcVar4,iStack_a4,iVar9)" (( "(") (identifier "pcVar4") (, ",") (identifier "iStack_a4") (, ",") (identifier "iVar9") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar25 = pcVar4 + -uVar6;" (assignment_expression "pcVar25 = pcVar4 + -uVar6" (identifier "pcVar25") (= "=") (binary_expression "pcVar4 + -uVar6" (identifier "pcVar4") (+ "+") (unary_expression "-uVar6" (- "-") (identifier "uVar6")))) (; ";")) (expression_statement "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);" (call_expression "(**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6)" (parenthesized_expression "(**(code **)(puVar23 + 0x1bef0))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1bef0)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1bef0)" (* "*") (cast_expression "(code **)(puVar23 + 0x1bef0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1bef0)" (( "(") (binary_expression "puVar23 + 0x1bef0" (identifier "puVar23") (+ "+") (number_literal "0x1bef0")) () ")"))))) () ")")) (argument_list "(pcVar25,auStack_88,uVar6)" (( "(") (identifier "pcVar25") (, ",") (identifier "auStack_88") (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0001575c:\n  if ((param_4 & 0x80) == 0) goto LAB_00015784;" (statement_identifier "LAB_0001575c") (: ":") (if_statement "if ((param_4 & 0x80) == 0) goto LAB_00015784;" (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_00015784;" (goto "goto") (statement_identifier "LAB_00015784") (; ";")))) (if_statement "if ((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))) {\n    iVar18 = 1;\n    uVar14 = 1;\n    piVar7 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);\n    if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }\n    pcVar4 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar11;\n  }\n  else {\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }" (if "if") (parenthesized_expression "((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12))))" (( "(") (binary_expression "(iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))" (parenthesized_expression "(iVar18 == -1)" (( "(") (binary_expression "iVar18 == -1" (identifier "iVar18") (== "==") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))" (( "(") (parenthesized_expression "(local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12))" (( "(") (binary_expression "local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)" (binary_expression "local_10 != (int *)0x0" (identifier "local_10") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "(iVar18 = 0, 1 < uVar12)" (( "(") (comma_expression "iVar18 = 0, 1 < uVar12" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (, ",") (binary_expression "1 < uVar12" (number_literal "1") (< "<") (identifier "uVar12"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    iVar18 = 1;\n    uVar14 = 1;\n    piVar7 = (int *)0x0;\n    do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);\n    if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }\nLAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);\n    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }\n    pcVar4 = pcStack_b0 + 1;\n    *pcStack_b0 = cVar11;\n  }" ({ "{") (expression_statement "iVar18 = 1;" (assignment_expression "iVar18 = 1" (identifier "iVar18") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" (identifier "uVar14") (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar7 = (int *)0x0;" (assignment_expression "piVar7 = (int *)0x0" (identifier "piVar7") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    } while (iVar18 != 8);" (do "do") (compound_statement "{\n      uVar34 = (ulonglong)uVar14;\n      uVar14 = (uint)(uVar34 * uVar20);\n      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));\n      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;\n      iVar18 = iVar18 + 1;\n    }" ({ "{") (expression_statement "uVar34 = (ulonglong)uVar14;" (assignment_expression "uVar34 = (ulonglong)uVar14" (identifier "uVar34") (= "=") (cast_expression "(ulonglong)uVar14" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar14"))) (; ";")) (expression_statement "uVar14 = (uint)(uVar34 * uVar20);" (assignment_expression "uVar14 = (uint)(uVar34 * uVar20)" (identifier "uVar14") (= "=") (call_expression "(uint)(uVar34 * uVar20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar34 * uVar20)" (( "(") (binary_expression "uVar34 * uVar20" (identifier "uVar34") (* "*") (identifier "uVar20")) () ")")))) (; ";")) (expression_statement "piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));" (assignment_expression "piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20))" (identifier "piVar7") (= "=") (cast_expression "(int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20))" (( "(") (binary_expression "uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20)" (binary_expression "uVar20 * (int)piVar7" (identifier "uVar20") (* "*") (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7"))) (+ "+") (cast_expression "(int)(uVar34 * uVar20 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar34 * uVar20 >> 0x20)" (( "(") (binary_expression "uVar34 * uVar20 >> 0x20" (binary_expression "uVar34 * uVar20" (identifier "uVar34") (* "*") (identifier "uVar20")) (>> ">>") (number_literal "0x20")) () ")")))) () ")")))) (; ";")) (if_statement "if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;" (if "if") (parenthesized_expression "((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14))))" (( "(") (binary_expression "(local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))" (parenthesized_expression "(local_10 <= piVar7)" (( "(") (binary_expression "local_10 <= piVar7" (identifier "local_10") (<= "<=") (identifier "piVar7")) () ")")) (&& "&&") (parenthesized_expression "((local_10 != piVar7 || (uVar12 <= uVar14)))" (( "(") (parenthesized_expression "(local_10 != piVar7 || (uVar12 <= uVar14))" (( "(") (binary_expression "local_10 != piVar7 || (uVar12 <= uVar14)" (binary_expression "local_10 != piVar7" (identifier "local_10") (!= "!=") (identifier "piVar7")) (|| "||") (parenthesized_expression "(uVar12 <= uVar14)" (( "(") (binary_expression "uVar12 <= uVar14" (identifier "uVar12") (<= "<=") (identifier "uVar14")) () ")"))) () ")")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 != 8)" (( "(") (binary_expression "iVar18 != 8" (identifier "iVar18") (!= "!=") (number_literal "8")) () ")")) (; ";")) (if_statement "if ((param_4 & 0x40) != 0) {\nLAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\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_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);\n      *(undefined1 *)(iVar10 + 0x287) = 0x20;\n      goto LAB_00015be8;\n    }" ({ "{") (labeled_statement "LAB_00015bdc:\n      pcStack_b0 = (char *)(iVar10 + 0x288);" (statement_identifier "LAB_00015bdc") (: ":") (expression_statement "pcStack_b0 = (char *)(iVar10 + 0x288);" (assignment_expression "pcStack_b0 = (char *)(iVar10 + 0x288)" (identifier "pcStack_b0") (= "=") (cast_expression "(char *)(iVar10 + 0x288)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x288)" (( "(") (binary_expression "iVar10 + 0x288" (identifier "iVar10") (+ "+") (number_literal "0x288")) () ")")))) (; ";"))) (expression_statement "*(undefined1 *)(iVar10 + 0x287) = 0x20;" (assignment_expression "*(undefined1 *)(iVar10 + 0x287) = 0x20" (pointer_expression "*(undefined1 *)(iVar10 + 0x287)" (* "*") (cast_expression "(undefined1 *)(iVar10 + 0x287)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x287)" (( "(") (binary_expression "iVar10 + 0x287" (identifier "iVar10") (+ "+") (number_literal "0x287")) () ")")))) (= "=") (number_literal "0x20")) (; ";")) (goto_statement "goto LAB_00015be8;" (goto "goto") (statement_identifier "LAB_00015be8") (; ";")) (} "}"))) (labeled_statement "LAB_00015bf0:\n    iVar10 = *(int *)(puVar23 + 0x1bc48);" (statement_identifier "LAB_00015bf0") (: ":") (expression_statement "iVar10 = *(int *)(puVar23 + 0x1bc48);" (assignment_expression "iVar10 = *(int *)(puVar23 + 0x1bc48)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar23 + 0x1bc48)" (* "*") (cast_expression "(int *)(puVar23 + 0x1bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1bc48)" (( "(") (binary_expression "puVar23 + 0x1bc48" (identifier "puVar23") (+ "+") (number_literal "0x1bc48")) () ")"))))) (; ";"))) (if_statement "if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {\n      cVar11 = 'k';\n    }\n    else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }" (if "if") (parenthesized_expression "((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1))" (( "(") (binary_expression "(uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)" (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)" (( "(") (comma_expression "iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1" (assignment_expression "iVar10 = *(int *)(puVar23 + 0x1bc48)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar23 + 0x1bc48)" (* "*") (cast_expression "(int *)(puVar23 + 0x1bc48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1bc48)" (( "(") (binary_expression "puVar23 + 0x1bc48" (identifier "puVar23") (+ "+") (number_literal "0x1bc48")) () ")"))))) (, ",") (binary_expression "iVar18 == 1" (identifier "iVar18") (== "==") (number_literal "1"))) () ")"))) () ")")) (compound_statement "{\n      cVar11 = 'k';\n    }" ({ "{") (expression_statement "cVar11 = 'k';" (assignment_expression "cVar11 = 'k'" (identifier "cVar11") (= "=") (char_literal "'k'" (' "'") (character "k") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }" (else "else") (compound_statement "{\n      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);\n    }" ({ "{") (expression_statement "cVar11 = *(char *)(iVar18 + iVar10 + -0x748);" (assignment_expression "cVar11 = *(char *)(iVar18 + iVar10 + -0x748)" (identifier "cVar11") (= "=") (pointer_expression "*(char *)(iVar18 + iVar10 + -0x748)" (* "*") (cast_expression "(char *)(iVar18 + iVar10 + -0x748)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + iVar10 + -0x748)" (( "(") (binary_expression "iVar18 + iVar10 + -0x748" (binary_expression "iVar18 + iVar10" (identifier "iVar18") (+ "+") (identifier "iVar10")) (+ "+") (number_literal "-0x748")) () ")"))))) (; ";")) (} "}")))) (expression_statement "pcVar4 = pcStack_b0 + 1;" (assignment_expression "pcVar4 = pcStack_b0 + 1" (identifier "pcVar4") (= "=") (binary_expression "pcStack_b0 + 1" (identifier "pcStack_b0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pcStack_b0 = cVar11;" (assignment_expression "*pcStack_b0 = cVar11" (pointer_expression "*pcStack_b0" (* "*") (identifier "pcStack_b0")) (= "=") (identifier "cVar11")) (; ";")) (} "}")) (else_clause "else {\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }" (else "else") (compound_statement "{\n    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;\n    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;\nLAB_00015be8:\n    pcVar4 = pcStack_b0;\n    if (iVar18 != 0) goto LAB_00015bf0;\n  }" ({ "{") (if_statement "if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;" (if "if") (parenthesized_expression "((param_4 & 0x100) == 0 && iVar18 == 0)" (( "(") (binary_expression "(param_4 & 0x100) == 0 && iVar18 == 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")) (&& "&&") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00015784;" (goto "goto") (statement_identifier "LAB_00015784") (; ";"))) (if_statement "if ((param_4 & 0x40) != 0) goto LAB_00015bdc;" (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_00015bdc;" (goto "goto") (statement_identifier "LAB_00015bdc") (; ";"))) (labeled_statement "LAB_00015be8:\n    pcVar4 = pcStack_b0;" (statement_identifier "LAB_00015be8") (: ":") (expression_statement "pcVar4 = pcStack_b0;" (assignment_expression "pcVar4 = pcStack_b0" (identifier "pcVar4") (= "=") (identifier "pcStack_b0")) (; ";"))) (if_statement "if (iVar18 != 0) goto LAB_00015bf0;" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015bf0;" (goto "goto") (statement_identifier "LAB_00015bf0") (; ";"))) (} "}")))) (expression_statement "pcStack_b0 = pcVar4;" (assignment_expression "pcStack_b0 = pcVar4" (identifier "pcStack_b0") (= "=") (identifier "pcVar4")) (; ";")) (if_statement "if ((param_4 & 0x100) != 0) {\n    pcVar15 = pcVar4 + 1;\n    pcStack_b0 = pcVar15;\n    if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }\n    *pcVar4 = 'B';\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 "{\n    pcVar15 = pcVar4 + 1;\n    pcStack_b0 = pcVar15;\n    if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }\n    *pcVar4 = 'B';\n  }" ({ "{") (expression_statement "pcVar15 = pcVar4 + 1;" (assignment_expression "pcVar15 = pcVar4 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar4 + 1" (identifier "pcVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcStack_b0 = pcVar15;" (assignment_expression "pcStack_b0 = pcVar15" (identifier "pcStack_b0") (= "=") (identifier "pcVar15")) (; ";")) (if_statement "if ((uVar13 != 0) && (iVar18 != 0)) {\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }" (if "if") (parenthesized_expression "((uVar13 != 0) && (iVar18 != 0))" (( "(") (binary_expression "(uVar13 != 0) && (iVar18 != 0)" (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      pcStack_b0 = pcVar4 + 2;\n      *pcVar4 = 'i';\n      pcVar4 = pcVar15;\n    }" ({ "{") (expression_statement "pcStack_b0 = pcVar4 + 2;" (assignment_expression "pcStack_b0 = pcVar4 + 2" (identifier "pcStack_b0") (= "=") (binary_expression "pcVar4 + 2" (identifier "pcVar4") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*pcVar4 = 'i';" (assignment_expression "*pcVar4 = 'i'" (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) (= "=") (char_literal "'i'" (' "'") (character "i") (' "'"))) (; ";")) (expression_statement "pcVar4 = pcVar15;" (assignment_expression "pcVar4 = pcVar15" (identifier "pcVar4") (= "=") (identifier "pcVar15")) (; ";")) (} "}"))) (expression_statement "*pcVar4 = 'B';" (assignment_expression "*pcVar4 = 'B'" (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) (= "=") (char_literal "'B'" (' "'") (character "B") (' "'"))) (; ";")) (} "}"))) (labeled_statement "LAB_00015784:\n  while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }" (statement_identifier "LAB_00015784") (: ":") (while_statement "while( true ) {\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    *pcStack_b0 = '\0';\n    if (iStack_5c == *piVar5) break;\n    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();\n  }" ({ "{") (expression_statement "*pcStack_b0 = '\0';" (assignment_expression "*pcStack_b0 = '\0'" (pointer_expression "*pcStack_b0" (* "*") (identifier "pcStack_b0")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (iStack_5c == *piVar5) break;" (if "if") (parenthesized_expression "(iStack_5c == *piVar5)" (( "(") (binary_expression "iStack_5c == *piVar5" (identifier "iStack_5c") (== "==") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();" (assignment_expression "pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))()" (identifier "pcStack_b0") (= "=") (cast_expression "(char *)(**(code **)(puVar23 + 0x1becc))()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar23 + 0x1becc))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1becc))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1becc)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1becc)" (* "*") (cast_expression "(code **)(puVar23 + 0x1becc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1becc)" (( "(") (binary_expression "puVar23 + 0x1becc" (identifier "puVar23") (+ "+") (number_literal "0x1becc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")))) (return_statement "return pcVar25;" (return "return") (identifier "pcVar25") (; ";")) (} "}")))

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

int function_1(char *file,int var_1,...)

{
  bool bVar1;
  type_1 *puVar2;
  int var_17;
  int *piVar4;
  type_2 var_26;
  int *var_42;
  type_2 var_8;
  int var_30;
  int var_9;
  char cVar10;
  type_2 var_3;
  type_2 var_6;
  type_2 extraout_v1;
  type_2 var_24;
  char var_29;
  int var_23;
  char *pcVar14;
  int in_a2;
  type_2 var_5;
  int var_38;
  type_2 var_20;
  type_2 var_16;
  char *var_31;
  type_2 var_22;
  type_3 *var_40;
  type_4 uVar21;
  type_2 uVar22;
  type_1 *var_4;
  type_5 *pcVar24;
  char *var_28;
  type_2 var_19;
  double var_34;
  double var_35;
  double var_37;
  type_6 var_13;
  type_7 var_15;
  type_6 var_18;
  type_8 uVar33;
  type_7 var_21;
  int local_res8;
  type_2 local_resc;
  char *var_39;
  int iStack_a4;
  type_2 var_7;
  int iStack_90;
  type_9 var_41 [44];
  int var_43;
  type_1 *puStack_58;
  type_2 var_11;
  int *var_10;
  
  puVar2 = PTR___stack_chk_guard_000313bc;
  var_3 = *(type_2 *)PTR___stack_chk_guard_000313bc;
  var_9 = in_a2;
  piVar4 = &local_res8;
  if ((var_1 & 0x100U) == 0) {
    var_9 = 0;
    piVar4 = var_10;
  }
  var_10 = piVar4;
  local_res8 = in_a2;
  local_resc = var_5;
  var_17 = (*(type_5 *)PTR_open64_00031330)();
  var_17 = var_2(var_17);
  if (var_3 == *(type_2 *)puVar2) {
    return var_17;
  }
  var_24 = var_3;
  var_4 = PTR___stack_chk_fail_0003139c;
  (*(type_5 *)PTR___stack_chk_fail_0003139c)();
  piVar4 = *(int **)(var_4 + 0x1beec);
  var_6 = var_5 & 0x20;
  var_22 = 0x400;
  var_43 = *piVar4;
  var_26 = var_5 & 3;
  puStack_58 = puVar2;
  if (var_6 == 0) {
    var_22 = 1000;
  }
  var_42 = (int *)(**(type_5 **)(var_4 + 0x1be00))();
  iStack_90 = *var_42;
  var_7 = (**(type_5 **)(var_4 + 0x1be70))(iStack_90);
  if (0xf < var_7 - 1) {
    var_7 = 1;
    iStack_90 = *(int *)(var_4 + 0x1bc48) + -0x7c0;
  }
  iStack_a4 = var_42[1];
  var_40 = (type_3 *)var_42[2];
  var_8 = (**(type_5 **)(var_4 + 0x1be70))();
  if (0x10 < var_8) {
    iStack_a4 = *(int *)(var_4 + 0x1bc48) + -0xf6c;
  }
  var_39 = (char *)(var_9 + 0x287);
  if ((&_gp < var_10) || ((var_10 == (int *)&_gp && (var_11 < var_3)))) {
    var_13 = var_12(var_10,var_3,&_gp,var_11);
    if (var_13 != 0) goto LAB_00015680;
    var_15 = var_14(var_10,var_3,&_gp,var_11);
    var_8 = (type_2)(var_15 >> 0x20);
    var_20 = (type_2)var_15;
    uVar33 = var_12(var_24,var_1,var_8,var_20);
    var_17 = (int)((type_7)uVar33 >> 0x20);
    var_16 = (type_2)uVar33;
    uVar22 = var_16 * 5 >> 0x1f |
             ((type_2)(var_16 * 5 < var_16 * 4) + (var_16 >> 0x1e | var_17 << 2) + var_17) * 2;
    var_18 = var_12(uVar22,var_16 * 10,var_8,var_20);
    var_13 = var_18 << 1;
    var_19 = (type_2)((type_7)var_13 >> 0x20);
    var_21 = var_14(var_24,var_1,var_8,var_20);
    var_14(uVar22,var_16 * 10,var_8,var_20);
    var_24 = extraout_v1;
    if ((var_19 < var_8) || ((var_8 == var_19 && ((type_2)var_13 < var_20)))) {
      var_8 = (type_2)(var_13 != 0);
    }
    else if (var_15 < (type_7)(var_18 << 1)) {
      var_8 = 3;
    }
    else {
      var_8 = 2;
    }
LAB_00015d94:
    var_31 = var_39;
    if ((var_5 & 0x10) == 0) {
      var_17 = -1;
    }
    else {
      var_17 = 0;
      if (((int)(var_21 >> 0x20) != 0) || (var_22 <= (type_2)var_21)) {
        var_17 = 0;
        do {
          uVar21 = (type_4)(var_21 >> 0x20);
          var_12(uVar21,(int)var_21,0,var_22);
          var_20 = var_23 * 10 + var_24;
          if (var_22 == 0) {
            var_25(7);
          }
          var_24 = var_20 / var_22;
          var_16 = (var_20 % var_22) * 2 + ((int)var_8 >> 1);
          var_21 = var_14(uVar21,(int)var_21,0,var_22);
          var_20 = (type_2)var_21;
          var_19 = var_8 + var_16;
          if (var_16 < var_22) {
            var_8 = (type_2)(var_19 != 0);
          }
          else {
            var_8 = 2;
            if (var_22 < var_19) {
              var_8 = 3;
            }
          }
          var_17 = var_17 + 1;
          if (((int)(var_21 >> 0x20) == 0) && (var_20 < var_22)) {
            if (var_20 < 10) {
              if (var_26 == 1) {
                bVar1 = 2 < (var_24 & 1) + var_8;
LAB_000160dc:
                if (!bVar1) goto LAB_0001606c;
                var_16 = var_20 + 1;
                if (var_24 == 9) {
                  bVar1 = var_16 < var_20;
                  var_21 = (type_7)var_27(bVar1,var_16);
                  if ((bVar1) || (var_16 != 10)) {
                    var_8 = 0;
                    goto LAB_00016074;
                  }
                  var_8 = 0;
                  var_21 = (type_7)var_27(bVar1,var_16);
                  goto LAB_000160b4;
                }
                cVar10 = (char)var_24 + '1';
LAB_00016084:
                var_8 = 0;
                pcVar24 = *(type_5 **)(var_4 + 0x1bef0);
                *(char *)(var_9 + 0x286) = cVar10;
                var_31 = (char *)((var_9 + 0x286) - var_7);
                (*pcVar24)(var_31,iStack_90,var_7);
              }
              else {
                bVar1 = var_8 != 0;
                if (var_26 == 0) goto LAB_000160dc;
LAB_0001606c:
                cVar10 = (char)var_24 + '0';
                if (var_24 != 0) goto LAB_00016084;
LAB_00016074:
                if ((var_5 & 8) == 0) {
                  cVar10 = '0';
                  goto LAB_00016084;
                }
              }
LAB_000160b4:
              var_24 = 0;
              var_28 = var_31;
              if (var_26 == 1) goto LAB_00015e08;
              goto LAB_00015dcc;
            }
            break;
          }
        } while (var_17 != 8);
      }
    }
    if (var_26 == 1) {
      var_28 = var_39;
      if (5 < (int)((((type_2)var_21 & 1) + var_8 != 0) + var_24)) goto LAB_00015ddc;
LAB_00015e08:
      do {
        do {
          var_30 = (int)(var_21 >> 0x20);
          var_24 = (type_2)var_21;
          var_12(var_30,var_24,0,10);
          var_28 = var_28 + -1;
          *var_28 = var_29 + '0';
          var_21 = var_14(var_30,var_24,0,10);
        } while (var_30 != 0);
      } while (9 < var_24);
    }
    else {
LAB_00015dcc:
      var_28 = var_31;
      if ((var_26 != 0) || ((int)(var_24 + var_8) < 1)) goto LAB_00015e08;
LAB_00015ddc:
      var_21 = var_21 + 1;
      var_28 = var_31;
      if (((var_5 & 0x10) == 0) ||
         ((((int)(var_21 >> 0x20) != 0 || (var_22 != (type_2)var_21)) || (var_17 == 8))))
      goto LAB_00015e08;
      var_17 = var_17 + 1;
      if ((var_5 & 8) == 0) {
        pcVar24 = *(type_5 **)(var_4 + 0x1bef0);
        var_31[-1] = '0';
        var_31 = var_31 + ~var_7;
        (*pcVar24)(var_31,iStack_90);
      }
      var_28 = var_31 + -1;
      var_31[-1] = '1';
    }
  }
  else {
    var_13 = var_12(&_gp,var_11,var_10,var_3);
    if (var_13 == 0) {
      var_13 = var_14(&_gp,var_11,var_10,var_3);
      var_21 = var_13 * var_32(var_24,var_1);
      var_13 = var_14((int)(var_21 >> 0x20),(int)var_21,(int)((type_7)var_13 >> 0x20));
      if (var_13 == var_32(var_24,var_1)) {
        var_8 = 0;
        var_24 = 0;
        goto LAB_00015d94;
      }
    }
LAB_00015680:
    var_34 = (double)var_33(&_gp,var_11);
    var_35 = (double)var_33(var_10,var_3);
    var_34 = var_34 / var_35;
    var_35 = (double)var_33(var_24,var_1);
    var_34 = var_34 * var_35;
    if ((var_5 & 0x10) == 0) {
      var_35 = var_34;
      if (((var_5 & 3) != 1) && (var_34 < *(double *)(*(int *)(var_4 + 0x1bc48) + -0x730))) {
        uVar33 = var_36(var_34);
        var_17 = (int)((type_7)uVar33 >> 0x20);
        var_24 = (type_2)uVar33;
        var_35 = (double)var_33(var_17,var_24);
        if (((var_5 & 3) == 0) && (var_34 != var_35)) {
          var_35 = (double)var_33((type_2)(var_24 + 1 < var_24) + var_17);
        }
      }
      (**(type_5 **)(var_4 + 0x1bdb4))
                (var_9,1,0xffffffff,*(int *)(var_4 + 0x1bc48) + -0x7bc,var_35);
      var_17 = -1;
      var_8 = (**(type_5 **)(var_4 + 0x1be70))(var_9);
      var_24 = var_8;
    }
    else {
      var_17 = 0;
      var_35 = (double)var_22;
      do {
        var_37 = var_35;
        var_35 = var_37 * (double)var_22;
        var_17 = var_17 + 1;
        if (var_34 < var_35) break;
      } while (var_17 != 8);
      var_34 = var_34 / var_37;
      var_24 = (var_6 == 0) + 1 + var_7 + 1;
      if (var_26 == 1) {
        (**(type_5 **)(var_4 + 0x1bdb4))
                  (var_9,1,0xffffffff,*(int *)(var_4 + 0x1bc48) + -0x7b4,var_34);
        var_8 = (**(type_5 **)(var_4 + 0x1be70))(var_9);
        if (var_8 <= var_24) goto LAB_00015d0c;
        var_37 = *(double *)(*(int *)(var_4 + 0x1bc48) + -0x728);
        var_35 = var_34 * var_37;
      }
      else {
        var_30 = *(int *)(var_4 + 0x1bc48);
        var_35 = var_34;
        if (*(double *)(var_30 + -0x730) <= var_34) {
LAB_000159a0:
          var_38 = *(int *)(var_4 + 0x1bc48);
        }
        else {
          var_13 = var_36(var_34);
          var_35 = var_34;
          var_34 = (double)var_33((int)((type_7)var_13 >> 0x20),(int)var_13);
          if (var_26 != 0) goto LAB_000159a0;
          var_38 = *(int *)(var_4 + 0x1bc48);
          if (var_35 != var_34) {
            var_34 = (double)var_33((int)((type_7)(var_13 + 1) >> 0x20));
            goto LAB_000159a0;
          }
        }
        (**(type_5 **)(var_4 + 0x1bdb4))(var_9,1,0xffffffff,var_38 + -0x7b4,var_34);
        var_8 = (**(type_5 **)(var_4 + 0x1be70))(var_9);
        var_34 = var_35;
        if (var_24 < var_8) {
          var_38 = *(int *)(var_4 + 0x1bc48);
          var_35 = var_35 * *(double *)(var_38 + -0x728);
        }
        else {
LAB_00015d0c:
          if (((var_5 & 8) == 0) || (*(char *)(var_9 + var_8 + -1) != '0')) {
            var_24 = var_8 - (var_7 + 1);
            goto LAB_0001572c;
          }
          var_38 = *(int *)(var_4 + 0x1bc48);
          var_37 = *(double *)(var_38 + -0x728);
          var_35 = var_34 * var_37;
          if (var_26 == 1) goto LAB_00015a5c;
          var_30 = *(int *)(var_4 + 0x1bc48);
        }
        var_37 = *(double *)(var_38 + -0x728);
        if (var_35 < *(double *)(var_30 + -0x730)) {
          var_13 = var_36(var_35);
          var_34 = (double)var_33((int)((type_7)var_13 >> 0x20),(int)var_13);
          if ((var_26 == 0) && (var_34 != var_35)) {
            var_34 = (double)var_33((int)((type_7)(var_13 + 1) >> 0x20));
          }
          var_35 = var_34;
          var_37 = *(double *)(var_38 + -0x728);
        }
      }
LAB_00015a5c:
      (**(type_5 **)(var_4 + 0x1bdb4))
                (var_9,1,0xffffffff,*(int *)(var_4 + 0x1bc48) + -0x7bc,var_35 / var_37);
      var_8 = (**(type_5 **)(var_4 + 0x1be70))(var_9);
      var_24 = var_8;
    }
LAB_0001572c:
    var_28 = var_39 + -var_8;
    (**(type_5 **)(var_4 + 0x1bef8))(var_28,var_9,var_8);
    var_31 = var_28 + var_24;
  }
  if ((var_5 & 4) != 0) {
    var_26 = (int)var_31 - (int)var_28;
    var_30 = (**(type_5 **)(var_4 + 0x1be70))(iStack_a4);
    (**(type_5 **)(var_4 + 0x1be80))(var_41,var_28,var_26,0x29);
    var_24 = 0xffffffff;
    while( true ) {
      var_8 = (type_2)*var_40;
      if (var_8 != 0) {
        var_24 = var_8;
        if (0x7e < var_8) {
          var_24 = var_26;
        }
        var_40 = var_40 + 1;
      }
      if (var_26 < var_24) break;
      var_26 = var_26 - var_24;
      var_28 = var_31 + -var_24;
      (**(type_5 **)(var_4 + 0x1bef0))(var_28,var_41 + var_26,var_24);
      if (var_26 == 0) goto LAB_0001575c;
      var_31 = var_28 + -var_30;
      (**(type_5 **)(var_4 + 0x1bef0))(var_31,iStack_a4,var_30);
    }
    var_28 = var_31 + -var_26;
    (**(type_5 **)(var_4 + 0x1bef0))(var_28,var_41,var_26);
  }
LAB_0001575c:
  if ((var_5 & 0x80) == 0) goto LAB_00015784;
  if ((var_17 == -1) && ((var_10 != (int *)0x0 || (var_17 = 0, 1 < var_3)))) {
    var_17 = 1;
    var_24 = 1;
    var_42 = (int *)0x0;
    do {
      var_21 = (type_7)var_24;
      var_24 = (type_2)(var_21 * var_22);
      var_42 = (int *)(var_22 * (int)var_42 + (int)(var_21 * var_22 >> 0x20));
      if ((var_10 <= var_42) && ((var_10 != var_42 || (var_3 <= var_24)))) break;
      var_17 = var_17 + 1;
    } while (var_17 != 8);
    if ((var_5 & 0x40) != 0) {
LAB_00015bdc:
      var_39 = (char *)(var_9 + 0x288);
      *(type_9 *)(var_9 + 0x287) = 0x20;
      goto LAB_00015be8;
    }
LAB_00015bf0:
    var_9 = *(int *)(var_4 + 0x1bc48);
    if ((var_6 == 0) && (var_9 = *(int *)(var_4 + 0x1bc48), var_17 == 1)) {
      cVar10 = 'k';
    }
    else {
      cVar10 = *(char *)(var_17 + var_9 + -0x748);
    }
    var_31 = var_39 + 1;
    *var_39 = cVar10;
  }
  else {
    if ((var_5 & 0x100) == 0 && var_17 == 0) goto LAB_00015784;
    if ((var_5 & 0x40) != 0) goto LAB_00015bdc;
LAB_00015be8:
    var_31 = var_39;
    if (var_17 != 0) goto LAB_00015bf0;
  }
  var_39 = var_31;
  if ((var_5 & 0x100) != 0) {
    pcVar14 = var_31 + 1;
    var_39 = pcVar14;
    if ((var_6 != 0) && (var_17 != 0)) {
      var_39 = var_31 + 2;
      *var_31 = 'i';
      var_31 = pcVar14;
    }
    *var_31 = 'B';
  }
LAB_00015784:
  while( true ) {
    *var_39 = '\0';
    if (var_43 == *piVar4) break;
    var_39 = (char *)(**(type_5 **)(var_4 + 0x1becc))();
  }
  return (int)var_28;
}


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

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

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

{
  bool bVar1;
  undefined *puVar2;
  undefined4 uVar3;
  char *pcVar4;
  int *piVar5;
  uint uVar6;
  int *piVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  char cVar11;
  uint uVar12;
  uint uVar13;
  uint extraout_v1;
  uint uVar14;
  char extraout_v1_01;
  int extraout_v1_00;
  char *pcVar15;
  int iVar16;
  uint uVar17;
  int iVar18;
  uint uVar19;
  uint uVar20;
  byte *pbVar21;
  uint uVar22;
  undefined *puVar23;
  code *pcVar24;
  char *pcVar25;
  uint uVar26;
  double dVar27;
  double dVar28;
  double dVar29;
  longlong lVar30;
  ulonglong uVar31;
  longlong lVar32;
  undefined8 uVar33;
  ulonglong uVar34;
  int local_res8;
  uint local_resc;
  char *pcStack_b0;
  int iStack_a4;
  uint uStack_98;
  int iStack_90;
  undefined1 auStack_88 [44];
  int iStack_5c;
  undefined *puStack_58;
  uint uStack_14;
  int *local_10;
  
  puVar2 = PTR___stack_chk_guard_000313bc;
  uVar12 = *(uint *)PTR___stack_chk_guard_000313bc;
  iVar10 = param_3;
  piVar5 = &local_res8;
  if ((param_2 & 0x100) == 0) {
    iVar10 = 0;
    piVar5 = local_10;
  }
  local_10 = piVar5;
  local_res8 = param_3;
  local_resc = param_4;
  uVar3 = (*(code *)PTR_open64_00031330)();
  pcVar4 = (char *)fd_safer(uVar3);
  if (uVar12 == *(uint *)puVar2) {
    return pcVar4;
  }
  uVar14 = uVar12;
  puVar23 = PTR___stack_chk_fail_0003139c;
  (*(code *)PTR___stack_chk_fail_0003139c)();
  piVar5 = *(int **)(puVar23 + 0x1beec);
  uVar13 = param_4 & 0x20;
  uVar20 = 0x400;
  iStack_5c = *piVar5;
  uVar6 = param_4 & 3;
  puStack_58 = puVar2;
  if (uVar13 == 0) {
    uVar20 = 1000;
  }
  piVar7 = (int *)(**(code **)(puVar23 + 0x1be00))();
  iStack_90 = *piVar7;
  uStack_98 = (**(code **)(puVar23 + 0x1be70))(iStack_90);
  if (0xf < uStack_98 - 1) {
    uStack_98 = 1;
    iStack_90 = *(int *)(puVar23 + 0x1bc48) + -0x7c0;
  }
  iStack_a4 = piVar7[1];
  pbVar21 = (byte *)piVar7[2];
  uVar8 = (**(code **)(puVar23 + 0x1be70))();
  if (0x10 < uVar8) {
    iStack_a4 = *(int *)(puVar23 + 0x1bc48) + -0xf6c;
  }
  pcStack_b0 = (char *)(iVar10 + 0x287);
  if ((&_gp_1 < local_10) || ((local_10 == (int *)&_gp_1 && (uStack_14 < uVar12)))) {
    lVar30 = FUN_0001db50(local_10,uVar12,&_gp_1,uStack_14);
    if (lVar30 != 0) goto LAB_00015680;
    uVar31 = FUN_0001d6e0(local_10,uVar12,&_gp_1,uStack_14);
    uVar8 = (uint)(uVar31 >> 0x20);
    uVar17 = (uint)uVar31;
    uVar33 = FUN_0001db50(uVar14,param_2,uVar8,uVar17);
    iVar18 = (int)((ulonglong)uVar33 >> 0x20);
    uVar19 = (uint)uVar33;
    uVar22 = uVar19 * 5 >> 0x1f |
             ((uint)(uVar19 * 5 < uVar19 * 4) + (uVar19 >> 0x1e | iVar18 << 2) + iVar18) * 2;
    lVar32 = FUN_0001db50(uVar22,uVar19 * 10,uVar8,uVar17);
    lVar30 = lVar32 << 1;
    uVar26 = (uint)((ulonglong)lVar30 >> 0x20);
    uVar34 = FUN_0001d6e0(uVar14,param_2,uVar8,uVar17);
    FUN_0001d6e0(uVar22,uVar19 * 10,uVar8,uVar17);
    uVar14 = extraout_v1;
    if ((uVar26 < uVar8) || ((uVar8 == uVar26 && ((uint)lVar30 < uVar17)))) {
      uVar8 = (uint)(lVar30 != 0);
    }
    else if (uVar31 < (ulonglong)(lVar32 << 1)) {
      uVar8 = 3;
    }
    else {
      uVar8 = 2;
    }
LAB_00015d94:
    pcVar4 = pcStack_b0;
    if ((param_4 & 0x10) == 0) {
      iVar18 = -1;
    }
    else {
      iVar18 = 0;
      if (((int)(uVar34 >> 0x20) != 0) || (uVar20 <= (uint)uVar34)) {
        iVar18 = 0;
        do {
          uVar3 = (undefined4)(uVar34 >> 0x20);
          FUN_0001db50(uVar3,(int)uVar34,0,uVar20);
          uVar17 = extraout_v1_00 * 10 + uVar14;
          if (uVar20 == 0) {
            trap(7);
          }
          uVar14 = uVar17 / uVar20;
          uVar19 = (uVar17 % uVar20) * 2 + ((int)uVar8 >> 1);
          uVar34 = FUN_0001d6e0(uVar3,(int)uVar34,0,uVar20);
          uVar17 = (uint)uVar34;
          uVar26 = uVar8 + uVar19;
          if (uVar19 < uVar20) {
            uVar8 = (uint)(uVar26 != 0);
          }
          else {
            uVar8 = 2;
            if (uVar20 < uVar26) {
              uVar8 = 3;
            }
          }
          iVar18 = iVar18 + 1;
          if (((int)(uVar34 >> 0x20) == 0) && (uVar17 < uVar20)) {
            if (uVar17 < 10) {
              if (uVar6 == 1) {
                bVar1 = 2 < (uVar14 & 1) + uVar8;
LAB_000160dc:
                if (!bVar1) goto LAB_0001606c;
                uVar19 = uVar17 + 1;
                if (uVar14 == 9) {
                  bVar1 = uVar19 < uVar17;
                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);
                  if ((bVar1) || (uVar19 != 10)) {
                    uVar8 = 0;
                    goto LAB_00016074;
                  }
                  uVar8 = 0;
                  uVar34 = (ulonglong)CONCAT14(bVar1,uVar19);
                  goto LAB_000160b4;
                }
                cVar11 = (char)uVar14 + '1';
LAB_00016084:
                uVar8 = 0;
                pcVar24 = *(code **)(puVar23 + 0x1bef0);
                *(char *)(iVar10 + 0x286) = cVar11;
                pcVar4 = (char *)((iVar10 + 0x286) - uStack_98);
                (*pcVar24)(pcVar4,iStack_90,uStack_98);
              }
              else {
                bVar1 = uVar8 != 0;
                if (uVar6 == 0) goto LAB_000160dc;
LAB_0001606c:
                cVar11 = (char)uVar14 + '0';
                if (uVar14 != 0) goto LAB_00016084;
LAB_00016074:
                if ((param_4 & 8) == 0) {
                  cVar11 = '0';
                  goto LAB_00016084;
                }
              }
LAB_000160b4:
              uVar14 = 0;
              pcVar25 = pcVar4;
              if (uVar6 == 1) goto LAB_00015e08;
              goto LAB_00015dcc;
            }
            break;
          }
        } while (iVar18 != 8);
      }
    }
    if (uVar6 == 1) {
      pcVar25 = pcStack_b0;
      if (5 < (int)((((uint)uVar34 & 1) + uVar8 != 0) + uVar14)) goto LAB_00015ddc;
LAB_00015e08:
      do {
        do {
          iVar9 = (int)(uVar34 >> 0x20);
          uVar14 = (uint)uVar34;
          FUN_0001db50(iVar9,uVar14,0,10);
          pcVar25 = pcVar25 + -1;
          *pcVar25 = extraout_v1_01 + '0';
          uVar34 = FUN_0001d6e0(iVar9,uVar14,0,10);
        } while (iVar9 != 0);
      } while (9 < uVar14);
    }
    else {
LAB_00015dcc:
      pcVar25 = pcVar4;
      if ((uVar6 != 0) || ((int)(uVar14 + uVar8) < 1)) goto LAB_00015e08;
LAB_00015ddc:
      uVar34 = uVar34 + 1;
      pcVar25 = pcVar4;
      if (((param_4 & 0x10) == 0) ||
         ((((int)(uVar34 >> 0x20) != 0 || (uVar20 != (uint)uVar34)) || (iVar18 == 8))))
      goto LAB_00015e08;
      iVar18 = iVar18 + 1;
      if ((param_4 & 8) == 0) {
        pcVar24 = *(code **)(puVar23 + 0x1bef0);
        pcVar4[-1] = '0';
        pcVar4 = pcVar4 + ~uStack_98;
        (*pcVar24)(pcVar4,iStack_90);
      }
      pcVar25 = pcVar4 + -1;
      pcVar4[-1] = '1';
    }
  }
  else {
    lVar30 = FUN_0001db50(&_gp_1,uStack_14,local_10,uVar12);
    if (lVar30 == 0) {
      lVar30 = FUN_0001d6e0(&_gp_1,uStack_14,local_10,uVar12);
      uVar34 = lVar30 * CONCAT44(uVar14,param_2);
      lVar30 = FUN_0001d6e0((int)(uVar34 >> 0x20),(int)uVar34,(int)((ulonglong)lVar30 >> 0x20));
      if (lVar30 == CONCAT44(uVar14,param_2)) {
        uVar8 = 0;
        uVar14 = 0;
        goto LAB_00015d94;
      }
    }
LAB_00015680:
    dVar27 = (double)FUN_0001cd70(&_gp_1,uStack_14);
    dVar28 = (double)FUN_0001cd70(local_10,uVar12);
    dVar27 = dVar27 / dVar28;
    dVar28 = (double)FUN_0001cd70(uVar14,param_2);
    dVar27 = dVar27 * dVar28;
    if ((param_4 & 0x10) == 0) {
      dVar28 = dVar27;
      if (((param_4 & 3) != 1) && (dVar27 < *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x730))) {
        uVar33 = FUN_0001ccd0(dVar27);
        iVar18 = (int)((ulonglong)uVar33 >> 0x20);
        uVar14 = (uint)uVar33;
        dVar28 = (double)FUN_0001cd70(iVar18,uVar14);
        if (((param_4 & 3) == 0) && (dVar27 != dVar28)) {
          dVar28 = (double)FUN_0001cd70((uint)(uVar14 + 1 < uVar14) + iVar18);
        }
      }
      (**(code **)(puVar23 + 0x1bdb4))
                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28);
      iVar18 = -1;
      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);
      uVar14 = uVar8;
    }
    else {
      iVar18 = 0;
      dVar28 = (double)uVar20;
      do {
        dVar29 = dVar28;
        dVar28 = dVar29 * (double)uVar20;
        iVar18 = iVar18 + 1;
        if (dVar27 < dVar28) break;
      } while (iVar18 != 8);
      dVar27 = dVar27 / dVar29;
      uVar14 = (uVar13 == 0) + 1 + uStack_98 + 1;
      if (uVar6 == 1) {
        (**(code **)(puVar23 + 0x1bdb4))
                  (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7b4,dVar27);
        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);
        if (uVar8 <= uVar14) goto LAB_00015d0c;
        dVar29 = *(double *)(*(int *)(puVar23 + 0x1bc48) + -0x728);
        dVar28 = dVar27 * dVar29;
      }
      else {
        iVar9 = *(int *)(puVar23 + 0x1bc48);
        dVar28 = dVar27;
        if (*(double *)(iVar9 + -0x730) <= dVar27) {
LAB_000159a0:
          iVar16 = *(int *)(puVar23 + 0x1bc48);
        }
        else {
          lVar30 = FUN_0001ccd0(dVar27);
          dVar28 = dVar27;
          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);
          if (uVar6 != 0) goto LAB_000159a0;
          iVar16 = *(int *)(puVar23 + 0x1bc48);
          if (dVar28 != dVar27) {
            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));
            goto LAB_000159a0;
          }
        }
        (**(code **)(puVar23 + 0x1bdb4))(iVar10,1,0xffffffff,iVar16 + -0x7b4,dVar27);
        uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);
        dVar27 = dVar28;
        if (uVar14 < uVar8) {
          iVar16 = *(int *)(puVar23 + 0x1bc48);
          dVar28 = dVar28 * *(double *)(iVar16 + -0x728);
        }
        else {
LAB_00015d0c:
          if (((param_4 & 8) == 0) || (*(char *)(iVar10 + uVar8 + -1) != '0')) {
            uVar14 = uVar8 - (uStack_98 + 1);
            goto LAB_0001572c;
          }
          iVar16 = *(int *)(puVar23 + 0x1bc48);
          dVar29 = *(double *)(iVar16 + -0x728);
          dVar28 = dVar27 * dVar29;
          if (uVar6 == 1) goto LAB_00015a5c;
          iVar9 = *(int *)(puVar23 + 0x1bc48);
        }
        dVar29 = *(double *)(iVar16 + -0x728);
        if (dVar28 < *(double *)(iVar9 + -0x730)) {
          lVar30 = FUN_0001ccd0(dVar28);
          dVar27 = (double)FUN_0001cd70((int)((ulonglong)lVar30 >> 0x20),(int)lVar30);
          if ((uVar6 == 0) && (dVar27 != dVar28)) {
            dVar27 = (double)FUN_0001cd70((int)((ulonglong)(lVar30 + 1) >> 0x20));
          }
          dVar28 = dVar27;
          dVar29 = *(double *)(iVar16 + -0x728);
        }
      }
LAB_00015a5c:
      (**(code **)(puVar23 + 0x1bdb4))
                (iVar10,1,0xffffffff,*(int *)(puVar23 + 0x1bc48) + -0x7bc,dVar28 / dVar29);
      uVar8 = (**(code **)(puVar23 + 0x1be70))(iVar10);
      uVar14 = uVar8;
    }
LAB_0001572c:
    pcVar25 = pcStack_b0 + -uVar8;
    (**(code **)(puVar23 + 0x1bef8))(pcVar25,iVar10,uVar8);
    pcVar4 = pcVar25 + uVar14;
  }
  if ((param_4 & 4) != 0) {
    uVar6 = (int)pcVar4 - (int)pcVar25;
    iVar9 = (**(code **)(puVar23 + 0x1be70))(iStack_a4);
    (**(code **)(puVar23 + 0x1be80))(auStack_88,pcVar25,uVar6,0x29);
    uVar14 = 0xffffffff;
    while( true ) {
      uVar8 = (uint)*pbVar21;
      if (uVar8 != 0) {
        uVar14 = uVar8;
        if (0x7e < uVar8) {
          uVar14 = uVar6;
        }
        pbVar21 = pbVar21 + 1;
      }
      if (uVar6 < uVar14) break;
      uVar6 = uVar6 - uVar14;
      pcVar25 = pcVar4 + -uVar14;
      (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88 + uVar6,uVar14);
      if (uVar6 == 0) goto LAB_0001575c;
      pcVar4 = pcVar25 + -iVar9;
      (**(code **)(puVar23 + 0x1bef0))(pcVar4,iStack_a4,iVar9);
    }
    pcVar25 = pcVar4 + -uVar6;
    (**(code **)(puVar23 + 0x1bef0))(pcVar25,auStack_88,uVar6);
  }
LAB_0001575c:
  if ((param_4 & 0x80) == 0) goto LAB_00015784;
  if ((iVar18 == -1) && ((local_10 != (int *)0x0 || (iVar18 = 0, 1 < uVar12)))) {
    iVar18 = 1;
    uVar14 = 1;
    piVar7 = (int *)0x0;
    do {
      uVar34 = (ulonglong)uVar14;
      uVar14 = (uint)(uVar34 * uVar20);
      piVar7 = (int *)(uVar20 * (int)piVar7 + (int)(uVar34 * uVar20 >> 0x20));
      if ((local_10 <= piVar7) && ((local_10 != piVar7 || (uVar12 <= uVar14)))) break;
      iVar18 = iVar18 + 1;
    } while (iVar18 != 8);
    if ((param_4 & 0x40) != 0) {
LAB_00015bdc:
      pcStack_b0 = (char *)(iVar10 + 0x288);
      *(undefined1 *)(iVar10 + 0x287) = 0x20;
      goto LAB_00015be8;
    }
LAB_00015bf0:
    iVar10 = *(int *)(puVar23 + 0x1bc48);
    if ((uVar13 == 0) && (iVar10 = *(int *)(puVar23 + 0x1bc48), iVar18 == 1)) {
      cVar11 = 'k';
    }
    else {
      cVar11 = *(char *)(iVar18 + iVar10 + -0x748);
    }
    pcVar4 = pcStack_b0 + 1;
    *pcStack_b0 = cVar11;
  }
  else {
    if ((param_4 & 0x100) == 0 && iVar18 == 0) goto LAB_00015784;
    if ((param_4 & 0x40) != 0) goto LAB_00015bdc;
LAB_00015be8:
    pcVar4 = pcStack_b0;
    if (iVar18 != 0) goto LAB_00015bf0;
  }
  pcStack_b0 = pcVar4;
  if ((param_4 & 0x100) != 0) {
    pcVar15 = pcVar4 + 1;
    pcStack_b0 = pcVar15;
    if ((uVar13 != 0) && (iVar18 != 0)) {
      pcStack_b0 = pcVar4 + 2;
      *pcVar4 = 'i';
      pcVar4 = pcVar15;
    }
    *pcVar4 = 'B';
  }
LAB_00015784:
  while( true ) {
    *pcStack_b0 = '\0';
    if (iStack_5c == *piVar5) break;
    pcStack_b0 = (char *)(**(code **)(puVar23 + 0x1becc))();
  }
  return pcVar25;
}

