
segT expr(int rankarg,expressionS *resultP,expr_mode mode)

{
  int *piVar1;
  segT paVar2;
  segT paVar3;
  byte bVar4;
  byte *pbVar5;
  segT paVar6;
  symbolS *psVar7;
  undefined *puVar8;
  int iVar9;
  char *pcVar10;
  fragS *frag2;
  fragS *frag1;
  bfd_boolean bVar11;
  byte bVar12;
  char cVar13;
  uint uVar14;
  byte *pbVar15;
  int iVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  int iVar20;
  uint uVar21;
  int unaff_EDI;
  bool bVar22;
  addressT aVar23;
  valueT vVar24;
  valueT vVar25;
  uint local_84;
  int local_80;
  int local_78;
  segT local_70;
  int local_64;
  offsetT frag_off;
  expressionS right;
  
  __x86_get_pc_thunk_di();
  if (rankarg < 0) {
                    /* WARNING: Subroutine does not return */
    as_abort((char *)(unaff_EDI + 0x2ed1d),0x6dc,(char *)(unaff_EDI + 0x2f43d));
  }
  if ((char)rankarg == '\0') {
    aVar23 = frag_now_fix();
    *(addressT *)
     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =
         aVar23;
    *(undefined4 *)
     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)
         = *(undefined4 *)((int)&UINT_0005497c + unaff_EDI + 1);
  }
  local_70 = operand(resultP,mode);
  piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);
  pbVar5 = (byte *)*piVar1;
  uVar14 = (uint)*pbVar5;
  if (*pbVar5 == 0x20) {
                    /* WARNING: Subroutine does not return */
    as_abort((char *)(unaff_EDI + 0x2ed1d),0x6e8,(char *)(unaff_EDI + 0x2f43d));
  }
  if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;
  if (uVar14 == 0x2d) {
LAB_00023af0:
    iVar20 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);
    local_64 = 1;
LAB_00023b03:
    if (iVar20 == 0) goto LAB_00023277;
  }
  else if (uVar14 < 0x2e) {
    if (uVar14 == 0x26) {
      local_64 = (pbVar5[1] == 0x26) + 1;
      iVar20 = (uint)(pbVar5[1] == 0x26) * 9 + 0x12;
    }
    else {
      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;
      if (pbVar5[1] == 0x21) {
        iVar20 = 0x11;
        local_64 = 2;
      }
      else {
        iVar16 = 0x16;
        bVar22 = pbVar5[1] == 0x3d;
        iVar20 = 0x10;
LAB_00023175:
        if (bVar22) {
          iVar20 = iVar16;
        }
        local_64 = bVar22 + 1;
      }
    }
  }
  else if (uVar14 == 0x3d) {
    if (pbVar5[1] != 0x3d) goto LAB_00023277;
    iVar20 = 0x15;
    local_64 = 2;
  }
  else if (uVar14 < 0x3e) {
    if (uVar14 != 0x3c) goto LAB_00023af0;
    if ((byte)(pbVar5[1] - 0x3c) < 3) {
      local_64 = 2;
      iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4);
      goto LAB_00023b03;
    }
    iVar20 = 0x17;
    local_64 = 1;
  }
  else if (uVar14 == 0x3e) {
    if (pbVar5[1] != 0x3d) {
      iVar16 = 0xe;
      bVar22 = pbVar5[1] == 0x3e;
      iVar20 = 0x1a;
      goto LAB_00023175;
    }
    iVar20 = 0x19;
    local_64 = 2;
  }
  else {
    if (uVar14 != 0x7c) goto LAB_00023af0;
    iVar20 = 0xf;
    if (pbVar5[1] == 0x7c) {
      iVar20 = 0x1c;
    }
    local_64 = (pbVar5[1] == 0x7c) + 1;
  }
  iVar16 = *(int *)(unaff_EDI + 0x4b1c1);
  cVar13 = *(char *)(unaff_EDI + 0x4b459 + iVar20);
  if ((char)rankarg < cVar13) {
    do {
      *piVar1 = (int)(pbVar5 + local_64);
      right.X_md = 0;
      paVar6 = expr((int)cVar13,&right,mode);
      if (right._16_1_ == '\x01') {
        pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2edd2,5);
        as_warn(pcVar10);
        right._16_1_ = 2;
        right.X_add_number._0_4_ = 0;
        right.X_add_number._4_4_ = 0;
        right.X_add_symbol = (symbolS *)0x0;
        right.X_op_symbol = (symbolS *)0x0;
      }
      pbVar5 = (byte *)*piVar1;
      bVar4 = *pbVar5;
      uVar14 = (uint)bVar4;
      if (bVar4 == 0x20) {
                    /* WARNING: Subroutine does not return */
        as_abort((char *)(unaff_EDI + 0x2ed1d),0x6fd,(char *)(unaff_EDI + 0x2f43d));
      }
      pbVar15 = pbVar5;
      if (iVar20 == 0x1d) {
        if (bVar4 == 0x5d) {
          pbVar15 = pbVar5 + 1;
          *piVar1 = (int)pbVar15;
          uVar14 = (uint)pbVar5[1];
          if (pbVar5[1] == 0x20) {
            pbVar15 = pbVar5 + 2;
            *piVar1 = (int)pbVar15;
            uVar14 = (uint)pbVar5[2];
          }
        }
        else {
          as_bad((char *)(unaff_EDI + 0x2edf0));
          pbVar15 = (byte *)*piVar1;
          uVar14 = (uint)*pbVar15;
        }
      }
      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {
        if (uVar14 == 0x2d) {
LAB_000235f0:
          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);
          local_64 = 1;
          bVar22 = local_78 != 0;
        }
        else if (uVar14 < 0x2e) {
          if (uVar14 == 0x26) {
            bVar22 = true;
            local_64 = (pbVar15[1] == 0x26) + 1;
            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;
          }
          else {
            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;
            bVar4 = pbVar15[1];
            bVar22 = true;
            if (bVar4 == 0x21) {
              local_64 = 2;
              local_78 = 0x11;
            }
            else {
              local_64 = (bVar4 == 0x3d) + 1;
              local_78 = 0x10;
              if (bVar4 == 0x3d) {
                local_78 = 0x16;
              }
            }
          }
        }
        else if (uVar14 == 0x3d) {
          local_64 = 1;
          local_78 = 0;
          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;
          bVar22 = true;
          local_64 = 2;
          local_78 = 0x15;
        }
        else if (uVar14 < 0x3e) {
          if (uVar14 != 0x3c) goto LAB_000235f0;
          if ((byte)(pbVar15[1] - 0x3c) < 3) {
            local_64 = 2;
            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);
            bVar22 = local_78 != 0;
          }
          else {
            bVar22 = true;
            local_64 = 1;
            local_78 = 0x17;
          }
        }
        else if (uVar14 == 0x3e) {
          bVar4 = pbVar15[1];
          bVar22 = true;
          if (bVar4 == 0x3d) {
            local_64 = 2;
            local_78 = 0x19;
          }
          else {
            local_64 = (bVar4 == 0x3e) + 1;
            local_78 = 0x1a;
            if (bVar4 == 0x3e) {
              local_78 = 0xe;
            }
          }
        }
        else {
          if (uVar14 != 0x7c) goto LAB_000235f0;
          bVar22 = true;
          local_64 = (pbVar15[1] == 0x7c) + 1;
          local_78 = 0xf;
          if (pbVar15[1] == 0x7c) {
            local_78 = 0x1c;
          }
        }
        if (((iVar20 != 0x1d) && (bVar22)) &&
           (*(char *)(unaff_EDI + 0x4b459 + iVar20) < *(char *)(unaff_EDI + 0x4b459 + local_78))) {
                    /* WARNING: Subroutine does not return */
          as_abort((char *)(unaff_EDI + 0x2ed1d),0x70d,(char *)(unaff_EDI + 0x2f43d));
        }
      }
      else {
        local_64 = 1;
        local_78 = 0;
      }
LAB_00022fd4:
      if (iVar20 < 10) {
                    /* WARNING: Subroutine does not return */
        as_abort((char *)(unaff_EDI + 0x2ed1d),0x70e,(char *)(unaff_EDI + 0x2f43d));
      }
      if (0x1d < iVar20) {
                    /* WARNING: Subroutine does not return */
        as_abort((char *)(unaff_EDI + 0x2ed1d),0x710,(char *)(unaff_EDI + 0x2f43d));
      }
      if (resultP->field_0x10 == '\x06') {
        if (-*(int *)((int)&resultP->X_add_number + 4) <
            (int)(uint)((int)resultP->X_add_number != 0)) {
          iVar9 = unaff_EDI + 0x2ef8d;
        }
        else {
          iVar9 = unaff_EDI + 0x2efb9;
        }
        pcVar10 = (char *)dcgettext(0,iVar9,5);
        as_warn(pcVar10);
        resultP->field_0x10 = 2;
        *(undefined4 *)&resultP->X_add_number = 0;
        *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;
        resultP->X_add_symbol = (symbolS *)0x0;
        resultP->X_op_symbol = (symbolS *)0x0;
      }
      local_84._0_1_ = (undefined1)iVar20;
      paVar3 = paVar6;
      if (right._16_1_ == '\x06') {
        if ((int)-right.X_add_number._4_4_ < (int)(uint)((uint)right.X_add_number != 0)) {
          puVar8 = (undefined *)(unaff_EDI + 0x2efe5);
        }
        else {
          puVar8 = &UNK_0002f015 + unaff_EDI;
        }
        pcVar10 = (char *)dcgettext(0,puVar8,5);
        as_warn(pcVar10);
        right._16_1_ = 2;
        right.X_add_number._0_4_ = 0;
        right.X_add_number._4_4_ = 0;
        right.X_add_symbol = (symbolS *)0x0;
        right.X_op_symbol = (symbolS *)0x0;
        if (iVar20 == 0x13) {
          bVar4 = (byte)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1;
LAB_000237b4:
          resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';
        }
        else {
          if (iVar20 != 0x14) goto LAB_0002301a;
LAB_0002337b:
          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);
          uVar19 = (uint)resultP->X_add_number;
          *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;
          *(uint *)((int)&resultP->X_add_number + 4) =
               (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);
          bVar4 = resultP->field_0x11;
          bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;
          if (uVar14 < right.X_add_number._4_4_ ||
              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {
            resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';
          }
          else {
            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';
          }
        }
LAB_00023089:
        paVar3 = local_70;
        if (paVar6 != local_70) {
LAB_00023093:
          iVar9 = iVar16;
          if ((local_70 == (segT)(iVar16 + 0xc0)) || (paVar6 == (segT)(iVar16 + 0xc0)))
          goto LAB_00023258;
          paVar2 = *(segT *)((int)&UINT_00054838 + unaff_EDI + 1);
          paVar3 = local_70;
          if (((paVar2 != local_70) &&
              ((((paVar3 = paVar6, paVar2 != paVar6 &&
                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,
                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&
               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&
                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))) &&
             (paVar3 = local_70, iVar20 != 0x14)) {
            pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5);
            as_bad(pcVar10);
          }
        }
      }
      else if (iVar20 == 0x13) {
        if (right._16_1_ == '\x02') {
          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);
          uVar19 = (uint)resultP->X_add_number;
          uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)
          ;
          *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;
          bVar12 = resultP->field_0x11;
          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;
          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;
          if (uVar14 <= uVar17 &&
              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)
          goto LAB_000237b4;
LAB_00023820:
          bVar4 = bVar4 ^ 1;
LAB_00023823:
          resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';
          goto LAB_00023089;
        }
        cVar13 = resultP->field_0x10;
        if (cVar13 != '\x02') goto LAB_0002302e;
        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);
        bVar4 = resultP->field_0x11;
        resultP->field_0x10 = right._16_1_;
        resultP->X_add_symbol = right.X_add_symbol;
        resultP->X_op_symbol = right.X_op_symbol;
        uVar19 = (uint)resultP->X_add_number;
        uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number);
        *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;
        *(uint *)((int)&resultP->X_add_number + 4) = uVar17;
        bVar12 = (bVar4 ^ right._17_1_) >> 1 & 1;
        if (uVar17 < uVar14 || uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19))
        {
          resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd;
        }
        else {
          resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;
        }
      }
      else {
        if (iVar20 == 0x14) {
          if (right._16_1_ == '\x03') {
            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;
            psVar7 = resultP->X_add_symbol;
            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||
                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||
                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||
               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {
LAB_000236bc:
              if (right.X_add_symbol != psVar7) goto LAB_000236cb;
            }
            else {
              iVar9 = S_FORCE_RELOC(psVar7,0);
              if ((iVar9 != 0) ||
                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,
                 iVar9 != 0)) {
                psVar7 = resultP->X_add_symbol;
                goto LAB_000236bc;
              }
            }
            frag2 = symbol_get_frag(psVar7);
            frag1 = symbol_get_frag(resultP->X_add_symbol);
            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);
            if (bVar11 != 0) {
              vVar24 = S_GET_VALUE(resultP->X_add_symbol);
              vVar25 = S_GET_VALUE(right.X_add_symbol);
              local_84 = (uint)vVar24;
              local_80 = (int)(vVar24 >> 0x20);
              uVar17 = local_84 - (uint)vVar25;
              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);
              uVar14 = (uint)resultP->X_add_number;
              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);
              uVar18 = uVar14 - (uint)right.X_add_number;
              uVar21 = (uVar19 - right.X_add_number._4_4_) -
                       (uint)(uVar14 < (uint)right.X_add_number);
              *(uint *)&resultP->X_add_number = uVar18;
              bVar4 = resultP->field_0x11;
              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;
              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;
              if (uVar19 < right.X_add_number._4_4_ ||
                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {
                bVar12 = bVar12 ^ 1;
              }
              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';
              uVar14 = uVar18 - (uint)frag_off;
              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);
              *(uint *)&resultP->X_add_number = uVar14;
              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;
              if (uVar21 < frag_off._4_4_ ||
                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {
                bVar12 = bVar12 ^ 1;
                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';
                resultP->field_0x11 = bVar4;
              }
              else {
                bVar4 = resultP->field_0x11;
              }
              uVar18 = uVar17 + uVar14;
              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);
              *(uint *)&resultP->X_add_number = uVar18;
              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;
              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);
              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {
                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';
              }
              else {
                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';
              }
              resultP->field_0x10 = 2;
              resultP->X_add_symbol = (symbolS *)0x0;
              paVar3 = local_70;
              goto joined_r0x00023268;
            }
          }
LAB_000236cb:
          if (right._16_1_ == '\x02') goto LAB_0002337b;
        }
LAB_0002301a:
        uVar19 = right.X_add_number._4_4_;
        uVar14 = (uint)right.X_add_number;
        cVar13 = resultP->field_0x10;
        if (cVar13 == '\x02') {
          if (right._16_1_ == '\x02') {
            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {
              if (iVar20 - 0xbU < 2) {
                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);
                as_warn(pcVar10);
              }
            }
            else if ((right.X_add_number._4_4_ != 0 ||
                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&
                    (iVar20 - 0xdU < 2)) {
              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);
              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);
              *(undefined4 *)&resultP->X_add_number = 0;
              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;
            }
            if (iVar20 - 10U < 0x13) {
                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +
                                       unaff_EDI + 0x4b219))();
              return paVar6;
            }
          }
LAB_0002303c:
          psVar7 = make_expr_symbol(resultP);
          resultP->X_add_symbol = psVar7;
          psVar7 = make_expr_symbol(&right);
          resultP->X_op_symbol = psVar7;
          bVar4 = resultP->field_0x11;
          resultP->field_0x10 = (undefined1)local_84;
          *(undefined4 *)&resultP->X_add_number = 0;
          *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;
          resultP->field_0x11 = bVar4 & 0xfc | 1;
          goto LAB_00023089;
        }
LAB_0002302e:
        if ((cVar13 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;
        if (1 < iVar20 - 0x13U) {
          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&
              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {
            resultP->field_0x10 = (undefined1)local_84;
            resultP->X_op_symbol = right.X_add_symbol;
            goto LAB_00023089;
          }
          goto LAB_0002303c;
        }
        resultP->field_0x10 = (undefined1)local_84;
        resultP->X_op_symbol = right.X_add_symbol;
        if (iVar20 == 0x13) {
          uVar14 = (uint)resultP->X_add_number;
          uVar19 = *(uint *)((int)&resultP->X_add_number + 4);
          uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)
          ;
          *(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;
          bVar12 = resultP->field_0x11;
          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;
          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;
          if (uVar17 < uVar19 ||
              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))
          goto LAB_00023820;
          goto LAB_00023823;
        }
        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);
        uVar19 = (uint)resultP->X_add_number;
        *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;
        *(uint *)((int)&resultP->X_add_number + 4) =
             (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);
        bVar4 = (byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1;
        if (uVar14 < right.X_add_number._4_4_ ||
            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {
          bVar4 = bVar4 ^ 1;
        }
        resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';
        if (paVar6 != local_70) goto LAB_00023093;
        iVar9 = *(int *)(unaff_EDI + 0x4b1c1);
        if (local_70 == (segT)(iVar9 + 0x180)) {
LAB_00023a77:
          paVar3 = (segT)(iVar9 + 0x180);
          goto joined_r0x00023268;
        }
        if (local_70 != (segT)(iVar9 + 0xc0)) {
          paVar3 = local_70;
          if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||
              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||
             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||
              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))
          goto joined_r0x00023268;
          goto LAB_00023a77;
        }
LAB_00023258:
        paVar3 = (segT)(iVar9 + 0xc0);
      }
joined_r0x00023268:
      local_70 = paVar3;
      if ((local_78 == 0) ||
         (cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78), cVar13 <= (char)rankarg)) break;
      pbVar5 = (byte *)*piVar1;
      iVar20 = local_78;
    } while( true );
  }
LAB_00023277:
  if (resultP->X_add_symbol != (symbolS *)0x0) {
    symbol_mark_used(resultP->X_add_symbol);
  }
  if (((char)rankarg == '\0') && (mode == expr_evaluate)) {
    resolve_expression(resultP);
  }
  if (resultP->field_0x10 == '\x02') {
    local_70 = (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180);
  }
  return local_70;
}



int FUN_00022de0(int param_1,int *param_2,int param_3)

{
  int *piVar1;
  longlong lVar2;
  byte bVar3;
  byte *pbVar4;
  int iVar5;
  int iVar6;
  undefined *puVar7;
  int iVar8;
  undefined4 uVar9;
  int iVar10;
  undefined4 uVar11;
  byte bVar12;
  char cVar13;
  uint uVar14;
  byte *pbVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  int unaff_EDI;
  bool bVar19;
  undefined8 uVar20;
  longlong lVar21;
  longlong lVar22;
  int local_84;
  int local_78;
  int local_70;
  int local_64;
  uint local_3c;
  uint local_38;
  int local_30;
  int local_2c;
  uint local_28;
  uint local_24;
  char local_20;
  byte local_1f;
  undefined2 local_1e;
  
  FUN_0001d60d();
  if (param_1 < 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);
  }
  if ((char)param_1 == '\0') {
    uVar20 = FUN_00024d50();
    *(undefined8 *)
     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =
         uVar20;
    *(undefined4 *)
     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)
         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);
  }
  local_70 = FUN_00022310();
  piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);
  pbVar4 = (byte *)*piVar1;
  uVar14 = (uint)*pbVar4;
  if (*pbVar4 == 0x20) {
                    /* WARNING: Subroutine does not return */
    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);
  }
  if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;
  if (uVar14 == 0x2d) {
LAB_00023af0:
    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);
    local_64 = 1;
LAB_00023b03:
    if (local_84 == 0) goto LAB_00023277;
  }
  else if (uVar14 < 0x2e) {
    if (uVar14 == 0x26) {
      local_64 = (pbVar4[1] == 0x26) + 1;
      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;
    }
    else {
      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;
      if (pbVar4[1] == 0x21) {
        local_64 = 2;
        local_84 = 0x11;
      }
      else {
        iVar8 = 0x16;
        bVar19 = pbVar4[1] == 0x3d;
        local_84 = 0x10;
LAB_00023175:
        if (bVar19) {
          local_84 = iVar8;
        }
        local_64 = bVar19 + 1;
      }
    }
  }
  else if (uVar14 == 0x3d) {
    if (pbVar4[1] != 0x3d) goto LAB_00023277;
    local_64 = 2;
    local_84 = 0x15;
  }
  else if (uVar14 < 0x3e) {
    if (uVar14 != 0x3c) goto LAB_00023af0;
    if ((byte)(pbVar4[1] - 0x3c) < 3) {
      local_64 = 2;
      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);
      goto LAB_00023b03;
    }
    local_64 = 1;
    local_84 = 0x17;
  }
  else if (uVar14 == 0x3e) {
    if (pbVar4[1] != 0x3d) {
      iVar8 = 0xe;
      bVar19 = pbVar4[1] == 0x3e;
      local_84 = 0x1a;
      goto LAB_00023175;
    }
    local_64 = 2;
    local_84 = 0x19;
  }
  else {
    if (uVar14 != 0x7c) goto LAB_00023af0;
    local_84 = 0xf;
    if (pbVar4[1] == 0x7c) {
      local_84 = 0x1c;
    }
    local_64 = (pbVar4[1] == 0x7c) + 1;
  }
  iVar8 = *(int *)(unaff_EDI + 0x4b1c1);
  cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84);
  if ((char)param_1 < cVar13) {
    do {
      *piVar1 = (int)(pbVar4 + local_64);
      local_1e = 0;
      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);
      if (local_20 == '\x01') {
        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);
        FUN_0002bc10(uVar9);
        local_20 = '\x02';
        local_28 = 0;
        local_24 = 0;
        local_30 = 0;
        local_2c = 0;
      }
      pbVar4 = (byte *)*piVar1;
      bVar3 = *pbVar4;
      uVar14 = (uint)bVar3;
      if (bVar3 == 0x20) {
                    /* WARNING: Subroutine does not return */
        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);
      }
      pbVar15 = pbVar4;
      if (local_84 == 0x1d) {
        if (bVar3 == 0x5d) {
          pbVar15 = pbVar4 + 1;
          *piVar1 = (int)pbVar15;
          uVar14 = (uint)pbVar4[1];
          if (pbVar4[1] == 0x20) {
            pbVar15 = pbVar4 + 2;
            *piVar1 = (int)pbVar15;
            uVar14 = (uint)pbVar4[2];
          }
        }
        else {
          FUN_0002bcf0(unaff_EDI + 0x2edf0);
          pbVar15 = (byte *)*piVar1;
          uVar14 = (uint)*pbVar15;
        }
      }
      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {
        if (uVar14 == 0x2d) {
LAB_000235f0:
          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);
          local_64 = 1;
          bVar19 = local_78 != 0;
        }
        else if (uVar14 < 0x2e) {
          if (uVar14 == 0x26) {
            bVar19 = true;
            local_64 = (pbVar15[1] == 0x26) + 1;
            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;
          }
          else {
            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;
            bVar3 = pbVar15[1];
            bVar19 = true;
            if (bVar3 == 0x21) {
              local_64 = 2;
              local_78 = 0x11;
            }
            else {
              local_64 = (bVar3 == 0x3d) + 1;
              local_78 = 0x10;
              if (bVar3 == 0x3d) {
                local_78 = 0x16;
              }
            }
          }
        }
        else if (uVar14 == 0x3d) {
          local_64 = 1;
          local_78 = 0;
          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;
          bVar19 = true;
          local_64 = 2;
          local_78 = 0x15;
        }
        else if (uVar14 < 0x3e) {
          if (uVar14 != 0x3c) goto LAB_000235f0;
          if ((byte)(pbVar15[1] - 0x3c) < 3) {
            local_64 = 2;
            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);
            bVar19 = local_78 != 0;
          }
          else {
            bVar19 = true;
            local_64 = 1;
            local_78 = 0x17;
          }
        }
        else if (uVar14 == 0x3e) {
          bVar3 = pbVar15[1];
          bVar19 = true;
          if (bVar3 == 0x3d) {
            local_64 = 2;
            local_78 = 0x19;
          }
          else {
            local_64 = (bVar3 == 0x3e) + 1;
            local_78 = 0x1a;
            if (bVar3 == 0x3e) {
              local_78 = 0xe;
            }
          }
        }
        else {
          if (uVar14 != 0x7c) goto LAB_000235f0;
          bVar19 = true;
          local_64 = (pbVar15[1] == 0x7c) + 1;
          local_78 = 0xf;
          if (pbVar15[1] == 0x7c) {
            local_78 = 0x1c;
          }
        }
        if (((local_84 != 0x1d) && (bVar19)) &&
           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))
        {
                    /* WARNING: Subroutine does not return */
          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);
        }
      }
      else {
        local_64 = 1;
        local_78 = 0;
      }
LAB_00022fd4:
      if (local_84 < 10) {
                    /* WARNING: Subroutine does not return */
        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);
      }
      if (0x1d < local_84) {
                    /* WARNING: Subroutine does not return */
        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);
      }
      if ((char)param_2[4] == '\x06') {
        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {
          iVar6 = unaff_EDI + 0x2ef8d;
        }
        else {
          iVar6 = unaff_EDI + 0x2efb9;
        }
        uVar9 = dcgettext(0,iVar6,5);
        FUN_0002bc10(uVar9);
        *(undefined1 *)(param_2 + 4) = 2;
        param_2[2] = 0;
        param_2[3] = 0;
        *param_2 = 0;
        param_2[1] = 0;
      }
      iVar6 = iVar5;
      if (local_20 == '\x06') {
        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {
          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);
        }
        else {
          puVar7 = &UNK_0002f015 + unaff_EDI;
        }
        uVar9 = dcgettext(0,puVar7,5);
        FUN_0002bc10(uVar9);
        local_20 = '\x02';
        local_28 = 0;
        local_24 = 0;
        local_30 = 0;
        local_2c = 0;
        if (local_84 == 0x13) {
          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;
LAB_000237b4:
          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';
        }
        else {
          if (local_84 != 0x14) goto LAB_0002301a;
LAB_0002337b:
          uVar14 = param_2[3];
          uVar17 = param_2[2];
          param_2[2] = uVar17 - local_28;
          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);
          bVar3 = *(byte *)((int)param_2 + 0x11);
          bVar12 = (local_1f ^ bVar3) >> 1 & 1;
          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {
            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';
          }
          else {
            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';
          }
        }
LAB_00023089:
        iVar6 = local_70;
        if (iVar5 != local_70) {
LAB_00023093:
          iVar10 = iVar8;
          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;
          iVar6 = local_70;
          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&
              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&
                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&
                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&
               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&
                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&
             (iVar6 = local_70, local_84 != 0x14)) {
            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);
            FUN_0002bcf0(uVar9);
          }
        }
      }
      else if (local_84 == 0x13) {
        if (local_20 == '\x02') {
          uVar14 = param_2[3];
          uVar17 = param_2[2];
          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);
          param_2[2] = uVar17 + local_28;
          bVar12 = *(byte *)((int)param_2 + 0x11);
          param_2[3] = uVar16;
          bVar3 = (local_1f ^ bVar12) >> 1 & 1;
          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)
          goto LAB_000237b4;
LAB_00023820:
          bVar3 = bVar3 ^ 1;
LAB_00023823:
          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';
          goto LAB_00023089;
        }
        cVar13 = (char)param_2[4];
        if (cVar13 != '\x02') goto LAB_0002302e;
        uVar14 = param_2[3];
        bVar3 = *(byte *)((int)param_2 + 0x11);
        *(char *)(param_2 + 4) = local_20;
        *param_2 = local_30;
        param_2[1] = local_2c;
        uVar17 = param_2[2];
        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);
        param_2[2] = uVar17 + local_28;
        param_2[3] = uVar16;
        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;
        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {
          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;
        }
        else {
          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;
        }
      }
      else {
        if (local_84 == 0x14) {
          if (local_20 == '\x03') {
            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;
            iVar6 = *param_2;
            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||
                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||
                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||
               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {
LAB_000236bc:
              if (local_30 != iVar6) goto LAB_000236cb;
            }
            else {
              iVar6 = FUN_00038140(iVar6,0);
              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)
                 ) {
                iVar6 = *param_2;
                goto LAB_000236bc;
              }
            }
            uVar9 = FUN_0003b250(iVar6);
            uVar11 = FUN_0003b250(*param_2);
            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);
            if (iVar6 != 0) {
              lVar21 = FUN_00039de0(*param_2);
              lVar22 = FUN_00039de0(local_30);
              uVar14 = param_2[2];
              uVar17 = param_2[3];
              uVar16 = uVar14 - local_28;
              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);
              param_2[2] = uVar16;
              param_2[3] = uVar18;
              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;
              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {
                bVar3 = bVar3 ^ 1;
              }
              *(byte *)((int)param_2 + 0x11) =
                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';
              uVar14 = uVar16 - local_3c;
              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);
              param_2[2] = uVar14;
              param_2[3] = uVar17;
              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {
                bVar3 = bVar3 ^ 1;
                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';
                *(byte *)((int)param_2 + 0x11) = bVar12;
              }
              else {
                bVar12 = *(byte *)((int)param_2 + 0x11);
              }
              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);
              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);
              *(longlong *)(param_2 + 2) = lVar2;
              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);
              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {
                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';
              }
              else {
                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';
              }
              *(undefined1 *)(param_2 + 4) = 2;
              *param_2 = 0;
              iVar6 = local_70;
              goto joined_r0x00023268;
            }
          }
LAB_000236cb:
          if (local_20 == '\x02') goto LAB_0002337b;
        }
LAB_0002301a:
        uVar17 = local_24;
        uVar14 = local_28;
        cVar13 = (char)param_2[4];
        if (cVar13 == '\x02') {
          if (local_20 == '\x02') {
            if (local_24 == 0 && local_28 == 0) {
              if (local_84 - 0xbU < 2) {
                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);
                FUN_0002bc10(uVar9);
              }
            }
            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)
                    ) {
              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);
              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);
              param_2[2] = 0;
              param_2[3] = 0;
            }
            if (local_84 - 10U < 0x13) {
                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +
                                unaff_EDI + 0x4b219))();
              return iVar8;
            }
          }
LAB_0002303c:
          iVar6 = FUN_00021360(param_2);
          *param_2 = iVar6;
          iVar6 = FUN_00021360(&local_30);
          param_2[1] = iVar6;
          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;
          param_2[2] = 0;
          param_2[3] = 0;
          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;
          goto LAB_00023089;
        }
LAB_0002302e:
        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;
        if (1 < local_84 - 0x13U) {
          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {
            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;
            param_2[1] = local_30;
            goto LAB_00023089;
          }
          goto LAB_0002303c;
        }
        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;
        param_2[1] = local_30;
        if (local_84 == 0x13) {
          uVar14 = param_2[2];
          uVar17 = param_2[3];
          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);
          param_2[2] = uVar14 + local_28;
          bVar12 = *(byte *)((int)param_2 + 0x11);
          param_2[3] = uVar16;
          bVar3 = (local_1f ^ bVar12) >> 1 & 1;
          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))
          goto LAB_00023820;
          goto LAB_00023823;
        }
        uVar14 = param_2[3];
        uVar17 = param_2[2];
        param_2[2] = uVar17 - local_28;
        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);
        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;
        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {
          bVar3 = bVar3 ^ 1;
        }
        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';
        if (iVar5 != local_70) goto LAB_00023093;
        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);
        if (local_70 == iVar10 + 0x180) {
LAB_00023a77:
          iVar6 = iVar10 + 0x180;
          goto joined_r0x00023268;
        }
        if (local_70 != iVar10 + 0xc0) {
          iVar6 = local_70;
          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||
              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||
             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||
              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;
          goto LAB_00023a77;
        }
LAB_00023258:
        iVar6 = iVar10 + 0xc0;
      }
joined_r0x00023268:
      local_70 = iVar6;
      if (local_78 == 0) break;
      local_84 = local_78;
      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);
      if (cVar13 <= (char)param_1) break;
      pbVar4 = (byte *)*piVar1;
    } while( true );
  }
LAB_00023277:
  if (*param_2 != 0) {
    FUN_0003b280(*param_2);
  }
  if (((char)param_1 == '\0') && (param_3 == 0)) {
    FUN_00021760(param_2);
  }
  if ((char)param_2[4] == '\x02') {
    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;
  }
  return local_70;
}


PUSH EBP
PUSH EDI
CALL 0x0001d60d
ADD EDI,0x4b219
PUSH ESI
PUSH EBX
SUB ESP,0x7c
MOVZX EAX,byte ptr [ESP + 0x90]
MOV ESI,dword ptr [ESP + 0x94]
MOV byte ptr [ESP + 0x3b],AL
MOV EAX,dword ptr [ESP + 0x90]
TEST EAX,EAX
JS 0x0002425a
CMP byte ptr [ESP + 0x90],0x0
JZ 0x00023ac0
MOV EDX,dword ptr [ESP + 0x98]
MOV EAX,ESI
CALL 0x00022310
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[EDI + 0x9838]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [EAX]
MOVZX EDX,byte ptr [EAX]
CMP DL,0x20
JZ 0x00024275
LEA ECX,[EDI + 0x2e0]
CMP byte ptr [ECX + EDX*0x1],0x0
MOV dword ptr [ESP + 0x34],ECX
JNZ 0x00023277
CMP EDX,0x2d
JZ 0x00023af0
JLE 0x00023140
CMP EDX,0x3d
JZ 0x00023f70
JLE 0x00023190
CMP EDX,0x3e
JZ 0x00023b18
CMP EDX,0x7c
JNZ 0x00023af0
CMP byte ptr [EAX + 0x1],0x7c
MOV EDX,0xf
MOV ECX,0x1c
SETZ BL
MOV EBP,EDX
CMOVZ EBP,ECX
MOVZX EBX,BL
ADD EBX,0x1
MOV dword ptr [ESP + 0x28],EBX
MOV dword ptr [ESP + 0x8],EBP
LEA ESI,[ESI]
MOV EBX,dword ptr [EDI + 0xffffffa8]
LEA ECX,[ESP + 0x5c]
MOVSX EDX,byte ptr [EDI + EBP*0x1 + 0x240]
MOV dword ptr [ESP + 0x2c],ECX
LEA ECX,[EBX + 0xc0]
MOV dword ptr [ESP + 0x3c],EBX
MOV dword ptr [ESP + 0x30],ECX
CMP DL,byte ptr [ESP + 0x90]
JLE 0x00023277
MOV dword ptr [ESP + 0x94],ESI
MOV ESI,dword ptr [ESP + 0x18]
ADD EAX,dword ptr [ESP + 0x28]
SUB ESP,0x4
MOV dword ptr [ESI],EAX
XOR EAX,EAX
MOV word ptr [ESP + 0x72],AX
PUSH dword ptr [ESP + 0x9c]
PUSH dword ptr [ESP + 0x34]
PUSH EDX
CALL 0x00022de0
MOV dword ptr [ESP + 0x30],EAX
ADD ESP,0x10
CMP byte ptr [ESP + 0x6c],0x1
JZ 0x00023580
MOV EAX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [EAX]
MOVZX EAX,byte ptr [EDX]
CMP AL,0x20
JZ 0x000241e6
CMP dword ptr [ESP + 0x8],0x1d
JZ 0x000232e0
MOV ESI,dword ptr [ESP + 0x34]
CMP byte ptr [ESI + EAX*0x1],0x0
JNZ 0x000232c8
CMP EAX,0x2d
JZ 0x000235f0
JLE 0x00023200
CMP EAX,0x3d
JZ 0x00023750
JLE 0x000231c8
CMP EAX,0x3e
JZ 0x00023710
CMP EAX,0x7c
JNZ 0x000235f0
XOR ECX,ECX
CMP byte ptr [EDX + 0x1],0x7c
MOV EBX,0x1c
MOV EAX,0x1
SETZ CL
ADD ECX,0x1
CMP byte ptr [EDX + 0x1],0x7c
MOV EDX,0xf
CMOVZ EDX,EBX
MOV dword ptr [ESP + 0x28],ECX
MOV dword ptr [ESP + 0x14],EDX
LEA ESI,[ESI]
NOP
CMP dword ptr [ESP + 0x8],0x1d
JZ 0x00022fd4
TEST AL,AL
JZ 0x00022fd4
MOV ESI,dword ptr [ESP + 0x14]
MOVZX EAX,byte ptr [EDI + EBP*0x1 + 0x240]
CMP byte ptr [EDI + ESI*0x1 + 0x240],AL
JG 0x0002423d
CMP EBP,0x9
JLE 0x00024220
CMP EBP,0x1d
JG 0x00024203
MOV EAX,dword ptr [ESP + 0x94]
CMP byte ptr [EAX + 0x10],0x6
JZ 0x000233d0
MOVZX EAX,byte ptr [ESP + 0x6c]
CMP AL,0x6
JZ 0x00023310
CMP dword ptr [ESP + 0x8],0x13
JZ 0x00023488
CMP dword ptr [ESP + 0x8],0x14
JZ 0x00023640
MOV EAX,dword ptr [ESP + 0x94]
MOVZX EDX,byte ptr [EAX + 0x10]
CMP DL,0x2
JZ 0x00023430
MOVZX EBX,byte ptr [ESP + 0x8]
CMP DL,0x3
JZ 0x00023520
SUB ESP,0xc
PUSH dword ptr [ESP + 0xa0]
CALL 0x00021360
MOV ESI,dword ptr [ESP + 0xa4]
MOV dword ptr [ESI],EAX
POP ECX
PUSH dword ptr [ESP + 0x38]
CALL 0x00021360
MOV ECX,dword ptr [ESP + 0xa4]
ADD ESP,0x10
MOV dword ptr [ECX + 0x4],EAX
MOVZX EAX,byte ptr [ECX + 0x11]
MOV byte ptr [ECX + 0x10],BL
AND EAX,0xfffffffc
MOV dword ptr [ECX + 0x8],0x0
OR EAX,0x1
MOV dword ptr [ECX + 0xc],0x0
MOV byte ptr [ECX + 0x11],AL
MOV EBX,dword ptr [ESP + 0x1c]
CMP dword ptr [ESP + 0x20],EBX
JZ 0x00023108
MOV EBP,dword ptr [ESP + 0x3c]
MOV ESI,dword ptr [ESP + 0x30]
CMP dword ptr [ESP + 0x1c],ESI
JZ 0x00023258
MOV ECX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [ESP + 0x30]
CMP ECX,EAX
JZ 0x00023258
LEA EAX,[EDI + 0x9620]
MOV EBX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [EAX]
CMP EAX,EBX
JZ 0x00023108
CMP EAX,ECX
JZ 0x00023630
LEA EAX,[EDI + 0x96d0]
MOV EAX,dword ptr [EAX]
CMP EAX,EBX
JZ 0x00023108
CMP EAX,ECX
JZ 0x00023630
MOV EAX,dword ptr [ESP + 0x3c]
ADD EAX,0x180
CMP ECX,EAX
JZ 0x00023108
CMP EBX,EAX
JZ 0x00023630
CMP dword ptr [ESP + 0x8],0x14
JNZ 0x00023950
LEA ESI,[ESI]
MOV EDX,dword ptr [ESP + 0x14]
TEST EDX,EDX
JZ 0x00023270
MOV EBP,dword ptr [ESP + 0x14]
MOVSX EDX,byte ptr [EDI + EBP*0x1 + 0x240]
CMP DL,byte ptr [ESP + 0x3b]
JLE 0x00023270
MOV EAX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x8],EBP
MOV EAX,dword ptr [EAX]
JMP 0x00022ef0
CMP EDX,0x26
JZ 0x00023b40
CMP EDX,0x2b
JZ 0x00023af0
CMP EDX,0x21
JNZ 0x00023af0
MOVZX EDX,byte ptr [EAX + 0x1]
CMP DL,0x21
JZ 0x00024164
MOV EBX,0x16
CMP DL,0x3d
MOV EBP,0x10
SETZ CL
CMOVZ EBP,EBX
MOVZX ECX,CL
ADD ECX,0x1
MOV dword ptr [ESP + 0x8],EBP
MOV dword ptr [ESP + 0x28],ECX
JMP 0x00022eb8
CMP EDX,0x3c
JNZ 0x00023af0
MOVZX EBX,byte ptr [EAX + 0x1]
LEA EDX,[EBX + -0x3c]
CMP DL,0x2
JA 0x00023f94
MOVZX EDX,DL
MOV dword ptr [ESP + 0x28],0x2
MOV ECX,dword ptr [EDI + EDX*0x4 + 0xfffe4204]
MOV dword ptr [ESP + 0x8],ECX
JMP 0x00023b03
CMP EAX,0x3c
JNZ 0x000235f0
MOVZX EAX,byte ptr [EDX + 0x1]
SUB EAX,0x3c
CMP AL,0x2
JA 0x00023888
MOVZX EAX,AL
MOV dword ptr [ESP + 0x28],0x2
MOV EAX,dword ptr [EDI + EAX*0x4 + 0xfffe4204]
TEST EAX,EAX
MOV dword ptr [ESP + 0x14],EAX
SETNZ AL
JMP 0x00022fb0
CMP EAX,0x26
JZ 0x000236e0
CMP EAX,0x2b
JZ 0x000235f0
CMP EAX,0x21
JNZ 0x000235f0
MOVZX EDX,byte ptr [EDX + 0x1]
MOV EAX,0x1
CMP DL,0x21
JZ 0x00023a90
XOR ECX,ECX
CMP DL,0x3d
MOV EBX,0x16
SETZ CL
ADD ECX,0x1
CMP DL,0x3d
MOV EDX,0x10
CMOVZ EDX,EBX
MOV dword ptr [ESP + 0x28],ECX
MOV dword ptr [ESP + 0x14],EDX
JMP 0x00022fb0
MOV EDX,dword ptr [ESP + 0x14]
LEA EAX,[EBP + 0xc0]
MOV dword ptr [ESP + 0x1c],EAX
TEST EDX,EDX
JNZ 0x00023114
NOP
MOV ESI,dword ptr [ESP + 0x94]
MOV EAX,dword ptr [ESI]
TEST EAX,EAX
JZ 0x0002328b
SUB ESP,0xc
MOV EBX,EDI
PUSH EAX
CALL 0x0003b280
ADD ESP,0x10
CMP byte ptr [ESP + 0x90],0x0
JNZ 0x000232a4
MOV EAX,dword ptr [ESP + 0x98]
TEST EAX,EAX
JZ 0x00023938
CMP byte ptr [ESI + 0x10],0x2
JNZ 0x000232b9
MOV EAX,dword ptr [EDI + 0xffffffa8]
ADD EAX,0x180
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x1c]
ADD ESP,0x7c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESP + 0x28],0x1
MOV dword ptr [ESP + 0x14],0x0
JMP 0x00022fd4
CMP AL,0x5d
JZ 0x000235d0
SUB ESP,0xc
LEA EAX,[EDI + 0xfffe3bd7]
MOV EBX,EDI
PUSH EAX
CALL 0x0002bcf0
MOV EAX,dword ptr [ESP + 0x28]
ADD ESP,0x10
MOV EDX,dword ptr [EAX]
MOVZX EAX,byte ptr [EDX]
JMP 0x00022f43
XOR EAX,EAX
CMP EAX,dword ptr [ESP + 0x64]
SBB EAX,dword ptr [ESP + 0x68]
JGE 0x00023610
SUB ESP,0x4
LEA EAX,[EDI + 0xfffe3dcc]
PUSH 0x5
PUSH EAX
MOV EBX,EDI
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bc10
ADD ESP,0x10
CMP dword ptr [ESP + 0x8],0x13
MOV byte ptr [ESP + 0x6c],0x2
MOV dword ptr [ESP + 0x64],0x0
MOV dword ptr [ESP + 0x68],0x0
MOV dword ptr [ESP + 0x5c],0x0
MOV dword ptr [ESP + 0x60],0x0
JZ 0x000237a0
CMP dword ptr [ESP + 0x8],0x14
JNZ 0x0002301a
MOV EAX,dword ptr [ESP + 0x94]
MOV ESI,dword ptr [ESP + 0x94]
MOV EDX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x8]
MOV EBX,EDX
MOV ECX,EAX
SUB ECX,dword ptr [ESP + 0x64]
SBB EBX,dword ptr [ESP + 0x68]
MOV dword ptr [ESI + 0x8],ECX
MOVZX ECX,byte ptr [ESP + 0x6d]
MOV dword ptr [ESI + 0xc],EBX
MOVZX EBX,byte ptr [ESI + 0x11]
XOR ECX,EBX
SHR CL,0x1
AND ECX,0x1
CMP EAX,dword ptr [ESP + 0x64]
MOV EAX,EDX
SBB EAX,dword ptr [ESP + 0x68]
JC 0x00023840
ADD ECX,ECX
AND EBX,0xfffffffd
OR EBX,ECX
MOV byte ptr [ESI + 0x11],BL
JMP 0x00023089
MOV ESI,dword ptr [ESP + 0x94]
XOR EAX,EAX
CMP EAX,dword ptr [ESI + 0x8]
SBB EAX,dword ptr [ESI + 0xc]
JGE 0x00023620
SUB ESP,0x4
LEA EAX,[EDI + 0xfffe3d74]
PUSH 0x5
PUSH EAX
MOV EBX,EDI
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bc10
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x94]
MOV byte ptr [EAX + 0x10],0x2
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [EAX],0x0
MOV dword ptr [EAX + 0x4],0x0
JMP 0x00022ff7
CMP byte ptr [ESP + 0x6c],0x2
MOVZX EBX,byte ptr [ESP + 0x8]
JNZ 0x0002303c
MOV EDX,dword ptr [ESP + 0x68]
MOV EAX,dword ptr [ESP + 0x64]
MOV EBX,EDX
MOV dword ptr [ESP + 0x40],EAX
OR EBX,EAX
MOV dword ptr [ESP + 0x44],EDX
JNZ 0x000238a8
MOV EAX,dword ptr [ESP + 0x8]
SUB EAX,0xb
CMP EAX,0x1
JBE 0x00023bac
MOV EAX,dword ptr [ESP + 0x8]
SUB EAX,0xa
CMP EAX,0x12
JA 0x00023f63
MOV ESI,dword ptr [EDI + EAX*0x4 + 0xfffe41b8]
ADD ESI,EDI
JMP ESI
CMP AL,0x2
JZ 0x000237d6
MOV ECX,dword ptr [ESP + 0x94]
MOVZX EDX,byte ptr [ECX + 0x10]
CMP DL,0x2
JNZ 0x0002302e
MOV ECX,dword ptr [ESP + 0x94]
MOV ESI,dword ptr [ESP + 0x94]
MOV EDX,dword ptr [ECX + 0xc]
MOVZX EBP,byte ptr [ESI + 0x11]
MOV byte ptr [ECX + 0x10],AL
MOV EAX,dword ptr [ESP + 0x5c]
MOV EBX,EDX
MOV dword ptr [ESP + 0xc],EDX
MOV dword ptr [ECX],EAX
MOV EAX,dword ptr [ESP + 0x60]
MOV dword ptr [ECX + 0x4],EAX
MOV EAX,dword ptr [ECX + 0x8]
MOV dword ptr [ESP + 0x8],EAX
MOV ECX,EAX
MOV EAX,EBP
ADD ECX,dword ptr [ESP + 0x64]
ADC EBX,dword ptr [ESP + 0x68]
XOR AL,byte ptr [ESP + 0x6d]
MOV dword ptr [ESI + 0x8],ECX
SHR AL,0x1
MOV dword ptr [ESI + 0xc],EBX
MOV ESI,EBX
AND EAX,0x1
CMP ECX,dword ptr [ESP + 0x8]
SBB ESI,dword ptr [ESP + 0xc]
JC 0x00023860
ADD EAX,EAX
AND EBP,0xfffffffd
MOV ESI,dword ptr [ESP + 0x94]
OR EAX,EBP
MOV byte ptr [ESI + 0x11],AL
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x00023108
CMP byte ptr [ESP + 0x6c],0x3
JNZ 0x0002303c
MOV EAX,dword ptr [ESP + 0x8]
SUB EAX,0x13
CMP EAX,0x1
JBE 0x00023978
MOV EAX,dword ptr [ESP + 0x94]
MOV ECX,dword ptr [ESP + 0x94]
MOV EAX,dword ptr [EAX + 0x8]
MOV EDX,dword ptr [ECX + 0xc]
OR EAX,dword ptr [ESP + 0x64]
OR EDX,dword ptr [ESP + 0x68]
OR EDX,EAX
JNZ 0x0002303c
MOVZX EAX,byte ptr [ESP + 0x8]
MOV ESI,dword ptr [ESP + 0x94]
MOV byte ptr [ESI + 0x10],AL
MOV EAX,dword ptr [ESP + 0x5c]
MOV dword ptr [ESI + 0x4],EAX
JMP 0x00023089
SUB ESP,0x4
LEA EAX,[EDI + 0xfffe3bb9]
MOV EBX,EDI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bc10
MOV byte ptr [ESP + 0x7c],0x2
MOV dword ptr [ESP + 0x74],0x0
MOV dword ptr [ESP + 0x78],0x0
MOV dword ptr [ESP + 0x6c],0x0
MOV dword ptr [ESP + 0x70],0x0
ADD ESP,0x10
JMP 0x00022f27
MOV EAX,dword ptr [ESP + 0x18]
LEA EBX,[EDX + 0x1]
MOV dword ptr [EAX],EBX
MOVZX EAX,byte ptr [EDX + 0x1]
CMP AL,0x20
JZ 0x00023788
MOV EDX,EBX
JMP 0x00022f43
MOV EAX,dword ptr [EDI + EAX*0x4 + 0xfffe4240]
MOV dword ptr [ESP + 0x28],0x1
TEST EAX,EAX
MOV dword ptr [ESP + 0x14],EAX
SETNZ AL
JMP 0x00022fb0
SUB ESP,0x4
LEA EAX,[EDI + 0xfffe3dfc]
PUSH 0x5
JMP 0x0002332b
SUB ESP,0x4
LEA EAX,[EDI + 0xfffe3da0]
PUSH 0x5
JMP 0x000233f0
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x00023108
CMP AL,0x3
JNZ 0x000236cb
MOV EAX,dword ptr [ESP + 0x94]
CMP byte ptr [EAX + 0x10],0x3
JNZ 0x0002301a
MOV ESI,dword ptr [ESP + 0x1c]
CMP dword ptr [ESP + 0x20],ESI
JNZ 0x0002301a
MOV EDX,dword ptr [EDI + 0xffffffa8]
MOV ESI,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX]
LEA ECX,[EDX + 0xc0]
CMP ESI,ECX
JZ 0x000236bc
ADD EDX,0x180
CMP ESI,EDX
JZ 0x000236bc
LEA EDX,[EDI + 0x96d0]
CMP dword ptr [EDX],ESI
JZ 0x000236bc
LEA EDX,[EDI + 0x9620]
CMP dword ptr [EDX],ESI
JZ 0x000236bc
SUB ESP,0x8
MOV EBX,EDI
PUSH 0x0
PUSH EAX
CALL 0x00038140
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00023fae
MOV EAX,dword ptr [ESP + 0x94]
MOV EAX,dword ptr [EAX]
CMP dword ptr [ESP + 0x5c],EAX
JZ 0x00023fcb
MOVZX EAX,byte ptr [ESP + 0x6c]
CMP AL,0x2
JNZ 0x0002301a
JMP 0x0002337b
XOR ECX,ECX
CMP byte ptr [EDX + 0x1],0x26
MOV EAX,0x1
SETZ CL
ADD ECX,0x1
MOV dword ptr [ESP + 0x28],ECX
XOR ECX,ECX
CMP byte ptr [EDX + 0x1],0x26
SETZ CL
LEA ESI,[ECX + ECX*0x8 + 0x12]
MOV dword ptr [ESP + 0x14],ESI
JMP 0x00022fb0
MOVZX EDX,byte ptr [EDX + 0x1]
MOV EAX,0x1
CMP DL,0x3d
JZ 0x00023aa8
XOR ECX,ECX
CMP DL,0x3e
MOV EBX,0xe
SETZ CL
ADD ECX,0x1
CMP DL,0x3e
MOV EDX,0x1a
CMOVZ EDX,EBX
MOV dword ptr [ESP + 0x28],ECX
MOV dword ptr [ESP + 0x14],EDX
JMP 0x00022fb0
CMP byte ptr [EDX + 0x1],0x3d
MOV dword ptr [ESP + 0x28],0x1
MOV dword ptr [ESP + 0x14],0x0
JNZ 0x00022fd4
MOV EAX,0x1
MOV dword ptr [ESP + 0x28],0x2
MOV dword ptr [ESP + 0x14],0x15
JMP 0x00022fb0
MOV EAX,dword ptr [ESP + 0x18]
LEA EBX,[EDX + 0x2]
MOV dword ptr [EAX],EBX
MOVZX EAX,byte ptr [EDX + 0x2]
MOV EDX,EBX
JMP 0x00022f43
MOV EAX,dword ptr [ESP + 0x94]
MOVZX EAX,byte ptr [EAX + 0x11]
XOR AL,byte ptr [ESP + 0x6d]
SHR AL,0x1
AND EAX,0x1
LEA EDX,[EAX + EAX*0x1]
MOV EAX,dword ptr [ESP + 0x94]
MOV EBX,dword ptr [ESP + 0x94]
MOVZX EAX,byte ptr [EAX + 0x11]
AND EAX,0xfffffffd
OR EAX,EDX
MOV byte ptr [EBX + 0x11],AL
JMP 0x00023089
MOV EAX,dword ptr [ESP + 0x94]
MOV EDX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x40],EAX
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0x94]
MOV EBX,EDX
ADD ECX,dword ptr [ESP + 0x64]
ADC EBX,dword ptr [ESP + 0x68]
MOV dword ptr [ESP + 0x44],EDX
MOV dword ptr [EAX + 0x8],ECX
MOVZX EDX,byte ptr [EAX + 0x11]
MOV ESI,EBX
MOV dword ptr [EAX + 0xc],EBX
MOVZX EAX,byte ptr [ESP + 0x6d]
XOR EAX,EDX
SHR AL,0x1
AND EAX,0x1
CMP ECX,dword ptr [ESP + 0x40]
SBB ESI,dword ptr [ESP + 0x44]
JNC 0x000237b4
XOR EAX,0x1
ADD EAX,EAX
AND EDX,0xfffffffd
OR EDX,EAX
MOV EAX,dword ptr [ESP + 0x94]
MOV byte ptr [EAX + 0x11],DL
JMP 0x00023089
XOR ECX,0x1
AND EBX,0xfffffffd
MOV EAX,dword ptr [ESP + 0x94]
ADD ECX,ECX
OR EBX,ECX
MOV byte ptr [EAX + 0x11],BL
JMP 0x00023089
XOR EAX,0x1
AND EBP,0xfffffffd
MOV ECX,dword ptr [ESP + 0x94]
ADD EAX,EAX
OR EAX,EBP
MOV byte ptr [ECX + 0x11],AL
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x00023108
MOV EAX,0x1
MOV dword ptr [ESP + 0x28],0x1
MOV dword ptr [ESP + 0x14],0x17
JMP 0x00022fb0
MOV EBX,dword ptr [ESP + 0x40]
MOV EAX,0x3f
MOV ESI,dword ptr [ESP + 0x44]
CMP EAX,EBX
MOV EAX,0x0
SBB EAX,ESI
JNC 0x0002346a
MOV EAX,dword ptr [ESP + 0x8]
SUB EAX,0xd
CMP EAX,0x1
JA 0x0002346a
SUB ESP,0x4
LEA EAX,[EDI + 0xfffe3bfe]
MOV EBX,EDI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],0x0
PUSH 0x0
PUSH 0x0
PUSH 0x3f
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESP + 0x68]
PUSH dword ptr [ESP + 0x68]
PUSH EAX
CALL 0x0002c210
MOV EAX,dword ptr [ESP + 0xc4]
ADD ESP,0x30
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EAX + 0xc],0x0
MOV dword ptr [ESP + 0x40],0x0
MOV dword ptr [ESP + 0x44],0x0
JMP 0x0002346a
SUB ESP,0xc
PUSH ESI
CALL 0x00021760
ADD ESP,0x10
JMP 0x000232a4
SUB ESP,0x4
LEA EAX,[EDI + 0xfffe3e28]
MOV EBX,EDI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bcf0
ADD ESP,0x10
JMP 0x00023108
MOV ESI,dword ptr [ESP + 0x8]
MOV EBX,dword ptr [ESP + 0x94]
MOV EAX,ESI
MOV byte ptr [EBX + 0x10],AL
MOV EAX,dword ptr [ESP + 0x5c]
MOV dword ptr [EBX + 0x4],EAX
CMP ESI,0x13
JZ 0x00023b60
MOV EAX,dword ptr [ESP + 0x94]
MOV ESI,dword ptr [ESP + 0x94]
MOV EBX,dword ptr [EAX + 0xc]
MOV ECX,dword ptr [EAX + 0x8]
MOV EDX,EBX
MOV EAX,ECX
SUB EAX,dword ptr [ESP + 0x64]
SBB EDX,dword ptr [ESP + 0x68]
MOV dword ptr [ESI + 0x8],EAX
MOVZX EAX,byte ptr [ESP + 0x6d]
MOV dword ptr [ESI + 0xc],EDX
MOVZX EDX,byte ptr [ESI + 0x11]
MOV ESI,EBX
XOR EAX,EDX
SHR AL,0x1
AND EAX,0x1
CMP ECX,dword ptr [ESP + 0x64]
SBB ESI,dword ptr [ESP + 0x68]
JNC 0x000239dd
XOR EAX,0x1
ADD EAX,EAX
AND EDX,0xfffffffd
OR EDX,EAX
MOV EAX,dword ptr [ESP + 0x94]
MOV byte ptr [EAX + 0x11],DL
MOV ESI,dword ptr [ESP + 0x1c]
CMP dword ptr [ESP + 0x20],ESI
JNZ 0x00023093
MOV EBP,dword ptr [EDI + 0xffffffa8]
LEA EAX,[EBP + 0x180]
CMP dword ptr [ESP + 0x1c],EAX
JZ 0x00023a77
LEA EAX,[EBP + 0xc0]
CMP dword ptr [ESP + 0x1c],EAX
JZ 0x00023258
LEA EAX,[EDI + 0x96d0]
MOV ESI,dword ptr [ESP + 0x1c]
CMP dword ptr [EAX],ESI
JZ 0x00023108
LEA EAX,[EDI + 0x9620]
CMP dword ptr [EAX],ESI
JZ 0x00023108
SUB ESP,0x8
MOV EBX,EDI
PUSH 0x0
MOV EAX,dword ptr [ESP + 0xa0]
PUSH dword ptr [EAX]
CALL 0x00038140
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00023108
SUB ESP,0x8
PUSH 0x0
PUSH dword ptr [ESP + 0x68]
CALL 0x00038140
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00023108
LEA EAX,[EBP + 0x180]
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x00023108
MOV dword ptr [ESP + 0x28],0x2
MOV dword ptr [ESP + 0x14],0x11
JMP 0x00022fb0
MOV dword ptr [ESP + 0x28],0x2
MOV dword ptr [ESP + 0x14],0x19
JMP 0x00022fb0
MOV EBX,EDI
CALL 0x00024d50
LEA ECX,[EDI + 0x9998]
MOV dword ptr [ECX],EAX
LEA EAX,[EDI + 0x9764]
MOV dword ptr [ECX + 0x4],EDX
MOV EDX,dword ptr [EAX]
LEA EAX,[EDI + 0x99a8]
MOV dword ptr [EAX],EDX
JMP 0x00022e22
MOV EBX,dword ptr [EDI + EDX*0x4 + 0xfffe4240]
MOV dword ptr [ESP + 0x28],0x1
MOV dword ptr [ESP + 0x8],EBX
MOV EBP,dword ptr [ESP + 0x8]
TEST EBP,EBP
JNZ 0x00022eb8
JMP 0x00023277
MOVZX EDX,byte ptr [EAX + 0x1]
CMP DL,0x3d
JZ 0x0002414a
MOV EBX,0xe
CMP DL,0x3e
MOV EBP,0x1a
JMP 0x00023175
XOR ECX,ECX
CMP byte ptr [EAX + 0x1],0x26
SETZ CL
MOV EBP,ECX
ADD ECX,0x1
LEA EBP,[EBP + EBP*0x8 + 0x12]
MOV dword ptr [ESP + 0x28],ECX
MOV dword ptr [ESP + 0x8],EBP
JMP 0x00022eb8
MOV EAX,dword ptr [EBX + 0x8]
MOV EDX,dword ptr [EBX + 0xc]
MOV dword ptr [ESP + 0x40],EAX
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0x94]
MOV EBX,EDX
ADD ECX,dword ptr [ESP + 0x64]
ADC EBX,dword ptr [ESP + 0x68]
MOV dword ptr [ESP + 0x44],EDX
MOV dword ptr [EAX + 0x8],ECX
MOVZX EDX,byte ptr [EAX + 0x11]
MOV ESI,EBX
MOV dword ptr [EAX + 0xc],EBX
MOVZX EAX,byte ptr [ESP + 0x6d]
XOR EAX,EDX
SHR AL,0x1
AND EAX,0x1
CMP ECX,dword ptr [ESP + 0x40]
SBB ESI,dword ptr [ESP + 0x44]
JC 0x00023820
JMP 0x00023823
SUB ESP,0x4
LEA EAX,[EDI + 0xfffe3bed]
MOV EBX,EDI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bc10
ADD ESP,0x10
MOV dword ptr [ESP + 0x40],0x1
MOV dword ptr [ESP + 0x44],0x0
JMP 0x0002346a
MOVZX EBX,byte ptr [ESP + 0x8]
JMP 0x0002303c
CMP byte ptr [EAX + 0x1],0x3d
JNZ 0x00023277
MOV EBP,0x15
MOV dword ptr [ESP + 0x28],0x2
MOV dword ptr [ESP + 0x8],0x15
JMP 0x00022eb8
MOV EBP,0x17
MOV dword ptr [ESP + 0x28],0x1
MOV dword ptr [ESP + 0x8],0x17
JMP 0x00022eb8
SUB ESP,0x8
PUSH 0x0
PUSH dword ptr [ESP + 0x68]
CALL 0x00038140
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000236b3
MOV EAX,dword ptr [ESP + 0x5c]
SUB ESP,0xc
MOV EBX,EDI
PUSH EAX
CALL 0x0003b250
MOV EBP,EAX
POP EAX
MOV EAX,dword ptr [ESP + 0xa0]
PUSH dword ptr [EAX]
CALL 0x0003b250
ADD ESP,0xc
LEA ECX,[ESP + 0x54]
PUSH ECX
PUSH EBP
PUSH EAX
CALL 0x00024e60
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000236c6
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0xa0]
PUSH dword ptr [EAX]
CALL 0x00039de0
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0x1c],EDX
POP EBP
PUSH dword ptr [ESP + 0x68]
CALL 0x00039de0
MOV ECX,dword ptr [ESP + 0x18]
MOV EBX,dword ptr [ESP + 0x1c]
SUB ECX,EAX
MOV EAX,dword ptr [ESP + 0xa4]
SBB EBX,EDX
MOV dword ptr [ESP + 0x50],ECX
MOV EDX,dword ptr [EAX + 0x8]
MOV ECX,dword ptr [EAX + 0xc]
MOV dword ptr [ESP + 0x54],EBX
MOV ESI,ECX
MOV EBX,EDX
SUB EBX,dword ptr [ESP + 0x74]
SBB ESI,dword ptr [ESP + 0x78]
MOV dword ptr [ESP + 0x30],EBX
MOV dword ptr [EAX + 0x8],EBX
MOVZX EBX,byte ptr [EAX + 0x11]
MOV dword ptr [EAX + 0xc],ESI
MOVZX EAX,byte ptr [ESP + 0x7d]
MOV dword ptr [ESP + 0x34],ESI
XOR EAX,EBX
SHR AL,0x1
AND EAX,0x1
MOV byte ptr [ESP + 0x18],AL
ADD ESP,0x10
MOV EAX,ECX
CMP EDX,dword ptr [ESP + 0x64]
SBB EAX,dword ptr [ESP + 0x68]
JC 0x000241d2
MOVZX EAX,byte ptr [ESP + 0x8]
LEA ECX,[EAX + EAX*0x1]
AND EBX,0xfffffffd
MOV EAX,dword ptr [ESP + 0x94]
MOV EDX,EBX
OR EDX,ECX
MOV byte ptr [EAX + 0x11],DL
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [ESP + 0x24]
MOV ESI,dword ptr [ESP + 0x94]
MOV ECX,EAX
SUB ECX,dword ptr [ESP + 0x50]
MOV EBX,EDX
SBB EBX,dword ptr [ESP + 0x54]
CMP EAX,dword ptr [ESP + 0x50]
MOV EAX,EDX
SBB EAX,dword ptr [ESP + 0x54]
MOV dword ptr [ESI + 0x8],ECX
MOV dword ptr [ESI + 0xc],EBX
JC 0x0002419d
MOV EAX,dword ptr [ESP + 0x94]
MOVZX EAX,byte ptr [EAX + 0x11]
MOV byte ptr [ESP + 0x20],AL
MOV EAX,dword ptr [ESP + 0x40]
MOV ESI,dword ptr [ESP + 0x94]
MOV EDX,dword ptr [ESP + 0x44]
MOV EBP,dword ptr [ESP + 0x44]
ADD EAX,ECX
ADC EDX,EBX
MOV dword ptr [ESP + 0x48],EAX
SHR EBP,0x1f
MOV dword ptr [ESI + 0x8],EAX
MOVZX EAX,byte ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x4c],EDX
MOV dword ptr [ESI + 0xc],EDX
MOV ESI,dword ptr [ESP + 0x4c]
XOR EAX,EBP
CMP dword ptr [ESP + 0x48],ECX
SBB ESI,EBX
JC 0x0002417e
AND EAX,0x1
LEA ECX,[EAX + EAX*0x1]
MOVZX EAX,byte ptr [ESP + 0x20]
AND EAX,0xfffffffd
OR EAX,ECX
MOV ECX,dword ptr [ESP + 0x94]
MOV byte ptr [ECX + 0x11],AL
MOV EAX,dword ptr [ESP + 0x94]
MOV byte ptr [EAX + 0x10],0x2
MOV dword ptr [EAX],0x0
JMP 0x00023108
MOV EBP,0x19
MOV dword ptr [ESP + 0x28],0x2
MOV dword ptr [ESP + 0x8],0x19
JMP 0x00022eb8
MOV EBP,0x11
MOV dword ptr [ESP + 0x28],0x2
MOV dword ptr [ESP + 0x8],0x11
JMP 0x00022eb8
XOR EAX,0x1
MOV EBX,dword ptr [ESP + 0x94]
AND EAX,0x1
LEA ECX,[EAX + EAX*0x1]
MOVZX EAX,byte ptr [ESP + 0x20]
AND EAX,0xfffffffd
OR EAX,ECX
MOV byte ptr [EBX + 0x11],AL
JMP 0x00024134
XOR byte ptr [ESP + 0x8],0x1
MOVZX EDX,byte ptr [ESP + 0x8]
MOV EAX,dword ptr [ESP + 0x94]
MOV ESI,dword ptr [ESP + 0x94]
AND EDX,0x1
LEA EBP,[EDX + EDX*0x1]
MOVZX EDX,byte ptr [EAX + 0x11]
AND EDX,0xfffffffd
MOV EAX,EDX
OR EAX,EBP
MOV byte ptr [ESP + 0x20],AL
MOV byte ptr [ESI + 0x11],AL
JMP 0x000240df
XOR byte ptr [ESP + 0x8],0x1
MOVZX ECX,byte ptr [ESP + 0x8]
AND ECX,0x1
ADD ECX,ECX
JMP 0x0002408e
SUB ESP,0x4
LEA EAX,[EDI + 0xfffe4224]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xfffe3b04]
PUSH 0x6fd
PUSH EAX
CALL 0x0002be10
SUB ESP,0x4
LEA EAX,[EDI + 0xfffe4224]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xfffe3b04]
PUSH 0x710
PUSH EAX
CALL 0x0002be10
SUB ESP,0x4
LEA EAX,[EDI + 0xfffe4224]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xfffe3b04]
PUSH 0x70e
PUSH EAX
CALL 0x0002be10
SUB ESP,0x4
LEA EAX,[EDI + 0xfffe4224]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xfffe3b04]
PUSH 0x70d
PUSH EAX
CALL 0x0002be10
PUSH EAX
LEA EAX,[EDI + 0xfffe4224]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xfffe3b04]
PUSH 0x6dc
PUSH EAX
CALL 0x0002be10
PUSH EAX
LEA EAX,[EDI + 0xfffe4224]
MOV EBX,EDI
PUSH EAX
LEA EAX,[EDI + 0xfffe3b04]
PUSH 0x6e8
PUSH EAX
CALL 0x0002be10
(translation_unit "int FUN_00022de0(int param_1,int *param_2,int param_3)\n\n{\n  int *piVar1;\n  longlong lVar2;\n  byte bVar3;\n  byte *pbVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte bVar12;\n  char cVar13;\n  uint uVar14;\n  byte *pbVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  int unaff_EDI;\n  bool bVar19;\n  undefined8 uVar20;\n  longlong lVar21;\n  longlong lVar22;\n  int local_84;\n  int local_78;\n  int local_70;\n  int local_64;\n  uint local_3c;\n  uint local_38;\n  int local_30;\n  int local_2c;\n  uint local_28;\n  uint local_24;\n  char local_20;\n  byte local_1f;\n  undefined2 local_1e;\n  \n  FUN_0001d60d();\n  if (param_1 < 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);\n  }\n  if ((char)param_1 == '\0') {\n    uVar20 = FUN_00024d50();\n    *(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);\n  }\n  local_70 = FUN_00022310();\n  piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);\n  pbVar4 = (byte *)*piVar1;\n  uVar14 = (uint)*pbVar4;\n  if (*pbVar4 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);\n  }\n  if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;\n  if (uVar14 == 0x2d) {\nLAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;\n  }\n  else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }\n  iVar8 = *(int *)(unaff_EDI + 0x4b1c1);\n  cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84);\n  if ((char)param_1 < cVar13) {\n    do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    /* WARNING: Subroutine does not return */\n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );\n  }\nLAB_00023277:\n  if (*param_2 != 0) {\n    FUN_0003b280(*param_2);\n  }\n  if (((char)param_1 == '\0') && (param_3 == 0)) {\n    FUN_00021760(param_2);\n  }\n  if ((char)param_2[4] == '\x02') {\n    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;\n  }\n  return local_70;\n}\n\n" (function_definition "int FUN_00022de0(int param_1,int *param_2,int param_3)\n\n{\n  int *piVar1;\n  longlong lVar2;\n  byte bVar3;\n  byte *pbVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte bVar12;\n  char cVar13;\n  uint uVar14;\n  byte *pbVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  int unaff_EDI;\n  bool bVar19;\n  undefined8 uVar20;\n  longlong lVar21;\n  longlong lVar22;\n  int local_84;\n  int local_78;\n  int local_70;\n  int local_64;\n  uint local_3c;\n  uint local_38;\n  int local_30;\n  int local_2c;\n  uint local_28;\n  uint local_24;\n  char local_20;\n  byte local_1f;\n  undefined2 local_1e;\n  \n  FUN_0001d60d();\n  if (param_1 < 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);\n  }\n  if ((char)param_1 == '\0') {\n    uVar20 = FUN_00024d50();\n    *(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);\n  }\n  local_70 = FUN_00022310();\n  piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);\n  pbVar4 = (byte *)*piVar1;\n  uVar14 = (uint)*pbVar4;\n  if (*pbVar4 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);\n  }\n  if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;\n  if (uVar14 == 0x2d) {\nLAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;\n  }\n  else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }\n  iVar8 = *(int *)(unaff_EDI + 0x4b1c1);\n  cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84);\n  if ((char)param_1 < cVar13) {\n    do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    /* WARNING: Subroutine does not return */\n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );\n  }\nLAB_00023277:\n  if (*param_2 != 0) {\n    FUN_0003b280(*param_2);\n  }\n  if (((char)param_1 == '\0') && (param_3 == 0)) {\n    FUN_00021760(param_2);\n  }\n  if ((char)param_2[4] == '\x02') {\n    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;\n  }\n  return local_70;\n}" primitive_type (function_declarator "FUN_00022de0(int param_1,int *param_2,int param_3)" identifier (parameter_list "(int param_1,int *param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  longlong lVar2;\n  byte bVar3;\n  byte *pbVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte bVar12;\n  char cVar13;\n  uint uVar14;\n  byte *pbVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  int unaff_EDI;\n  bool bVar19;\n  undefined8 uVar20;\n  longlong lVar21;\n  longlong lVar22;\n  int local_84;\n  int local_78;\n  int local_70;\n  int local_64;\n  uint local_3c;\n  uint local_38;\n  int local_30;\n  int local_2c;\n  uint local_28;\n  uint local_24;\n  char local_20;\n  byte local_1f;\n  undefined2 local_1e;\n  \n  FUN_0001d60d();\n  if (param_1 < 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);\n  }\n  if ((char)param_1 == '\0') {\n    uVar20 = FUN_00024d50();\n    *(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);\n  }\n  local_70 = FUN_00022310();\n  piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);\n  pbVar4 = (byte *)*piVar1;\n  uVar14 = (uint)*pbVar4;\n  if (*pbVar4 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);\n  }\n  if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;\n  if (uVar14 == 0x2d) {\nLAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;\n  }\n  else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }\n  iVar8 = *(int *)(unaff_EDI + 0x4b1c1);\n  cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84);\n  if ((char)param_1 < cVar13) {\n    do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    /* WARNING: Subroutine does not return */\n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );\n  }\nLAB_00023277:\n  if (*param_2 != 0) {\n    FUN_0003b280(*param_2);\n  }\n  if (((char)param_1 == '\0') && (param_3 == 0)) {\n    FUN_00021760(param_2);\n  }\n  if ((char)param_2[4] == '\x02') {\n    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;\n  }\n  return local_70;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "char cVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (declaration "undefined8 uVar20;" type_identifier identifier ;) (declaration "longlong lVar21;" type_identifier identifier ;) (declaration "longlong lVar22;" type_identifier identifier ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "char local_20;" primitive_type identifier ;) (declaration "byte local_1f;" type_identifier identifier ;) (declaration "undefined2 local_1e;" type_identifier identifier ;) (expression_statement "FUN_0001d60d();" (call_expression "FUN_0001d60d()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_1 < 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);\n  }" if (parenthesized_expression "(param_1 < 0)" ( (binary_expression "param_1 < 0" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);\n  }" { comment (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1)" identifier (argument_list "(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) , identifier ))) ;) })) (if_statement "if ((char)param_1 == '\0') {\n    uVar20 = FUN_00024d50();\n    *(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);\n  }" if (parenthesized_expression "((char)param_1 == '\0')" ( (binary_expression "(char)param_1 == '\0'" (cast_expression "(char)param_1" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar20 = FUN_00024d50();\n    *(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);\n  }" { (expression_statement "uVar20 = FUN_00024d50();" (assignment_expression "uVar20 = FUN_00024d50()" identifier = (call_expression "FUN_00024d50()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;" (assignment_expression "*(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20" (pointer_expression "*(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1)" * (cast_expression "(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1)" ( (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1" (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI" (string_literal "".stab%c: description field \'%x\' too big, try a different debug format"" " string_content escape_sequence string_content escape_sequence string_content ") + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);" (assignment_expression "*(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI)" (pointer_expression "*(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)" * (cast_expression "(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)" ( (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11" (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI" (string_literal "".stab%c: description field \'%x\' too big, try a different debug format"" " string_content escape_sequence string_content escape_sequence string_content ") + identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(&DAT_0005497d + unaff_EDI)" * (cast_expression "(undefined4 *)(&DAT_0005497d + unaff_EDI)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0005497d + unaff_EDI)" ( (binary_expression "&DAT_0005497d + unaff_EDI" (pointer_expression "&DAT_0005497d" & identifier) + identifier) ))))) ;) })) (expression_statement "local_70 = FUN_00022310();" (assignment_expression "local_70 = FUN_00022310()" identifier = (call_expression "FUN_00022310()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);" (assignment_expression "piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19)" identifier = (cast_expression "(int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "("demand_empty_rest_of_line" + unaff_EDI + 0x19)" ( (binary_expression ""demand_empty_rest_of_line" + unaff_EDI + 0x19" (binary_expression ""demand_empty_rest_of_line" + unaff_EDI" (string_literal ""demand_empty_rest_of_line"" " string_content ") + identifier) + number_literal) )))) ;) (expression_statement "pbVar4 = (byte *)*piVar1;" (assignment_expression "pbVar4 = (byte *)*piVar1" identifier = (cast_expression "(byte *)*piVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (expression_statement "uVar14 = (uint)*pbVar4;" (assignment_expression "uVar14 = (uint)*pbVar4" identifier = (binary_expression "(uint)*pbVar4" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (*pbVar4 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);\n  }" if (parenthesized_expression "(*pbVar4 == 0x20)" ( (binary_expression "*pbVar4 == 0x20" (pointer_expression "*pbVar4" * identifier) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);\n  }" { comment (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4)" identifier (argument_list "(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) , identifier ))) ;) })) (if_statement "if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14)" * (cast_expression "(char *)(unaff_EDI + 0x4b4f9 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b4f9 + uVar14)" ( (binary_expression "unaff_EDI + 0x4b4f9 + uVar14" (binary_expression "unaff_EDI + 0x4b4f9" identifier + number_literal) + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00023277;" goto statement_identifier ;)) (if_statement "if (uVar14 == 0x2d) {\nLAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;\n  }\n  else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" if (parenthesized_expression "(uVar14 == 0x2d)" ( (binary_expression "uVar14 == 0x2d" identifier == number_literal) )) (compound_statement "{\nLAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;\n  }" { (labeled_statement "LAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" statement_identifier : (expression_statement "local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" (assignment_expression "local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f459 + uVar14 * 4)" ( (binary_expression "unaff_EDI + 0x2f459 + uVar14 * 4" (binary_expression "unaff_EDI + 0x2f459" identifier + number_literal) + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;)) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;" statement_identifier : (if_statement "if (local_84 == 0) goto LAB_00023277;" if (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00023277;" goto statement_identifier ;))) }) (else_clause "else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" else (if_statement "if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" if (parenthesized_expression "(uVar14 < 0x2e)" ( (binary_expression "uVar14 < 0x2e" identifier < number_literal) )) (compound_statement "{\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }" { (if_statement "if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }" if (parenthesized_expression "(uVar14 == 0x26)" ( (binary_expression "uVar14 == 0x26" identifier == number_literal) )) (compound_statement "{\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }" { (expression_statement "local_64 = (pbVar4[1] == 0x26) + 1;" (assignment_expression "local_64 = (pbVar4[1] == 0x26) + 1" identifier = (binary_expression "(pbVar4[1] == 0x26) + 1" (parenthesized_expression "(pbVar4[1] == 0x26)" ( (binary_expression "pbVar4[1] == 0x26" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal) )) + number_literal)) ;) (expression_statement "local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;" (assignment_expression "local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12" identifier = (binary_expression "(uint)(pbVar4[1] == 0x26) * 9 + 0x12" (binary_expression "(uint)(pbVar4[1] == 0x26) * 9" (call_expression "(uint)(pbVar4[1] == 0x26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar4[1] == 0x26)" ( (binary_expression "pbVar4[1] == 0x26" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal) ))) * number_literal) + number_literal)) ;) }) (else_clause "else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }" else (compound_statement "{\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }" { (if_statement "if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;" if (parenthesized_expression "((uVar14 == 0x2b) || (uVar14 != 0x21))" ( (binary_expression "(uVar14 == 0x2b) || (uVar14 != 0x21)" (parenthesized_expression "(uVar14 == 0x2b)" ( (binary_expression "uVar14 == 0x2b" identifier == number_literal) )) || (parenthesized_expression "(uVar14 != 0x21)" ( (binary_expression "uVar14 != 0x21" identifier != number_literal) ))) )) (goto_statement "goto LAB_00023af0;" goto statement_identifier ;)) (if_statement "if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }" if (parenthesized_expression "(pbVar4[1] == 0x21)" ( (binary_expression "pbVar4[1] == 0x21" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        local_64 = 2;\n        local_84 = 0x11;\n      }" { (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_84 = 0x11;" (assignment_expression "local_84 = 0x11" identifier = number_literal) ;) }) (else_clause "else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }" else (compound_statement "{\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }" { (expression_statement "iVar8 = 0x16;" (assignment_expression "iVar8 = 0x16" identifier = number_literal) ;) (expression_statement "bVar19 = pbVar4[1] == 0x3d;" (assignment_expression "bVar19 = pbVar4[1] == 0x3d" identifier = (binary_expression "pbVar4[1] == 0x3d" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal)) ;) (expression_statement "local_84 = 0x10;" (assignment_expression "local_84 = 0x10" identifier = number_literal) ;) (labeled_statement "LAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }" statement_identifier : (if_statement "if (bVar19) {\n          local_84 = iVar8;\n        }" if (parenthesized_expression "(bVar19)" ( identifier )) (compound_statement "{\n          local_84 = iVar8;\n        }" { (expression_statement "local_84 = iVar8;" (assignment_expression "local_84 = iVar8" identifier = identifier) ;) }))) (expression_statement "local_64 = bVar19 + 1;" (assignment_expression "local_64 = bVar19 + 1" identifier = (binary_expression "bVar19 + 1" identifier + number_literal)) ;) }))) }))) }) (else_clause "else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" else (if_statement "if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" if (parenthesized_expression "(uVar14 == 0x3d)" ( (binary_expression "uVar14 == 0x3d" identifier == number_literal) )) (compound_statement "{\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }" { (if_statement "if (pbVar4[1] != 0x3d) goto LAB_00023277;" if (parenthesized_expression "(pbVar4[1] != 0x3d)" ( (binary_expression "pbVar4[1] != 0x3d" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00023277;" goto statement_identifier ;)) (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_84 = 0x15;" (assignment_expression "local_84 = 0x15" identifier = number_literal) ;) }) (else_clause "else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" else (if_statement "if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" if (parenthesized_expression "(uVar14 < 0x3e)" ( (binary_expression "uVar14 < 0x3e" identifier < number_literal) )) (compound_statement "{\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }" { (if_statement "if (uVar14 != 0x3c) goto LAB_00023af0;" if (parenthesized_expression "(uVar14 != 0x3c)" ( (binary_expression "uVar14 != 0x3c" identifier != number_literal) )) (goto_statement "goto LAB_00023af0;" goto statement_identifier ;)) (if_statement "if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }" if (parenthesized_expression "((byte)(pbVar4[1] - 0x3c) < 3)" ( (binary_expression "(byte)(pbVar4[1] - 0x3c) < 3" (call_expression "(byte)(pbVar4[1] - 0x3c)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pbVar4[1] - 0x3c)" ( (binary_expression "pbVar4[1] - 0x3c" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) - number_literal) ))) < number_literal) )) (compound_statement "{\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }" { (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);" (assignment_expression "local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4)" * (cast_expression "(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4)" ( (binary_expression "unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4" (binary_expression "unaff_EDI + 0x2f41d" identifier + number_literal) + (binary_expression "(uint)(byte)(pbVar4[1] - 0x3c) * 4" (call_expression "(uint)(byte)(pbVar4[1] - 0x3c)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(pbVar4[1] - 0x3c)" ( (binary_expression "pbVar4[1] - 0x3c" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) - number_literal) ))) * number_literal)) ))))) ;) (goto_statement "goto LAB_00023b03;" goto statement_identifier ;) })) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (expression_statement "local_84 = 0x17;" (assignment_expression "local_84 = 0x17" identifier = number_literal) ;) }) (else_clause "else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" else (if_statement "if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" if (parenthesized_expression "(uVar14 == 0x3e)" ( (binary_expression "uVar14 == 0x3e" identifier == number_literal) )) (compound_statement "{\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }" { (if_statement "if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }" if (parenthesized_expression "(pbVar4[1] != 0x3d)" ( (binary_expression "pbVar4[1] != 0x3d" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }" { (expression_statement "iVar8 = 0xe;" (assignment_expression "iVar8 = 0xe" identifier = number_literal) ;) (expression_statement "bVar19 = pbVar4[1] == 0x3e;" (assignment_expression "bVar19 = pbVar4[1] == 0x3e" identifier = (binary_expression "pbVar4[1] == 0x3e" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal)) ;) (expression_statement "local_84 = 0x1a;" (assignment_expression "local_84 = 0x1a" identifier = number_literal) ;) (goto_statement "goto LAB_00023175;" goto statement_identifier ;) })) (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_84 = 0x19;" (assignment_expression "local_84 = 0x19" identifier = number_literal) ;) }) (else_clause "else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" else (compound_statement "{\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" { (if_statement "if (uVar14 != 0x7c) goto LAB_00023af0;" if (parenthesized_expression "(uVar14 != 0x7c)" ( (binary_expression "uVar14 != 0x7c" identifier != number_literal) )) (goto_statement "goto LAB_00023af0;" goto statement_identifier ;)) (expression_statement "local_84 = 0xf;" (assignment_expression "local_84 = 0xf" identifier = number_literal) ;) (if_statement "if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }" if (parenthesized_expression "(pbVar4[1] == 0x7c)" ( (binary_expression "pbVar4[1] == 0x7c" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      local_84 = 0x1c;\n    }" { (expression_statement "local_84 = 0x1c;" (assignment_expression "local_84 = 0x1c" identifier = number_literal) ;) })) (expression_statement "local_64 = (pbVar4[1] == 0x7c) + 1;" (assignment_expression "local_64 = (pbVar4[1] == 0x7c) + 1" identifier = (binary_expression "(pbVar4[1] == 0x7c) + 1" (parenthesized_expression "(pbVar4[1] == 0x7c)" ( (binary_expression "pbVar4[1] == 0x7c" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal) )) + number_literal)) ;) }))))))))))) (expression_statement "iVar8 = *(int *)(unaff_EDI + 0x4b1c1);" (assignment_expression "iVar8 = *(int *)(unaff_EDI + 0x4b1c1)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" * (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b1c1)" ( (binary_expression "unaff_EDI + 0x4b1c1" identifier + number_literal) ))))) ;) (expression_statement "cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84);" (assignment_expression "cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84)" identifier = (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + local_84)" * (cast_expression "(char *)(unaff_EDI + 0x4b459 + local_84)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b459 + local_84)" ( (binary_expression "unaff_EDI + 0x4b459 + local_84" (binary_expression "unaff_EDI + 0x4b459" identifier + number_literal) + identifier) ))))) ;) (if_statement "if ((char)param_1 < cVar13) {\n    do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    /* WARNING: Subroutine does not return */\n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );\n  }" if (parenthesized_expression "((char)param_1 < cVar13)" ( (binary_expression "(char)param_1 < cVar13" (cast_expression "(char)param_1" ( (type_descriptor "char" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n    do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    /* WARNING: Subroutine does not return */\n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );\n  }" { (do_statement "do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    /* WARNING: Subroutine does not return */\n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );" do (compound_statement "{\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    /* WARNING: Subroutine does not return */\n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    }" { (expression_statement "*piVar1 = (int)(pbVar4 + local_64);" (assignment_expression "*piVar1 = (int)(pbVar4 + local_64)" (pointer_expression "*piVar1" * identifier) = (cast_expression "(int)(pbVar4 + local_64)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar4 + local_64)" ( (binary_expression "pbVar4 + local_64" identifier + identifier) )))) ;) (expression_statement "local_1e = 0;" (assignment_expression "local_1e = 0" identifier = number_literal) ;) (expression_statement "iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);" (assignment_expression "iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3)" identifier = (call_expression "FUN_00022de0((int)cVar13,&local_30,param_3)" identifier (argument_list "((int)cVar13,&local_30,param_3)" ( (cast_expression "(int)cVar13" ( (type_descriptor "int" primitive_type) ) identifier) , (pointer_expression "&local_30" & identifier) , identifier )))) ;) (if_statement "if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }" if (parenthesized_expression "(local_20 == '\x01')" ( (binary_expression "local_20 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }" { (expression_statement "uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);" (assignment_expression "uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5)" identifier = (call_expression "dcgettext(0,unaff_EDI + 0x2edd2,5)" identifier (argument_list "(0,unaff_EDI + 0x2edd2,5)" ( number_literal , (binary_expression "unaff_EDI + 0x2edd2" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bc10(uVar9);" (call_expression "FUN_0002bc10(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (expression_statement "local_20 = '\x02';" (assignment_expression "local_20 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) })) (expression_statement "pbVar4 = (byte *)*piVar1;" (assignment_expression "pbVar4 = (byte *)*piVar1" identifier = (cast_expression "(byte *)*piVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (expression_statement "bVar3 = *pbVar4;" (assignment_expression "bVar3 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) (expression_statement "uVar14 = (uint)bVar3;" (assignment_expression "uVar14 = (uint)bVar3" identifier = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar3 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }" if (parenthesized_expression "(bVar3 == 0x20)" ( (binary_expression "bVar3 == 0x20" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }" { comment (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d)" identifier (argument_list "(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) ))) ;) })) (expression_statement "pbVar15 = pbVar4;" (assignment_expression "pbVar15 = pbVar4" identifier = identifier) ;) (if_statement "if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }" if (parenthesized_expression "(local_84 == 0x1d)" ( (binary_expression "local_84 == 0x1d" identifier == number_literal) )) (compound_statement "{\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }" { (if_statement "if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }" if (parenthesized_expression "(bVar3 == 0x5d)" ( (binary_expression "bVar3 == 0x5d" identifier == number_literal) )) (compound_statement "{\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }" { (expression_statement "pbVar15 = pbVar4 + 1;" (assignment_expression "pbVar15 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "*piVar1 = (int)pbVar15;" (assignment_expression "*piVar1 = (int)pbVar15" (pointer_expression "*piVar1" * identifier) = (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar14 = (uint)pbVar4[1];" (assignment_expression "uVar14 = (uint)pbVar4[1]" identifier = (cast_expression "(uint)pbVar4[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar4[1]" identifier [ number_literal ]))) ;) (if_statement "if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }" if (parenthesized_expression "(pbVar4[1] == 0x20)" ( (binary_expression "pbVar4[1] == 0x20" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }" { (expression_statement "pbVar15 = pbVar4 + 2;" (assignment_expression "pbVar15 = pbVar4 + 2" identifier = (binary_expression "pbVar4 + 2" identifier + number_literal)) ;) (expression_statement "*piVar1 = (int)pbVar15;" (assignment_expression "*piVar1 = (int)pbVar15" (pointer_expression "*piVar1" * identifier) = (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar14 = (uint)pbVar4[2];" (assignment_expression "uVar14 = (uint)pbVar4[2]" identifier = (cast_expression "(uint)pbVar4[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar4[2]" identifier [ number_literal ]))) ;) })) }) (else_clause "else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }" else (compound_statement "{\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }" { (expression_statement "FUN_0002bcf0(unaff_EDI + 0x2edf0);" (call_expression "FUN_0002bcf0(unaff_EDI + 0x2edf0)" identifier (argument_list "(unaff_EDI + 0x2edf0)" ( (binary_expression "unaff_EDI + 0x2edf0" identifier + number_literal) ))) ;) (expression_statement "pbVar15 = (byte *)*piVar1;" (assignment_expression "pbVar15 = (byte *)*piVar1" identifier = (cast_expression "(byte *)*piVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (expression_statement "uVar14 = (uint)*pbVar15;" (assignment_expression "uVar14 = (uint)*pbVar15" identifier = (binary_expression "(uint)*pbVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }))) })) (if_statement "if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    /* WARNING: Subroutine does not return */\n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14)" * (cast_expression "(char *)(unaff_EDI + 0x4b4f9 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b4f9 + uVar14)" ( (binary_expression "unaff_EDI + 0x4b4f9 + uVar14" (binary_expression "unaff_EDI + 0x4b4f9" identifier + number_literal) + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    /* WARNING: Subroutine does not return */\n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }" { (if_statement "if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" if (parenthesized_expression "(uVar14 == 0x2d)" ( (binary_expression "uVar14 == 0x2d" identifier == number_literal) )) (compound_statement "{\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }" { (labeled_statement "LAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" statement_identifier : (expression_statement "local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" (assignment_expression "local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f459 + uVar14 * 4)" ( (binary_expression "unaff_EDI + 0x2f459 + uVar14 * 4" (binary_expression "unaff_EDI + 0x2f459" identifier + number_literal) + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;)) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (expression_statement "bVar19 = local_78 != 0;" (assignment_expression "bVar19 = local_78 != 0" identifier = (binary_expression "local_78 != 0" identifier != number_literal)) ;) }) (else_clause "else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" else (if_statement "if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" if (parenthesized_expression "(uVar14 < 0x2e)" ( (binary_expression "uVar14 < 0x2e" identifier < number_literal) )) (compound_statement "{\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }" { (if_statement "if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }" if (parenthesized_expression "(uVar14 == 0x26)" ( (binary_expression "uVar14 == 0x26" identifier == number_literal) )) (compound_statement "{\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }" { (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" identifier = true) ;) (expression_statement "local_64 = (pbVar15[1] == 0x26) + 1;" (assignment_expression "local_64 = (pbVar15[1] == 0x26) + 1" identifier = (binary_expression "(pbVar15[1] == 0x26) + 1" (parenthesized_expression "(pbVar15[1] == 0x26)" ( (binary_expression "pbVar15[1] == 0x26" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) == number_literal) )) + number_literal)) ;) (expression_statement "local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;" (assignment_expression "local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12" identifier = (binary_expression "(uint)(pbVar15[1] == 0x26) * 9 + 0x12" (binary_expression "(uint)(pbVar15[1] == 0x26) * 9" (call_expression "(uint)(pbVar15[1] == 0x26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar15[1] == 0x26)" ( (binary_expression "pbVar15[1] == 0x26" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) == number_literal) ))) * number_literal) + number_literal)) ;) }) (else_clause "else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }" else (compound_statement "{\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }" { (if_statement "if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;" if (parenthesized_expression "((uVar14 == 0x2b) || (uVar14 != 0x21))" ( (binary_expression "(uVar14 == 0x2b) || (uVar14 != 0x21)" (parenthesized_expression "(uVar14 == 0x2b)" ( (binary_expression "uVar14 == 0x2b" identifier == number_literal) )) || (parenthesized_expression "(uVar14 != 0x21)" ( (binary_expression "uVar14 != 0x21" identifier != number_literal) ))) )) (goto_statement "goto LAB_000235f0;" goto statement_identifier ;)) (expression_statement "bVar3 = pbVar15[1];" (assignment_expression "bVar3 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" identifier = true) ;) (if_statement "if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }" if (parenthesized_expression "(bVar3 == 0x21)" ( (binary_expression "bVar3 == 0x21" identifier == number_literal) )) (compound_statement "{\n              local_64 = 2;\n              local_78 = 0x11;\n            }" { (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_78 = 0x11;" (assignment_expression "local_78 = 0x11" identifier = number_literal) ;) }) (else_clause "else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }" else (compound_statement "{\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }" { (expression_statement "local_64 = (bVar3 == 0x3d) + 1;" (assignment_expression "local_64 = (bVar3 == 0x3d) + 1" identifier = (binary_expression "(bVar3 == 0x3d) + 1" (parenthesized_expression "(bVar3 == 0x3d)" ( (binary_expression "bVar3 == 0x3d" identifier == number_literal) )) + number_literal)) ;) (expression_statement "local_78 = 0x10;" (assignment_expression "local_78 = 0x10" identifier = number_literal) ;) (if_statement "if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }" if (parenthesized_expression "(bVar3 == 0x3d)" ( (binary_expression "bVar3 == 0x3d" identifier == number_literal) )) (compound_statement "{\n                local_78 = 0x16;\n              }" { (expression_statement "local_78 = 0x16;" (assignment_expression "local_78 = 0x16" identifier = number_literal) ;) })) }))) }))) }) (else_clause "else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" else (if_statement "if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" if (parenthesized_expression "(uVar14 == 0x3d)" ( (binary_expression "uVar14 == 0x3d" identifier == number_literal) )) (compound_statement "{\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }" { (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (if_statement "if (pbVar15[1] != 0x3d) goto LAB_00022fd4;" if (parenthesized_expression "(pbVar15[1] != 0x3d)" ( (binary_expression "pbVar15[1] != 0x3d" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00022fd4;" goto statement_identifier ;)) (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" identifier = true) ;) (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_78 = 0x15;" (assignment_expression "local_78 = 0x15" identifier = number_literal) ;) }) (else_clause "else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" else (if_statement "if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" if (parenthesized_expression "(uVar14 < 0x3e)" ( (binary_expression "uVar14 < 0x3e" identifier < number_literal) )) (compound_statement "{\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }" { (if_statement "if (uVar14 != 0x3c) goto LAB_000235f0;" if (parenthesized_expression "(uVar14 != 0x3c)" ( (binary_expression "uVar14 != 0x3c" identifier != number_literal) )) (goto_statement "goto LAB_000235f0;" goto statement_identifier ;)) (if_statement "if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }" if (parenthesized_expression "((byte)(pbVar15[1] - 0x3c) < 3)" ( (binary_expression "(byte)(pbVar15[1] - 0x3c) < 3" (call_expression "(byte)(pbVar15[1] - 0x3c)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pbVar15[1] - 0x3c)" ( (binary_expression "pbVar15[1] - 0x3c" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) - number_literal) ))) < number_literal) )) (compound_statement "{\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }" { (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);" (assignment_expression "local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" * (cast_expression "(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" ( (binary_expression "unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4" (binary_expression "unaff_EDI + 0x2f41d" identifier + number_literal) + (binary_expression "(uint)(byte)(pbVar15[1] - 0x3c) * 4" (call_expression "(uint)(byte)(pbVar15[1] - 0x3c)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(pbVar15[1] - 0x3c)" ( (binary_expression "pbVar15[1] - 0x3c" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) - number_literal) ))) * number_literal)) ))))) ;) (expression_statement "bVar19 = local_78 != 0;" (assignment_expression "bVar19 = local_78 != 0" identifier = (binary_expression "local_78 != 0" identifier != number_literal)) ;) }) (else_clause "else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }" else (compound_statement "{\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }" { (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" identifier = true) ;) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (expression_statement "local_78 = 0x17;" (assignment_expression "local_78 = 0x17" identifier = number_literal) ;) }))) }) (else_clause "else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" else (if_statement "if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" if (parenthesized_expression "(uVar14 == 0x3e)" ( (binary_expression "uVar14 == 0x3e" identifier == number_literal) )) (compound_statement "{\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }" { (expression_statement "bVar3 = pbVar15[1];" (assignment_expression "bVar3 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" identifier = true) ;) (if_statement "if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }" if (parenthesized_expression "(bVar3 == 0x3d)" ( (binary_expression "bVar3 == 0x3d" identifier == number_literal) )) (compound_statement "{\n            local_64 = 2;\n            local_78 = 0x19;\n          }" { (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_78 = 0x19;" (assignment_expression "local_78 = 0x19" identifier = number_literal) ;) }) (else_clause "else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }" else (compound_statement "{\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }" { (expression_statement "local_64 = (bVar3 == 0x3e) + 1;" (assignment_expression "local_64 = (bVar3 == 0x3e) + 1" identifier = (binary_expression "(bVar3 == 0x3e) + 1" (parenthesized_expression "(bVar3 == 0x3e)" ( (binary_expression "bVar3 == 0x3e" identifier == number_literal) )) + number_literal)) ;) (expression_statement "local_78 = 0x1a;" (assignment_expression "local_78 = 0x1a" identifier = number_literal) ;) (if_statement "if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }" if (parenthesized_expression "(bVar3 == 0x3e)" ( (binary_expression "bVar3 == 0x3e" identifier == number_literal) )) (compound_statement "{\n              local_78 = 0xe;\n            }" { (expression_statement "local_78 = 0xe;" (assignment_expression "local_78 = 0xe" identifier = number_literal) ;) })) }))) }) (else_clause "else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" else (compound_statement "{\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" { (if_statement "if (uVar14 != 0x7c) goto LAB_000235f0;" if (parenthesized_expression "(uVar14 != 0x7c)" ( (binary_expression "uVar14 != 0x7c" identifier != number_literal) )) (goto_statement "goto LAB_000235f0;" goto statement_identifier ;)) (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" identifier = true) ;) (expression_statement "local_64 = (pbVar15[1] == 0x7c) + 1;" (assignment_expression "local_64 = (pbVar15[1] == 0x7c) + 1" identifier = (binary_expression "(pbVar15[1] == 0x7c) + 1" (parenthesized_expression "(pbVar15[1] == 0x7c)" ( (binary_expression "pbVar15[1] == 0x7c" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) == number_literal) )) + number_literal)) ;) (expression_statement "local_78 = 0xf;" (assignment_expression "local_78 = 0xf" identifier = number_literal) ;) (if_statement "if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }" if (parenthesized_expression "(pbVar15[1] == 0x7c)" ( (binary_expression "pbVar15[1] == 0x7c" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            local_78 = 0x1c;\n          }" { (expression_statement "local_78 = 0x1c;" (assignment_expression "local_78 = 0x1c" identifier = number_literal) ;) })) }))))))))))) (if_statement "if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    /* WARNING: Subroutine does not return */\n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }" if (parenthesized_expression "(((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))" ( (binary_expression "((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78))" (parenthesized_expression "((local_84 != 0x1d) && (bVar19))" ( (binary_expression "(local_84 != 0x1d) && (bVar19)" (parenthesized_expression "(local_84 != 0x1d)" ( (binary_expression "local_84 != 0x1d" identifier != number_literal) )) && (parenthesized_expression "(bVar19)" ( identifier ))) )) && (parenthesized_expression "(*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78))" ( (binary_expression "*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)" (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + local_84)" * (cast_expression "(char *)(unaff_EDI + 0x4b459 + local_84)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b459 + local_84)" ( (binary_expression "unaff_EDI + 0x4b459 + local_84" (binary_expression "unaff_EDI + 0x4b459" identifier + number_literal) + identifier) )))) < (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + local_78)" * (cast_expression "(char *)(unaff_EDI + 0x4b459 + local_78)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b459 + local_78)" ( (binary_expression "unaff_EDI + 0x4b459 + local_78" (binary_expression "unaff_EDI + 0x4b459" identifier + number_literal) + identifier) ))))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }" { comment (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d)" identifier (argument_list "(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) ))) ;) })) }) (else_clause "else {\n        local_64 = 1;\n        local_78 = 0;\n      }" else (compound_statement "{\n        local_64 = 1;\n        local_78 = 0;\n      }" { (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00022fd4:\n      if (local_84 < 10) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }" statement_identifier : (if_statement "if (local_84 < 10) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }" if (parenthesized_expression "(local_84 < 10)" ( (binary_expression "local_84 < 10" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }" { comment (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d)" identifier (argument_list "(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) ))) ;) }))) (if_statement "if (0x1d < local_84) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }" if (parenthesized_expression "(0x1d < local_84)" ( (binary_expression "0x1d < local_84" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }" { comment (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d)" identifier (argument_list "(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) ))) ;) })) (if_statement "if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }" if (parenthesized_expression "((char)param_2[4] == '\x06')" ( (binary_expression "(char)param_2[4] == '\x06'" (cast_expression "(char)param_2[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[4]" identifier [ number_literal ])) == (char_literal "'\x06'" ' escape_sequence ')) )) (compound_statement "{\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }" { (if_statement "if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }" if (parenthesized_expression "(-param_2[3] < (int)(uint)(param_2[2] != 0))" ( (binary_expression "-param_2[3] < (int)(uint)(param_2[2] != 0)" (unary_expression "-param_2[3]" - (subscript_expression "param_2[3]" identifier [ number_literal ])) < (cast_expression "(int)(uint)(param_2[2] != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(param_2[2] != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2[2] != 0)" ( (binary_expression "param_2[2] != 0" (subscript_expression "param_2[2]" identifier [ number_literal ]) != number_literal) ))))) )) (compound_statement "{\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }" { (expression_statement "iVar6 = unaff_EDI + 0x2ef8d;" (assignment_expression "iVar6 = unaff_EDI + 0x2ef8d" identifier = (binary_expression "unaff_EDI + 0x2ef8d" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }" else (compound_statement "{\n          iVar6 = unaff_EDI + 0x2efb9;\n        }" { (expression_statement "iVar6 = unaff_EDI + 0x2efb9;" (assignment_expression "iVar6 = unaff_EDI + 0x2efb9" identifier = (binary_expression "unaff_EDI + 0x2efb9" identifier + number_literal)) ;) }))) (expression_statement "uVar9 = dcgettext(0,iVar6,5);" (assignment_expression "uVar9 = dcgettext(0,iVar6,5)" identifier = (call_expression "dcgettext(0,iVar6,5)" identifier (argument_list "(0,iVar6,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0002bc10(uVar9);" (call_expression "FUN_0002bc10(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (expression_statement "*(undefined1 *)(param_2 + 4) = 2;" (assignment_expression "*(undefined1 *)(param_2 + 4) = 2" (pointer_expression "*(undefined1 *)(param_2 + 4)" * (cast_expression "(undefined1 *)(param_2 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_2[2] = 0;" (assignment_expression "param_2[2] = 0" (subscript_expression "param_2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[3] = 0;" (assignment_expression "param_2[3] = 0" (subscript_expression "param_2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "param_2[1] = 0;" (assignment_expression "param_2[1] = 0" (subscript_expression "param_2[1]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar6 = iVar5;" (assignment_expression "iVar6 = iVar5" identifier = identifier) ;) (if_statement "if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }" if (parenthesized_expression "(local_20 == '\x06')" ( (binary_expression "local_20 == '\x06'" identifier == (char_literal "'\x06'" ' escape_sequence ')) )) (compound_statement "{\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }" { (if_statement "if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }" if (parenthesized_expression "((int)-local_24 < (int)(uint)(local_28 != 0))" ( (binary_expression "(int)-local_24 < (int)(uint)(local_28 != 0)" (cast_expression "(int)-local_24" ( (type_descriptor "int" primitive_type) ) (unary_expression "-local_24" - identifier)) < (cast_expression "(int)(uint)(local_28 != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(local_28 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_28 != 0)" ( (binary_expression "local_28 != 0" identifier != number_literal) ))))) )) (compound_statement "{\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }" { (expression_statement "puVar7 = (undefined *)(unaff_EDI + 0x2efe5);" (assignment_expression "puVar7 = (undefined *)(unaff_EDI + 0x2efe5)" identifier = (cast_expression "(undefined *)(unaff_EDI + 0x2efe5)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2efe5)" ( (binary_expression "unaff_EDI + 0x2efe5" identifier + number_literal) )))) ;) }) (else_clause "else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }" else (compound_statement "{\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }" { (expression_statement "puVar7 = &UNK_0002f015 + unaff_EDI;" (assignment_expression "puVar7 = &UNK_0002f015 + unaff_EDI" identifier = (binary_expression "&UNK_0002f015 + unaff_EDI" (pointer_expression "&UNK_0002f015" & identifier) + identifier)) ;) }))) (expression_statement "uVar9 = dcgettext(0,puVar7,5);" (assignment_expression "uVar9 = dcgettext(0,puVar7,5)" identifier = (call_expression "dcgettext(0,puVar7,5)" identifier (argument_list "(0,puVar7,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0002bc10(uVar9);" (call_expression "FUN_0002bc10(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (expression_statement "local_20 = '\x02';" (assignment_expression "local_20 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (if_statement "if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }" if (parenthesized_expression "(local_84 == 0x13)" ( (binary_expression "local_84 == 0x13" identifier == number_literal) )) (compound_statement "{\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }" { (expression_statement "bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;" (assignment_expression "bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1" identifier = (binary_expression "(*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1" (binary_expression "(*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1" (parenthesized_expression "(*(byte *)((int)param_2 + 0x11) ^ local_1f)" ( (binary_expression "*(byte *)((int)param_2 + 0x11) ^ local_1f" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ^ identifier) )) >> number_literal) & number_literal)) ;) (labeled_statement "LAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';" statement_identifier : (expression_statement "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "bVar3 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;)) }) (else_clause "else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }" else (compound_statement "{\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }" { (if_statement "if (local_84 != 0x14) goto LAB_0002301a;" if (parenthesized_expression "(local_84 != 0x14)" ( (binary_expression "local_84 != 0x14" identifier != number_literal) )) (goto_statement "goto LAB_0002301a;" goto statement_identifier ;)) (labeled_statement "LAB_0002337b:\n          uVar14 = param_2[3];" statement_identifier : (expression_statement "uVar14 = param_2[3];" (assignment_expression "uVar14 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;)) (expression_statement "uVar17 = param_2[2];" (assignment_expression "uVar17 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "param_2[2] = uVar17 - local_28;" (assignment_expression "param_2[2] = uVar17 - local_28" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar17 - local_28" identifier - identifier)) ;) (expression_statement "param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);" (assignment_expression "param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28)" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "(uVar14 - local_24) - (uint)(uVar17 < local_28)" (parenthesized_expression "(uVar14 - local_24)" ( (binary_expression "uVar14 - local_24" identifier - identifier) )) - (call_expression "(uint)(uVar17 < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < local_28)" ( (binary_expression "uVar17 < local_28" identifier < identifier) ))))) ;) (expression_statement "bVar3 = *(byte *)((int)param_2 + 0x11);" (assignment_expression "bVar3 = *(byte *)((int)param_2 + 0x11)" identifier = (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar12 = (local_1f ^ bVar3) >> 1 & 1;" (assignment_expression "bVar12 = (local_1f ^ bVar3) >> 1 & 1" identifier = (binary_expression "(local_1f ^ bVar3) >> 1 & 1" (binary_expression "(local_1f ^ bVar3) >> 1" (parenthesized_expression "(local_1f ^ bVar3)" ( (binary_expression "local_1f ^ bVar3" identifier ^ identifier) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }" if (parenthesized_expression "(uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28))" ( (binary_expression "uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)" (binary_expression "uVar14 < local_24" identifier < identifier) || (binary_expression "uVar14 - local_24 < (uint)(uVar17 < local_28)" (binary_expression "uVar14 - local_24" identifier - identifier) < (call_expression "(uint)(uVar17 < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < local_28)" ( (binary_expression "uVar17 < local_28" identifier < identifier) ))))) )) (compound_statement "{\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }" { (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar3 & 0xfd | (bVar12 ^ 1) * '\x02'" (binary_expression "bVar3 & 0xfd" identifier & number_literal) | (binary_expression "(bVar12 ^ 1) * '\x02'" (parenthesized_expression "(bVar12 ^ 1)" ( (binary_expression "bVar12 ^ 1" identifier ^ number_literal) )) * (char_literal "'\x02'" ' escape_sequence ')))) ;) }) (else_clause "else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }" else (compound_statement "{\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }" { (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar3 & 0xfd | bVar12 * '\x02'" (binary_expression "bVar3 & 0xfd" identifier & number_literal) | (binary_expression "bVar12 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;) }))) }))) (labeled_statement "LAB_00023089:\n        iVar6 = local_70;" statement_identifier : (expression_statement "iVar6 = local_70;" (assignment_expression "iVar6 = local_70" identifier = identifier) ;)) (if_statement "if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }" if (parenthesized_expression "(iVar5 != local_70)" ( (binary_expression "iVar5 != local_70" identifier != identifier) )) (compound_statement "{\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }" { (labeled_statement "LAB_00023093:\n          iVar10 = iVar8;" statement_identifier : (expression_statement "iVar10 = iVar8;" (assignment_expression "iVar10 = iVar8" identifier = identifier) ;)) (if_statement "if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;" if (parenthesized_expression "((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0))" ( (binary_expression "(local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)" (parenthesized_expression "(local_70 == iVar8 + 0xc0)" ( (binary_expression "local_70 == iVar8 + 0xc0" identifier == (binary_expression "iVar8 + 0xc0" identifier + number_literal)) )) || (parenthesized_expression "(iVar5 == iVar8 + 0xc0)" ( (binary_expression "iVar5 == iVar8 + 0xc0" identifier == (binary_expression "iVar8 + 0xc0" identifier + number_literal)) ))) )) (goto_statement "goto LAB_00023258;" goto statement_identifier ;)) (expression_statement "iVar6 = local_70;" (assignment_expression "iVar6 = local_70" identifier = identifier) ;) (if_statement "if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }" if (parenthesized_expression "(((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14))" ( (binary_expression "((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)" (parenthesized_expression "((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180))))))" ( (binary_expression "(*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))" (parenthesized_expression "(*(int *)(&DAT_00054839 + unaff_EDI) != local_70)" ( (binary_expression "*(int *)(&DAT_00054839 + unaff_EDI) != local_70" (pointer_expression "*(int *)(&DAT_00054839 + unaff_EDI)" * (cast_expression "(int *)(&DAT_00054839 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00054839 + unaff_EDI)" ( (binary_expression "&DAT_00054839 + unaff_EDI" (pointer_expression "&DAT_00054839" & identifier) + identifier) )))) != identifier) )) && (parenthesized_expression "((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))" ( (parenthesized_expression "(((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180))))" ( (binary_expression "((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))" (parenthesized_expression "((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5))" ( (binary_expression "(iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)" (parenthesized_expression "(iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70))" ( (comma_expression "iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)" (assignment_expression "iVar6 = iVar5" identifier = identifier) , (binary_expression "*(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)" (binary_expression "*(int *)(&DAT_00054839 + unaff_EDI) != iVar5" (pointer_expression "*(int *)(&DAT_00054839 + unaff_EDI)" * (cast_expression "(int *)(&DAT_00054839 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00054839 + unaff_EDI)" ( (binary_expression "&DAT_00054839 + unaff_EDI" (pointer_expression "&DAT_00054839" & identifier) + identifier) )))) != identifier) && (parenthesized_expression "(iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)" ( (comma_expression "iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70" (assignment_expression "iVar6 = local_70" identifier = identifier) , (binary_expression "*(int *)(&DAT_000548e9 + unaff_EDI) != local_70" (pointer_expression "*(int *)(&DAT_000548e9 + unaff_EDI)" * (cast_expression "(int *)(&DAT_000548e9 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000548e9 + unaff_EDI)" ( (binary_expression "&DAT_000548e9 + unaff_EDI" (pointer_expression "&DAT_000548e9" & identifier) + identifier) )))) != identifier)) )))) )) && (parenthesized_expression "(iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)" ( (comma_expression "iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5" (assignment_expression "iVar6 = iVar5" identifier = identifier) , (binary_expression "*(int *)(&DAT_000548e9 + unaff_EDI) != iVar5" (pointer_expression "*(int *)(&DAT_000548e9 + unaff_EDI)" * (cast_expression "(int *)(&DAT_000548e9 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000548e9 + unaff_EDI)" ( (binary_expression "&DAT_000548e9 + unaff_EDI" (pointer_expression "&DAT_000548e9" & identifier) + identifier) )))) != identifier)) ))) )) && (parenthesized_expression "((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))" ( (parenthesized_expression "(iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180))" ( (comma_expression "iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)" (assignment_expression "iVar6 = local_70" identifier = identifier) , (binary_expression "iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)" (binary_expression "iVar5 != iVar8 + 0x180" identifier != (binary_expression "iVar8 + 0x180" identifier + number_literal)) && (parenthesized_expression "(iVar6 = iVar5, local_70 != iVar8 + 0x180)" ( (comma_expression "iVar6 = iVar5, local_70 != iVar8 + 0x180" (assignment_expression "iVar6 = iVar5" identifier = identifier) , (binary_expression "local_70 != iVar8 + 0x180" identifier != (binary_expression "iVar8 + 0x180" identifier + number_literal))) )))) )) ))) )) ))) )) && (parenthesized_expression "(iVar6 = local_70, local_84 != 0x14)" ( (comma_expression "iVar6 = local_70, local_84 != 0x14" (assignment_expression "iVar6 = local_70" identifier = identifier) , (binary_expression "local_84 != 0x14" identifier != number_literal)) ))) )) (compound_statement "{\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }" { (expression_statement "uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);" (assignment_expression "uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5)" identifier = (call_expression "dcgettext(0,unaff_EDI + 0x2f041,5)" identifier (argument_list "(0,unaff_EDI + 0x2f041,5)" ( number_literal , (binary_expression "unaff_EDI + 0x2f041" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bcf0(uVar9);" (call_expression "FUN_0002bcf0(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) })) }) (else_clause "else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }" else (if_statement "if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }" if (parenthesized_expression "(local_84 == 0x13)" ( (binary_expression "local_84 == 0x13" identifier == number_literal) )) (compound_statement "{\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }" { (if_statement "if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }" if (parenthesized_expression "(local_20 == '\x02')" ( (binary_expression "local_20 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }" { (expression_statement "uVar14 = param_2[3];" (assignment_expression "uVar14 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = param_2[2];" (assignment_expression "uVar17 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);" (assignment_expression "uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28)" identifier = (binary_expression "uVar14 + local_24 + (uint)CARRY4(uVar17,local_28)" (binary_expression "uVar14 + local_24" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar17,local_28)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar17,local_28)" identifier (argument_list "(uVar17,local_28)" ( identifier , identifier )))))) ;) (expression_statement "param_2[2] = uVar17 + local_28;" (assignment_expression "param_2[2] = uVar17 + local_28" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar17 + local_28" identifier + identifier)) ;) (expression_statement "bVar12 = *(byte *)((int)param_2 + 0x11);" (assignment_expression "bVar12 = *(byte *)((int)param_2 + 0x11)" identifier = (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "param_2[3] = uVar16;" (assignment_expression "param_2[3] = uVar16" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar3 = (local_1f ^ bVar12) >> 1 & 1;" (assignment_expression "bVar3 = (local_1f ^ bVar12) >> 1 & 1" identifier = (binary_expression "(local_1f ^ bVar12) >> 1 & 1" (binary_expression "(local_1f ^ bVar12) >> 1" (parenthesized_expression "(local_1f ^ bVar12)" ( (binary_expression "local_1f ^ bVar12" identifier ^ identifier) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;" if (parenthesized_expression "(uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)" ( (binary_expression "uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14" (binary_expression "uVar14 <= uVar16" identifier <= identifier) && (binary_expression "(uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14" (call_expression "(uint)(uVar17 + local_28 < uVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 + local_28 < uVar17)" ( (binary_expression "uVar17 + local_28 < uVar17" (binary_expression "uVar17 + local_28" identifier + identifier) < identifier) ))) <= (binary_expression "uVar16 - uVar14" identifier - identifier))) )) (goto_statement "goto LAB_000237b4;" goto statement_identifier ;)) (labeled_statement "LAB_00023820:\n          bVar3 = bVar3 ^ 1;" statement_identifier : (expression_statement "bVar3 = bVar3 ^ 1;" (assignment_expression "bVar3 = bVar3 ^ 1" identifier = (binary_expression "bVar3 ^ 1" identifier ^ number_literal)) ;)) (labeled_statement "LAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';" statement_identifier : (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar12 & 0xfd | bVar3 * '\x02'" (binary_expression "bVar12 & 0xfd" identifier & number_literal) | (binary_expression "bVar3 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;)) (goto_statement "goto LAB_00023089;" goto statement_identifier ;) })) (expression_statement "cVar13 = (char)param_2[4];" (assignment_expression "cVar13 = (char)param_2[4]" identifier = (cast_expression "(char)param_2[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[4]" identifier [ number_literal ]))) ;) (if_statement "if (cVar13 != '\x02') goto LAB_0002302e;" if (parenthesized_expression "(cVar13 != '\x02')" ( (binary_expression "cVar13 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002302e;" goto statement_identifier ;)) (expression_statement "uVar14 = param_2[3];" (assignment_expression "uVar14 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "bVar3 = *(byte *)((int)param_2 + 0x11);" (assignment_expression "bVar3 = *(byte *)((int)param_2 + 0x11)" identifier = (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)(param_2 + 4) = local_20;" (assignment_expression "*(char *)(param_2 + 4) = local_20" (pointer_expression "*(char *)(param_2 + 4)" * (cast_expression "(char *)(param_2 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_2 = local_30;" (assignment_expression "*param_2 = local_30" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "param_2[1] = local_2c;" (assignment_expression "param_2[1] = local_2c" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar17 = param_2[2];" (assignment_expression "uVar17 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);" (assignment_expression "uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28)" identifier = (binary_expression "uVar14 + local_24 + (uint)CARRY4(uVar17,local_28)" (binary_expression "uVar14 + local_24" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar17,local_28)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar17,local_28)" identifier (argument_list "(uVar17,local_28)" ( identifier , identifier )))))) ;) (expression_statement "param_2[2] = uVar17 + local_28;" (assignment_expression "param_2[2] = uVar17 + local_28" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar17 + local_28" identifier + identifier)) ;) (expression_statement "param_2[3] = uVar16;" (assignment_expression "param_2[3] = uVar16" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar12 = (bVar3 ^ local_1f) >> 1 & 1;" (assignment_expression "bVar12 = (bVar3 ^ local_1f) >> 1 & 1" identifier = (binary_expression "(bVar3 ^ local_1f) >> 1 & 1" (binary_expression "(bVar3 ^ local_1f) >> 1" (parenthesized_expression "(bVar3 ^ local_1f)" ( (binary_expression "bVar3 ^ local_1f" identifier ^ identifier) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }" if (parenthesized_expression "(uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17))" ( (binary_expression "uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)" (binary_expression "uVar16 < uVar14" identifier < identifier) || (binary_expression "uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)" (binary_expression "uVar16 - uVar14" identifier - identifier) < (call_expression "(uint)(uVar17 + local_28 < uVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 + local_28 < uVar17)" ( (binary_expression "uVar17 + local_28 < uVar17" (binary_expression "uVar17 + local_28" identifier + identifier) < identifier) ))))) )) (compound_statement "{\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }" { (expression_statement "*(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;" (assignment_expression "*(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(bVar12 ^ 1) * '\x02' | bVar3 & 0xfd" (binary_expression "(bVar12 ^ 1) * '\x02'" (parenthesized_expression "(bVar12 ^ 1)" ( (binary_expression "bVar12 ^ 1" identifier ^ number_literal) )) * (char_literal "'\x02'" ' escape_sequence ')) | (binary_expression "bVar3 & 0xfd" identifier & number_literal))) ;) }) (else_clause "else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }" else (compound_statement "{\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }" { (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar12 * '\x02' | bVar3 & 0xfd" (binary_expression "bVar12 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')) | (binary_expression "bVar3 & 0xfd" identifier & number_literal))) ;) }))) }) (else_clause "else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }" else (compound_statement "{\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }" { (if_statement "if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }" if (parenthesized_expression "(local_84 == 0x14)" ( (binary_expression "local_84 == 0x14" identifier == number_literal) )) (compound_statement "{\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }" { (if_statement "if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }" if (parenthesized_expression "(local_20 == '\x03')" ( (binary_expression "local_20 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }" { (if_statement "if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;" if (parenthesized_expression "(((char)param_2[4] != '\x03') || (iVar5 != local_70))" ( (binary_expression "((char)param_2[4] != '\x03') || (iVar5 != local_70)" (parenthesized_expression "((char)param_2[4] != '\x03')" ( (binary_expression "(char)param_2[4] != '\x03'" (cast_expression "(char)param_2[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[4]" identifier [ number_literal ])) != (char_literal "'\x03'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar5 != local_70)" ( (binary_expression "iVar5 != local_70" identifier != identifier) ))) )) (goto_statement "goto LAB_0002301a;" goto statement_identifier ;)) (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }" if (parenthesized_expression "(((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5))" ( (binary_expression "((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)" (parenthesized_expression "((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5))))" ( (binary_expression "(iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))" (parenthesized_expression "(iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0)" ( (binary_expression "iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0" identifier == (binary_expression "*(int *)(unaff_EDI + 0x4b1c1) + 0xc0" (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" * (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b1c1)" ( (binary_expression "unaff_EDI + 0x4b1c1" identifier + number_literal) )))) + number_literal)) )) || (parenthesized_expression "((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))" ( (parenthesized_expression "(iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5))" ( (binary_expression "iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)" (binary_expression "iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180" identifier == (binary_expression "*(int *)(unaff_EDI + 0x4b1c1) + 0x180" (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" * (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b1c1)" ( (binary_expression "unaff_EDI + 0x4b1c1" identifier + number_literal) )))) + number_literal)) || (parenthesized_expression "(*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)" ( (binary_expression "*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5" (pointer_expression "*(int *)(&DAT_000548e9 + unaff_EDI)" * (cast_expression "(int *)(&DAT_000548e9 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000548e9 + unaff_EDI)" ( (binary_expression "&DAT_000548e9 + unaff_EDI" (pointer_expression "&DAT_000548e9" & identifier) + identifier) )))) == identifier) ))) )) ))) )) || (parenthesized_expression "(*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)" ( (binary_expression "*(int *)(&DAT_00054839 + unaff_EDI) == iVar5" (pointer_expression "*(int *)(&DAT_00054839 + unaff_EDI)" * (cast_expression "(int *)(&DAT_00054839 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00054839 + unaff_EDI)" ( (binary_expression "&DAT_00054839 + unaff_EDI" (pointer_expression "&DAT_00054839" & identifier) + identifier) )))) == identifier) ))) )) (compound_statement "{\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }" { (labeled_statement "LAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;" statement_identifier : (if_statement "if (local_30 != iVar6) goto LAB_000236cb;" if (parenthesized_expression "(local_30 != iVar6)" ( (binary_expression "local_30 != iVar6" identifier != identifier) )) (goto_statement "goto LAB_000236cb;" goto statement_identifier ;))) }) (else_clause "else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }" else (compound_statement "{\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }" { (expression_statement "iVar6 = FUN_00038140(iVar6,0);" (assignment_expression "iVar6 = FUN_00038140(iVar6,0)" identifier = (call_expression "FUN_00038140(iVar6,0)" identifier (argument_list "(iVar6,0)" ( identifier , number_literal )))) ;) (if_statement "if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }" if (parenthesized_expression "((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 )" ( (binary_expression "(iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)" ( (comma_expression "iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0" (assignment_expression "iVar10 = FUN_00038140(local_30,0)" identifier = (call_expression "FUN_00038140(local_30,0)" identifier (argument_list "(local_30,0)" ( identifier , number_literal )))) , (comma_expression "iVar6 = local_30, iVar10 != 0" (assignment_expression "iVar6 = local_30" identifier = identifier) , (binary_expression "iVar10 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }" { (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (goto_statement "goto LAB_000236bc;" goto statement_identifier ;) })) }))) (expression_statement "uVar9 = FUN_0003b250(iVar6);" (assignment_expression "uVar9 = FUN_0003b250(iVar6)" identifier = (call_expression "FUN_0003b250(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "uVar11 = FUN_0003b250(*param_2);" (assignment_expression "uVar11 = FUN_0003b250(*param_2)" identifier = (call_expression "FUN_0003b250(*param_2)" identifier (argument_list "(*param_2)" ( (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);" (assignment_expression "iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c)" identifier = (call_expression "FUN_00024e60(uVar11,uVar9,&local_3c)" identifier (argument_list "(uVar11,uVar9,&local_3c)" ( identifier , identifier , (pointer_expression "&local_3c" & identifier) )))) ;) (if_statement "if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }" { (expression_statement "lVar21 = FUN_00039de0(*param_2);" (assignment_expression "lVar21 = FUN_00039de0(*param_2)" identifier = (call_expression "FUN_00039de0(*param_2)" identifier (argument_list "(*param_2)" ( (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "lVar22 = FUN_00039de0(local_30);" (assignment_expression "lVar22 = FUN_00039de0(local_30)" identifier = (call_expression "FUN_00039de0(local_30)" identifier (argument_list "(local_30)" ( identifier )))) ;) (expression_statement "uVar14 = param_2[2];" (assignment_expression "uVar14 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = param_2[3];" (assignment_expression "uVar17 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar14 - local_28;" (assignment_expression "uVar16 = uVar14 - local_28" identifier = (binary_expression "uVar14 - local_28" identifier - identifier)) ;) (expression_statement "uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);" (assignment_expression "uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28)" identifier = (binary_expression "(uVar17 - local_24) - (uint)(uVar14 < local_28)" (parenthesized_expression "(uVar17 - local_24)" ( (binary_expression "uVar17 - local_24" identifier - identifier) )) - (call_expression "(uint)(uVar14 < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < local_28)" ( (binary_expression "uVar14 < local_28" identifier < identifier) ))))) ;) (expression_statement "param_2[2] = uVar16;" (assignment_expression "param_2[2] = uVar16" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[3] = uVar18;" (assignment_expression "param_2[3] = uVar18" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;" (assignment_expression "bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1" identifier = (binary_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1" (binary_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1" (parenthesized_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11))" ( (binary_expression "local_1f ^ *(byte *)((int)param_2 + 0x11)" identifier ^ (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }" if (parenthesized_expression "(uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28))" ( (binary_expression "uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)" (binary_expression "uVar17 < local_24" identifier < identifier) || (binary_expression "uVar17 - local_24 < (uint)(uVar14 < local_28)" (binary_expression "uVar17 - local_24" identifier - identifier) < (call_expression "(uint)(uVar14 < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < local_28)" ( (binary_expression "uVar14 < local_28" identifier < identifier) ))))) )) (compound_statement "{\n                bVar3 = bVar3 ^ 1;\n              }" { (expression_statement "bVar3 = bVar3 ^ 1;" (assignment_expression "bVar3 = bVar3 ^ 1" identifier = (binary_expression "bVar3 ^ 1" identifier ^ number_literal)) ;) })) (expression_statement "*(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "bVar3 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;) (expression_statement "uVar14 = uVar16 - local_3c;" (assignment_expression "uVar14 = uVar16 - local_3c" identifier = (binary_expression "uVar16 - local_3c" identifier - identifier)) ;) (expression_statement "uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);" (assignment_expression "uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c)" identifier = (binary_expression "(uVar18 - local_38) - (uint)(uVar16 < local_3c)" (parenthesized_expression "(uVar18 - local_38)" ( (binary_expression "uVar18 - local_38" identifier - identifier) )) - (call_expression "(uint)(uVar16 < local_3c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < local_3c)" ( (binary_expression "uVar16 < local_3c" identifier < identifier) ))))) ;) (expression_statement "param_2[2] = uVar14;" (assignment_expression "param_2[2] = uVar14" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[3] = uVar17;" (assignment_expression "param_2[3] = uVar17" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }" if (parenthesized_expression "(uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c))" ( (binary_expression "uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)" (binary_expression "uVar18 < local_38" identifier < identifier) || (binary_expression "uVar18 - local_38 < (uint)(uVar16 < local_3c)" (binary_expression "uVar18 - local_38" identifier - identifier) < (call_expression "(uint)(uVar16 < local_3c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < local_3c)" ( (binary_expression "uVar16 < local_3c" identifier < identifier) ))))) )) (compound_statement "{\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }" { (expression_statement "bVar3 = bVar3 ^ 1;" (assignment_expression "bVar3 = bVar3 ^ 1" identifier = (binary_expression "bVar3 ^ 1" identifier ^ number_literal)) ;) (expression_statement "bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';" (assignment_expression "bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" identifier = (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "bVar3 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;) (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar12;" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar12" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }" else (compound_statement "{\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }" { (expression_statement "bVar12 = *(byte *)((int)param_2 + 0x11);" (assignment_expression "bVar12 = *(byte *)((int)param_2 + 0x11)" identifier = (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);" (assignment_expression "lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14)" identifier = (binary_expression "(lVar21 - lVar22) + CONCAT44(uVar17,uVar14)" (parenthesized_expression "(lVar21 - lVar22)" ( (binary_expression "lVar21 - lVar22" identifier - identifier) )) + (call_expression "CONCAT44(uVar17,uVar14)" identifier (argument_list "(uVar17,uVar14)" ( identifier , identifier ))))) ;) (expression_statement "uVar16 = (uint)((ulonglong)lVar2 >> 0x20);" (assignment_expression "uVar16 = (uint)((ulonglong)lVar2 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(longlong *)(param_2 + 2) = lVar2;" (assignment_expression "*(longlong *)(param_2 + 2) = lVar2" (pointer_expression "*(longlong *)(param_2 + 2)" * (cast_expression "(longlong *)(param_2 + 2)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 2)" ( (binary_expression "param_2 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);" (assignment_expression "bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f)" identifier = (binary_expression "bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f)" identifier ^ (call_expression "(byte)((ulonglong)(lVar21 - lVar22) >> 0x3f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)(lVar21 - lVar22) >> 0x3f)" ( (binary_expression "(ulonglong)(lVar21 - lVar22) >> 0x3f" (call_expression "(ulonglong)(lVar21 - lVar22)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar21 - lVar22)" ( (binary_expression "lVar21 - lVar22" identifier - identifier) ))) >> number_literal) ))))) ;) (if_statement "if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }" if (parenthesized_expression "(uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14))" ( (binary_expression "uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)" (binary_expression "uVar16 < uVar17" identifier < identifier) || (binary_expression "uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)" (binary_expression "uVar16 - uVar17" identifier - identifier) < (call_expression "(uint)((uint)lVar2 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)lVar2 < uVar14)" ( (binary_expression "(uint)lVar2 < uVar14" (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))))) )) (compound_statement "{\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }" { (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar12 & 0xfd | (bVar3 ^ 1) * '\x02'" (binary_expression "bVar12 & 0xfd" identifier & number_literal) | (binary_expression "(bVar3 ^ 1) * '\x02'" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) * (char_literal "'\x02'" ' escape_sequence ')))) ;) }) (else_clause "else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }" else (compound_statement "{\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }" { (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar12 & 0xfd | bVar3 * '\x02'" (binary_expression "bVar12 & 0xfd" identifier & number_literal) | (binary_expression "bVar3 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;) }))) (expression_statement "*(undefined1 *)(param_2 + 4) = 2;" (assignment_expression "*(undefined1 *)(param_2 + 4) = 2" (pointer_expression "*(undefined1 *)(param_2 + 4)" * (cast_expression "(undefined1 *)(param_2 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "iVar6 = local_70;" (assignment_expression "iVar6 = local_70" identifier = identifier) ;) (goto_statement "goto joined_r0x00023268;" goto statement_identifier ;) })) })) (labeled_statement "LAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;" statement_identifier : (if_statement "if (local_20 == '\x02') goto LAB_0002337b;" if (parenthesized_expression "(local_20 == '\x02')" ( (binary_expression "local_20 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002337b;" goto statement_identifier ;))) })) (labeled_statement "LAB_0002301a:\n        uVar17 = local_24;" statement_identifier : (expression_statement "uVar17 = local_24;" (assignment_expression "uVar17 = local_24" identifier = identifier) ;)) (expression_statement "uVar14 = local_28;" (assignment_expression "uVar14 = local_28" identifier = identifier) ;) (expression_statement "cVar13 = (char)param_2[4];" (assignment_expression "cVar13 = (char)param_2[4]" identifier = (cast_expression "(char)param_2[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[4]" identifier [ number_literal ]))) ;) (if_statement "if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }" if (parenthesized_expression "(cVar13 == '\x02')" ( (binary_expression "cVar13 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }" { (if_statement "if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }" if (parenthesized_expression "(local_20 == '\x02')" ( (binary_expression "local_20 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }" { (if_statement "if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }" if (parenthesized_expression "(local_24 == 0 && local_28 == 0)" ( (binary_expression "local_24 == 0 && local_28 == 0" (binary_expression "local_24 == 0" identifier == number_literal) && (binary_expression "local_28 == 0" identifier == number_literal)) )) (compound_statement "{\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }" { (if_statement "if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }" if (parenthesized_expression "(local_84 - 0xbU < 2)" ( (binary_expression "local_84 - 0xbU < 2" (binary_expression "local_84 - 0xbU" identifier - number_literal) < number_literal) )) (compound_statement "{\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }" { (expression_statement "uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);" (assignment_expression "uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5)" identifier = (call_expression "dcgettext(0,&UNK_0002ee06 + unaff_EDI,5)" identifier (argument_list "(0,&UNK_0002ee06 + unaff_EDI,5)" ( number_literal , (binary_expression "&UNK_0002ee06 + unaff_EDI" (pointer_expression "&UNK_0002ee06" & identifier) + identifier) , number_literal )))) ;) (expression_statement "FUN_0002bc10(uVar9);" (call_expression "FUN_0002bc10(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) }) (else_clause "else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }" else (if_statement "if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }" if (parenthesized_expression "((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    )" ( (binary_expression "(local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)" (parenthesized_expression "(local_24 != 0 || -local_24 < (uint)(0x3f < local_28))" ( (binary_expression "local_24 != 0 || -local_24 < (uint)(0x3f < local_28)" (binary_expression "local_24 != 0" identifier != number_literal) || (binary_expression "-local_24 < (uint)(0x3f < local_28)" (unary_expression "-local_24" - identifier) < (call_expression "(uint)(0x3f < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x3f < local_28)" ( (binary_expression "0x3f < local_28" number_literal < identifier) ))))) )) && (parenthesized_expression "(local_84 - 0xdU < 2)" ( (binary_expression "local_84 - 0xdU < 2" (binary_expression "local_84 - 0xdU" identifier - number_literal) < number_literal) ))) )) (compound_statement "{\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }" { (expression_statement "uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);" (assignment_expression "uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5)" identifier = (call_expression "dcgettext(0,unaff_EDI + 0x2ee17,5)" identifier (argument_list "(0,unaff_EDI + 0x2ee17,5)" ( number_literal , (binary_expression "unaff_EDI + 0x2ee17" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);" (call_expression "FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0)" identifier (argument_list "(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0)" ( identifier , identifier , identifier , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "param_2[2] = 0;" (assignment_expression "param_2[2] = 0" (subscript_expression "param_2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[3] = 0;" (assignment_expression "param_2[3] = 0" (subscript_expression "param_2[3]" identifier [ number_literal ]) = number_literal) ;) })))) (if_statement "if (local_84 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }" if (parenthesized_expression "(local_84 - 10U < 0x13)" ( (binary_expression "local_84 - 10U < 0x13" (binary_expression "local_84 - 10U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }" { comment comment (expression_statement "iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();" (assignment_expression "iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))()" identifier = (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))" ( (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219)" * (cast_expression "(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219)" ( (binary_expression "*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219" (binary_expression "*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI" (pointer_expression "*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4)" * (cast_expression "(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4)" ( (binary_expression "unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4" (binary_expression "unaff_EDI + 0x2f3d1" identifier + number_literal) + (binary_expression "(local_84 - 10U) * 4" (parenthesized_expression "(local_84 - 10U)" ( (binary_expression "local_84 - 10U" identifier - number_literal) )) * number_literal)) )))) + identifier) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar8;" return identifier ;) })) })) (labeled_statement "LAB_0002303c:\n          iVar6 = FUN_00021360(param_2);" statement_identifier : (expression_statement "iVar6 = FUN_00021360(param_2);" (assignment_expression "iVar6 = FUN_00021360(param_2)" identifier = (call_expression "FUN_00021360(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;)) (expression_statement "*param_2 = iVar6;" (assignment_expression "*param_2 = iVar6" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "iVar6 = FUN_00021360(&local_30);" (assignment_expression "iVar6 = FUN_00021360(&local_30)" identifier = (call_expression "FUN_00021360(&local_30)" identifier (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) )))) ;) (expression_statement "param_2[1] = iVar6;" (assignment_expression "param_2[1] = iVar6" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(param_2 + 4) = (undefined1)local_84;" (assignment_expression "*(undefined1 *)(param_2 + 4) = (undefined1)local_84" (pointer_expression "*(undefined1 *)(param_2 + 4)" * (cast_expression "(undefined1 *)(param_2 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = (cast_expression "(undefined1)local_84" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "param_2[2] = 0;" (assignment_expression "param_2[2] = 0" (subscript_expression "param_2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[3] = 0;" (assignment_expression "param_2[3] = 0" (subscript_expression "param_2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;" (assignment_expression "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfc | 1" (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfc" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | number_literal)) ;) (goto_statement "goto LAB_00023089;" goto statement_identifier ;) })) (labeled_statement "LAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;" statement_identifier : (if_statement "if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;" if (parenthesized_expression "((cVar13 != '\x03') || (local_20 != '\x03'))" ( (binary_expression "(cVar13 != '\x03') || (local_20 != '\x03')" (parenthesized_expression "(cVar13 != '\x03')" ( (binary_expression "cVar13 != '\x03'" identifier != (char_literal "'\x03'" ' escape_sequence ')) )) || (parenthesized_expression "(local_20 != '\x03')" ( (binary_expression "local_20 != '\x03'" identifier != (char_literal "'\x03'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0002303c;" goto statement_identifier ;))) (if_statement "if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }" if (parenthesized_expression "(1 < local_84 - 0x13U)" ( (binary_expression "1 < local_84 - 0x13U" number_literal < (binary_expression "local_84 - 0x13U" identifier - number_literal)) )) (compound_statement "{\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }" { (if_statement "if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }" if (parenthesized_expression "((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0))" ( (binary_expression "(param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)" (parenthesized_expression "(param_2[3] == 0 && local_24 == 0)" ( (binary_expression "param_2[3] == 0 && local_24 == 0" (binary_expression "param_2[3] == 0" (subscript_expression "param_2[3]" identifier [ number_literal ]) == number_literal) && (binary_expression "local_24 == 0" identifier == number_literal)) )) && (parenthesized_expression "(param_2[2] == 0 && local_28 == 0)" ( (binary_expression "param_2[2] == 0 && local_28 == 0" (binary_expression "param_2[2] == 0" (subscript_expression "param_2[2]" identifier [ number_literal ]) == number_literal) && (binary_expression "local_28 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }" { (expression_statement "*(undefined1 *)(param_2 + 4) = (undefined1)local_84;" (assignment_expression "*(undefined1 *)(param_2 + 4) = (undefined1)local_84" (pointer_expression "*(undefined1 *)(param_2 + 4)" * (cast_expression "(undefined1 *)(param_2 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = (cast_expression "(undefined1)local_84" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "param_2[1] = local_30;" (assignment_expression "param_2[1] = local_30" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_00023089;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002303c;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)(param_2 + 4) = (undefined1)local_84;" (assignment_expression "*(undefined1 *)(param_2 + 4) = (undefined1)local_84" (pointer_expression "*(undefined1 *)(param_2 + 4)" * (cast_expression "(undefined1 *)(param_2 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = (cast_expression "(undefined1)local_84" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "param_2[1] = local_30;" (assignment_expression "param_2[1] = local_30" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }" if (parenthesized_expression "(local_84 == 0x13)" ( (binary_expression "local_84 == 0x13" identifier == number_literal) )) (compound_statement "{\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }" { (expression_statement "uVar14 = param_2[2];" (assignment_expression "uVar14 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = param_2[3];" (assignment_expression "uVar17 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);" (assignment_expression "uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28)" identifier = (binary_expression "uVar17 + local_24 + (uint)CARRY4(uVar14,local_28)" (binary_expression "uVar17 + local_24" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar14,local_28)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,local_28)" identifier (argument_list "(uVar14,local_28)" ( identifier , identifier )))))) ;) (expression_statement "param_2[2] = uVar14 + local_28;" (assignment_expression "param_2[2] = uVar14 + local_28" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar14 + local_28" identifier + identifier)) ;) (expression_statement "bVar12 = *(byte *)((int)param_2 + 0x11);" (assignment_expression "bVar12 = *(byte *)((int)param_2 + 0x11)" identifier = (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "param_2[3] = uVar16;" (assignment_expression "param_2[3] = uVar16" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar3 = (local_1f ^ bVar12) >> 1 & 1;" (assignment_expression "bVar3 = (local_1f ^ bVar12) >> 1 & 1" identifier = (binary_expression "(local_1f ^ bVar12) >> 1 & 1" (binary_expression "(local_1f ^ bVar12) >> 1" (parenthesized_expression "(local_1f ^ bVar12)" ( (binary_expression "local_1f ^ bVar12" identifier ^ identifier) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;" if (parenthesized_expression "(uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))" ( (binary_expression "uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14)" (binary_expression "uVar16 < uVar17" identifier < identifier) || (binary_expression "uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14)" (binary_expression "uVar16 - uVar17" identifier - identifier) < (call_expression "(uint)(uVar14 + local_28 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 + local_28 < uVar14)" ( (binary_expression "uVar14 + local_28 < uVar14" (binary_expression "uVar14 + local_28" identifier + identifier) < identifier) ))))) )) (goto_statement "goto LAB_00023820;" goto statement_identifier ;)) (goto_statement "goto LAB_00023823;" goto statement_identifier ;) })) (expression_statement "uVar14 = param_2[3];" (assignment_expression "uVar14 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = param_2[2];" (assignment_expression "uVar17 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "param_2[2] = uVar17 - local_28;" (assignment_expression "param_2[2] = uVar17 - local_28" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar17 - local_28" identifier - identifier)) ;) (expression_statement "param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);" (assignment_expression "param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28)" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "(uVar14 - local_24) - (uint)(uVar17 < local_28)" (parenthesized_expression "(uVar14 - local_24)" ( (binary_expression "uVar14 - local_24" identifier - identifier) )) - (call_expression "(uint)(uVar17 < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < local_28)" ( (binary_expression "uVar17 < local_28" identifier < identifier) ))))) ;) (expression_statement "bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;" (assignment_expression "bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1" identifier = (binary_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1" (binary_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1" (parenthesized_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11))" ( (binary_expression "local_1f ^ *(byte *)((int)param_2 + 0x11)" identifier ^ (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }" if (parenthesized_expression "(uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28))" ( (binary_expression "uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)" (binary_expression "uVar14 < local_24" identifier < identifier) || (binary_expression "uVar14 - local_24 < (uint)(uVar17 < local_28)" (binary_expression "uVar14 - local_24" identifier - identifier) < (call_expression "(uint)(uVar17 < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < local_28)" ( (binary_expression "uVar17 < local_28" identifier < identifier) ))))) )) (compound_statement "{\n          bVar3 = bVar3 ^ 1;\n        }" { (expression_statement "bVar3 = bVar3 ^ 1;" (assignment_expression "bVar3 = bVar3 ^ 1" identifier = (binary_expression "bVar3 ^ 1" identifier ^ number_literal)) ;) })) (expression_statement "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "bVar3 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;) (if_statement "if (iVar5 != local_70) goto LAB_00023093;" if (parenthesized_expression "(iVar5 != local_70)" ( (binary_expression "iVar5 != local_70" identifier != identifier) )) (goto_statement "goto LAB_00023093;" goto statement_identifier ;)) (expression_statement "iVar10 = *(int *)(unaff_EDI + 0x4b1c1);" (assignment_expression "iVar10 = *(int *)(unaff_EDI + 0x4b1c1)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" * (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b1c1)" ( (binary_expression "unaff_EDI + 0x4b1c1" identifier + number_literal) ))))) ;) (if_statement "if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }" if (parenthesized_expression "(local_70 == iVar10 + 0x180)" ( (binary_expression "local_70 == iVar10 + 0x180" identifier == (binary_expression "iVar10 + 0x180" identifier + number_literal)) )) (compound_statement "{\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }" { (labeled_statement "LAB_00023a77:\n          iVar6 = iVar10 + 0x180;" statement_identifier : (expression_statement "iVar6 = iVar10 + 0x180;" (assignment_expression "iVar6 = iVar10 + 0x180" identifier = (binary_expression "iVar10 + 0x180" identifier + number_literal)) ;)) (goto_statement "goto joined_r0x00023268;" goto statement_identifier ;) })) (if_statement "if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }" if (parenthesized_expression "(local_70 != iVar10 + 0xc0)" ( (binary_expression "local_70 != iVar10 + 0xc0" identifier != (binary_expression "iVar10 + 0xc0" identifier + number_literal)) )) (compound_statement "{\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }" { (expression_statement "iVar6 = local_70;" (assignment_expression "iVar6 = local_70" identifier = identifier) ;) (if_statement "if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;" if (parenthesized_expression "(((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0))))" ( (binary_expression "((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))" (parenthesized_expression "((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70))" ( (binary_expression "(*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)" (parenthesized_expression "(*(int *)(&DAT_000548e9 + unaff_EDI) == local_70)" ( (binary_expression "*(int *)(&DAT_000548e9 + unaff_EDI) == local_70" (pointer_expression "*(int *)(&DAT_000548e9 + unaff_EDI)" * (cast_expression "(int *)(&DAT_000548e9 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000548e9 + unaff_EDI)" ( (binary_expression "&DAT_000548e9 + unaff_EDI" (pointer_expression "&DAT_000548e9" & identifier) + identifier) )))) == identifier) )) || (parenthesized_expression "(*(int *)(&DAT_00054839 + unaff_EDI) == local_70)" ( (binary_expression "*(int *)(&DAT_00054839 + unaff_EDI) == local_70" (pointer_expression "*(int *)(&DAT_00054839 + unaff_EDI)" * (cast_expression "(int *)(&DAT_00054839 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00054839 + unaff_EDI)" ( (binary_expression "&DAT_00054839 + unaff_EDI" (pointer_expression "&DAT_00054839" & identifier) + identifier) )))) == identifier) ))) )) || (parenthesized_expression "((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))" ( (parenthesized_expression "(iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0))" ( (comma_expression "iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)" (assignment_expression "iVar5 = FUN_00038140(*param_2,0)" identifier = (call_expression "FUN_00038140(*param_2,0)" identifier (argument_list "(*param_2,0)" ( (pointer_expression "*param_2" * identifier) , number_literal )))) , (binary_expression "iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)" (binary_expression "iVar5 != 0" identifier != number_literal) || (parenthesized_expression "(iVar5 = FUN_00038140(local_30,0), iVar5 != 0)" ( (comma_expression "iVar5 = FUN_00038140(local_30,0), iVar5 != 0" (assignment_expression "iVar5 = FUN_00038140(local_30,0)" identifier = (call_expression "FUN_00038140(local_30,0)" identifier (argument_list "(local_30,0)" ( identifier , number_literal )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) )))) )) ))) )) (goto_statement "goto joined_r0x00023268;" goto statement_identifier ;)) (goto_statement "goto LAB_00023a77;" goto statement_identifier ;) })) (labeled_statement "LAB_00023258:\n        iVar6 = iVar10 + 0xc0;" statement_identifier : (expression_statement "iVar6 = iVar10 + 0xc0;" (assignment_expression "iVar6 = iVar10 + 0xc0" identifier = (binary_expression "iVar10 + 0xc0" identifier + number_literal)) ;)) }))))) (labeled_statement "joined_r0x00023268:\n      local_70 = iVar6;" statement_identifier : (expression_statement "local_70 = iVar6;" (assignment_expression "local_70 = iVar6" identifier = identifier) ;)) (if_statement "if (local_78 == 0) break;" if (parenthesized_expression "(local_78 == 0)" ( (binary_expression "local_78 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_84 = local_78;" (assignment_expression "local_84 = local_78" identifier = identifier) ;) (expression_statement "cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);" (assignment_expression "cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78)" identifier = (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + local_78)" * (cast_expression "(char *)(unaff_EDI + 0x4b459 + local_78)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b459 + local_78)" ( (binary_expression "unaff_EDI + 0x4b459 + local_78" (binary_expression "unaff_EDI + 0x4b459" identifier + number_literal) + identifier) ))))) ;) (if_statement "if (cVar13 <= (char)param_1) break;" if (parenthesized_expression "(cVar13 <= (char)param_1)" ( (binary_expression "cVar13 <= (char)param_1" identifier <= (cast_expression "(char)param_1" ( (type_descriptor "char" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "pbVar4 = (byte *)*piVar1;" (assignment_expression "pbVar4 = (byte *)*piVar1" identifier = (cast_expression "(byte *)*piVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_00023277:\n  if (*param_2 != 0) {\n    FUN_0003b280(*param_2);\n  }" statement_identifier : (if_statement "if (*param_2 != 0) {\n    FUN_0003b280(*param_2);\n  }" if (parenthesized_expression "(*param_2 != 0)" ( (binary_expression "*param_2 != 0" (pointer_expression "*param_2" * identifier) != number_literal) )) (compound_statement "{\n    FUN_0003b280(*param_2);\n  }" { (expression_statement "FUN_0003b280(*param_2);" (call_expression "FUN_0003b280(*param_2)" identifier (argument_list "(*param_2)" ( (pointer_expression "*param_2" * identifier) ))) ;) }))) (if_statement "if (((char)param_1 == '\0') && (param_3 == 0)) {\n    FUN_00021760(param_2);\n  }" if (parenthesized_expression "(((char)param_1 == '\0') && (param_3 == 0))" ( (binary_expression "((char)param_1 == '\0') && (param_3 == 0)" (parenthesized_expression "((char)param_1 == '\0')" ( (binary_expression "(char)param_1 == '\0'" (cast_expression "(char)param_1" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    FUN_00021760(param_2);\n  }" { (expression_statement "FUN_00021760(param_2);" (call_expression "FUN_00021760(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) })) (if_statement "if ((char)param_2[4] == '\x02') {\n    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;\n  }" if (parenthesized_expression "((char)param_2[4] == '\x02')" ( (binary_expression "(char)param_2[4] == '\x02'" (cast_expression "(char)param_2[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[4]" identifier [ number_literal ])) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;\n  }" { (expression_statement "local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;" (assignment_expression "local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180" identifier = (binary_expression "*(int *)(unaff_EDI + 0x4b1c1) + 0x180" (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" * (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b1c1)" ( (binary_expression "unaff_EDI + 0x4b1c1" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return local_70;" return identifier ;) })))
(translation_unit "segT expr(int rankarg,expressionS *resultP,expr_mode mode)\n\n{\n  int *piVar1;\n  segT paVar2;\n  segT paVar3;\n  byte bVar4;\n  byte *pbVar5;\n  segT paVar6;\n  symbolS *psVar7;\n  undefined *puVar8;\n  int iVar9;\n  char *pcVar10;\n  fragS *frag2;\n  fragS *frag1;\n  bfd_boolean bVar11;\n  byte bVar12;\n  char cVar13;\n  uint uVar14;\n  byte *pbVar15;\n  int iVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  uint uVar21;\n  int unaff_EDI;\n  bool bVar22;\n  addressT aVar23;\n  valueT vVar24;\n  valueT vVar25;\n  uint local_84;\n  int local_80;\n  int local_78;\n  segT local_70;\n  int local_64;\n  offsetT frag_off;\n  expressionS right;\n  \n  __x86_get_pc_thunk_di();\n  if (rankarg < 0) {\n                    /* WARNING: Subroutine does not return */\n    as_abort((char *)(unaff_EDI + 0x2ed1d),0x6dc,(char *)(unaff_EDI + 0x2f43d));\n  }\n  if ((char)rankarg == '\0') {\n    aVar23 = frag_now_fix();\n    *(addressT *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         aVar23;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)((int)&UINT_0005497c + unaff_EDI + 1);\n  }\n  local_70 = operand(resultP,mode);\n  piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);\n  pbVar5 = (byte *)*piVar1;\n  uVar14 = (uint)*pbVar5;\n  if (*pbVar5 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n    as_abort((char *)(unaff_EDI + 0x2ed1d),0x6e8,(char *)(unaff_EDI + 0x2f43d));\n  }\n  if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;\n  if (uVar14 == 0x2d) {\nLAB_00023af0:\n    iVar20 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (iVar20 == 0) goto LAB_00023277;\n  }\n  else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar5[1] == 0x26) + 1;\n      iVar20 = (uint)(pbVar5[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar5[1] == 0x21) {\n        iVar20 = 0x11;\n        local_64 = 2;\n      }\n      else {\n        iVar16 = 0x16;\n        bVar22 = pbVar5[1] == 0x3d;\n        iVar20 = 0x10;\nLAB_00023175:\n        if (bVar22) {\n          iVar20 = iVar16;\n        }\n        local_64 = bVar22 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar5[1] != 0x3d) goto LAB_00023277;\n    iVar20 = 0x15;\n    local_64 = 2;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar5[1] - 0x3c) < 3) {\n      local_64 = 2;\n      iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    iVar20 = 0x17;\n    local_64 = 1;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar5[1] != 0x3d) {\n      iVar16 = 0xe;\n      bVar22 = pbVar5[1] == 0x3e;\n      iVar20 = 0x1a;\n      goto LAB_00023175;\n    }\n    iVar20 = 0x19;\n    local_64 = 2;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    iVar20 = 0xf;\n    if (pbVar5[1] == 0x7c) {\n      iVar20 = 0x1c;\n    }\n    local_64 = (pbVar5[1] == 0x7c) + 1;\n  }\n  iVar16 = *(int *)(unaff_EDI + 0x4b1c1);\n  cVar13 = *(char *)(unaff_EDI + 0x4b459 + iVar20);\n  if ((char)rankarg < cVar13) {\n    do {\n      *piVar1 = (int)(pbVar5 + local_64);\n      right.X_md = 0;\n      paVar6 = expr((int)cVar13,&right,mode);\n      if (right._16_1_ == '\x01') {\n        pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2edd2,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n      }\n      pbVar5 = (byte *)*piVar1;\n      bVar4 = *pbVar5;\n      uVar14 = (uint)bVar4;\n      if (bVar4 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x6fd,(char *)(unaff_EDI + 0x2f43d));\n      }\n      pbVar15 = pbVar5;\n      if (iVar20 == 0x1d) {\n        if (bVar4 == 0x5d) {\n          pbVar15 = pbVar5 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar5[1];\n          if (pbVar5[1] == 0x20) {\n            pbVar15 = pbVar5 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar5[2];\n          }\n        }\n        else {\n          as_bad((char *)(unaff_EDI + 0x2edf0));\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar22 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar22 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar22 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((iVar20 != 0x1d) && (bVar22)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + iVar20) < *(char *)(unaff_EDI + 0x4b459 + local_78))) {\n                    /* WARNING: Subroutine does not return */\n          as_abort((char *)(unaff_EDI + 0x2ed1d),0x70d,(char *)(unaff_EDI + 0x2f43d));\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (iVar20 < 10) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x70e,(char *)(unaff_EDI + 0x2f43d));\n      }\n      if (0x1d < iVar20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x710,(char *)(unaff_EDI + 0x2f43d));\n      }\n      if (resultP->field_0x10 == '\x06') {\n        if (-*(int *)((int)&resultP->X_add_number + 4) <\n            (int)(uint)((int)resultP->X_add_number != 0)) {\n          iVar9 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar9 = unaff_EDI + 0x2efb9;\n        }\n        pcVar10 = (char *)dcgettext(0,iVar9,5);\n        as_warn(pcVar10);\n        resultP->field_0x10 = 2;\n        *(undefined4 *)&resultP->X_add_number = 0;\n        *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n        resultP->X_add_symbol = (symbolS *)0x0;\n        resultP->X_op_symbol = (symbolS *)0x0;\n      }\n      local_84._0_1_ = (undefined1)iVar20;\n      paVar3 = paVar6;\n      if (right._16_1_ == '\x06') {\n        if ((int)-right.X_add_number._4_4_ < (int)(uint)((uint)right.X_add_number != 0)) {\n          puVar8 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar8 = &UNK_0002f015 + unaff_EDI;\n        }\n        pcVar10 = (char *)dcgettext(0,puVar8,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n        if (iVar20 == 0x13) {\n          bVar4 = (byte)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1;\nLAB_000237b4:\n          resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        }\n        else {\n          if (iVar20 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n          *(uint *)((int)&resultP->X_add_number + 4) =\n               (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n          bVar4 = resultP->field_0x11;\n          bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n          if (uVar14 < right.X_add_number._4_4_ ||\n              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n            resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        paVar3 = local_70;\n        if (paVar6 != local_70) {\nLAB_00023093:\n          iVar9 = iVar16;\n          if ((local_70 == (segT)(iVar16 + 0xc0)) || (paVar6 == (segT)(iVar16 + 0xc0)))\n          goto LAB_00023258;\n          paVar2 = *(segT *)((int)&UINT_00054838 + unaff_EDI + 1);\n          paVar3 = local_70;\n          if (((paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))) &&\n             (paVar3 = local_70, iVar20 != 0x14)) {\n            pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5);\n            as_bad(pcVar10);\n          }\n        }\n      }\n      else if (iVar20 == 0x13) {\n        if (right._16_1_ == '\x02') {\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar4 = bVar4 ^ 1;\nLAB_00023823:\n          resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = resultP->field_0x10;\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        bVar4 = resultP->field_0x11;\n        resultP->field_0x10 = right._16_1_;\n        resultP->X_add_symbol = right.X_add_symbol;\n        resultP->X_op_symbol = right.X_op_symbol;\n        uVar19 = (uint)resultP->X_add_number;\n        uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number);\n        *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n        bVar12 = (bVar4 ^ right._17_1_) >> 1 & 1;\n        if (uVar17 < uVar14 || uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19))\n        {\n          resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd;\n        }\n        else {\n          resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;\n        }\n      }\n      else {\n        if (iVar20 == 0x14) {\n          if (right._16_1_ == '\x03') {\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (right._16_1_ == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar19 = right.X_add_number._4_4_;\n        uVar14 = (uint)right.X_add_number;\n        cVar13 = resultP->field_0x10;\n        if (cVar13 == '\x02') {\n          if (right._16_1_ == '\x02') {\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }\nLAB_0002303c:\n          psVar7 = make_expr_symbol(resultP);\n          resultP->X_add_symbol = psVar7;\n          psVar7 = make_expr_symbol(&right);\n          resultP->X_op_symbol = psVar7;\n          bVar4 = resultP->field_0x11;\n          resultP->field_0x10 = (undefined1)local_84;\n          *(undefined4 *)&resultP->X_add_number = 0;\n          *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n          resultP->field_0x11 = bVar4 & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;\n        if (1 < iVar20 - 0x13U) {\n          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        resultP->field_0x10 = (undefined1)local_84;\n        resultP->X_op_symbol = right.X_add_symbol;\n        if (iVar20 == 0x13) {\n          uVar14 = (uint)resultP->X_add_number;\n          uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        uVar19 = (uint)resultP->X_add_number;\n        *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) =\n             (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n        bVar4 = (byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1;\n        if (uVar14 < right.X_add_number._4_4_ ||\n            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n          bVar4 = bVar4 ^ 1;\n        }\n        resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        if (paVar6 != local_70) goto LAB_00023093;\n        iVar9 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == (segT)(iVar9 + 0x180)) {\nLAB_00023a77:\n          paVar3 = (segT)(iVar9 + 0x180);\n          goto joined_r0x00023268;\n        }\n        if (local_70 != (segT)(iVar9 + 0xc0)) {\n          paVar3 = local_70;\n          if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))\n          goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        paVar3 = (segT)(iVar9 + 0xc0);\n      }\njoined_r0x00023268:\n      local_70 = paVar3;\n      if ((local_78 == 0) ||\n         (cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78), cVar13 <= (char)rankarg)) break;\n      pbVar5 = (byte *)*piVar1;\n      iVar20 = local_78;\n    } while( true );\n  }\nLAB_00023277:\n  if (resultP->X_add_symbol != (symbolS *)0x0) {\n    symbol_mark_used(resultP->X_add_symbol);\n  }\n  if (((char)rankarg == '\0') && (mode == expr_evaluate)) {\n    resolve_expression(resultP);\n  }\n  if (resultP->field_0x10 == '\x02') {\n    local_70 = (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180);\n  }\n  return local_70;\n}\n\n" (function_definition "segT expr(int rankarg,expressionS *resultP,expr_mode mode)\n\n{\n  int *piVar1;\n  segT paVar2;\n  segT paVar3;\n  byte bVar4;\n  byte *pbVar5;\n  segT paVar6;\n  symbolS *psVar7;\n  undefined *puVar8;\n  int iVar9;\n  char *pcVar10;\n  fragS *frag2;\n  fragS *frag1;\n  bfd_boolean bVar11;\n  byte bVar12;\n  char cVar13;\n  uint uVar14;\n  byte *pbVar15;\n  int iVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  uint uVar21;\n  int unaff_EDI;\n  bool bVar22;\n  addressT aVar23;\n  valueT vVar24;\n  valueT vVar25;\n  uint local_84;\n  int local_80;\n  int local_78;\n  segT local_70;\n  int local_64;\n  offsetT frag_off;\n  expressionS right;\n  \n  __x86_get_pc_thunk_di();\n  if (rankarg < 0) {\n                    /* WARNING: Subroutine does not return */\n    as_abort((char *)(unaff_EDI + 0x2ed1d),0x6dc,(char *)(unaff_EDI + 0x2f43d));\n  }\n  if ((char)rankarg == '\0') {\n    aVar23 = frag_now_fix();\n    *(addressT *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         aVar23;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)((int)&UINT_0005497c + unaff_EDI + 1);\n  }\n  local_70 = operand(resultP,mode);\n  piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);\n  pbVar5 = (byte *)*piVar1;\n  uVar14 = (uint)*pbVar5;\n  if (*pbVar5 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n    as_abort((char *)(unaff_EDI + 0x2ed1d),0x6e8,(char *)(unaff_EDI + 0x2f43d));\n  }\n  if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;\n  if (uVar14 == 0x2d) {\nLAB_00023af0:\n    iVar20 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (iVar20 == 0) goto LAB_00023277;\n  }\n  else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar5[1] == 0x26) + 1;\n      iVar20 = (uint)(pbVar5[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar5[1] == 0x21) {\n        iVar20 = 0x11;\n        local_64 = 2;\n      }\n      else {\n        iVar16 = 0x16;\n        bVar22 = pbVar5[1] == 0x3d;\n        iVar20 = 0x10;\nLAB_00023175:\n        if (bVar22) {\n          iVar20 = iVar16;\n        }\n        local_64 = bVar22 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar5[1] != 0x3d) goto LAB_00023277;\n    iVar20 = 0x15;\n    local_64 = 2;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar5[1] - 0x3c) < 3) {\n      local_64 = 2;\n      iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    iVar20 = 0x17;\n    local_64 = 1;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar5[1] != 0x3d) {\n      iVar16 = 0xe;\n      bVar22 = pbVar5[1] == 0x3e;\n      iVar20 = 0x1a;\n      goto LAB_00023175;\n    }\n    iVar20 = 0x19;\n    local_64 = 2;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    iVar20 = 0xf;\n    if (pbVar5[1] == 0x7c) {\n      iVar20 = 0x1c;\n    }\n    local_64 = (pbVar5[1] == 0x7c) + 1;\n  }\n  iVar16 = *(int *)(unaff_EDI + 0x4b1c1);\n  cVar13 = *(char *)(unaff_EDI + 0x4b459 + iVar20);\n  if ((char)rankarg < cVar13) {\n    do {\n      *piVar1 = (int)(pbVar5 + local_64);\n      right.X_md = 0;\n      paVar6 = expr((int)cVar13,&right,mode);\n      if (right._16_1_ == '\x01') {\n        pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2edd2,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n      }\n      pbVar5 = (byte *)*piVar1;\n      bVar4 = *pbVar5;\n      uVar14 = (uint)bVar4;\n      if (bVar4 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x6fd,(char *)(unaff_EDI + 0x2f43d));\n      }\n      pbVar15 = pbVar5;\n      if (iVar20 == 0x1d) {\n        if (bVar4 == 0x5d) {\n          pbVar15 = pbVar5 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar5[1];\n          if (pbVar5[1] == 0x20) {\n            pbVar15 = pbVar5 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar5[2];\n          }\n        }\n        else {\n          as_bad((char *)(unaff_EDI + 0x2edf0));\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar22 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar22 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar22 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((iVar20 != 0x1d) && (bVar22)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + iVar20) < *(char *)(unaff_EDI + 0x4b459 + local_78))) {\n                    /* WARNING: Subroutine does not return */\n          as_abort((char *)(unaff_EDI + 0x2ed1d),0x70d,(char *)(unaff_EDI + 0x2f43d));\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (iVar20 < 10) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x70e,(char *)(unaff_EDI + 0x2f43d));\n      }\n      if (0x1d < iVar20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x710,(char *)(unaff_EDI + 0x2f43d));\n      }\n      if (resultP->field_0x10 == '\x06') {\n        if (-*(int *)((int)&resultP->X_add_number + 4) <\n            (int)(uint)((int)resultP->X_add_number != 0)) {\n          iVar9 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar9 = unaff_EDI + 0x2efb9;\n        }\n        pcVar10 = (char *)dcgettext(0,iVar9,5);\n        as_warn(pcVar10);\n        resultP->field_0x10 = 2;\n        *(undefined4 *)&resultP->X_add_number = 0;\n        *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n        resultP->X_add_symbol = (symbolS *)0x0;\n        resultP->X_op_symbol = (symbolS *)0x0;\n      }\n      local_84._0_1_ = (undefined1)iVar20;\n      paVar3 = paVar6;\n      if (right._16_1_ == '\x06') {\n        if ((int)-right.X_add_number._4_4_ < (int)(uint)((uint)right.X_add_number != 0)) {\n          puVar8 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar8 = &UNK_0002f015 + unaff_EDI;\n        }\n        pcVar10 = (char *)dcgettext(0,puVar8,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n        if (iVar20 == 0x13) {\n          bVar4 = (byte)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1;\nLAB_000237b4:\n          resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        }\n        else {\n          if (iVar20 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n          *(uint *)((int)&resultP->X_add_number + 4) =\n               (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n          bVar4 = resultP->field_0x11;\n          bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n          if (uVar14 < right.X_add_number._4_4_ ||\n              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n            resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        paVar3 = local_70;\n        if (paVar6 != local_70) {\nLAB_00023093:\n          iVar9 = iVar16;\n          if ((local_70 == (segT)(iVar16 + 0xc0)) || (paVar6 == (segT)(iVar16 + 0xc0)))\n          goto LAB_00023258;\n          paVar2 = *(segT *)((int)&UINT_00054838 + unaff_EDI + 1);\n          paVar3 = local_70;\n          if (((paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))) &&\n             (paVar3 = local_70, iVar20 != 0x14)) {\n            pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5);\n            as_bad(pcVar10);\n          }\n        }\n      }\n      else if (iVar20 == 0x13) {\n        if (right._16_1_ == '\x02') {\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar4 = bVar4 ^ 1;\nLAB_00023823:\n          resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = resultP->field_0x10;\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        bVar4 = resultP->field_0x11;\n        resultP->field_0x10 = right._16_1_;\n        resultP->X_add_symbol = right.X_add_symbol;\n        resultP->X_op_symbol = right.X_op_symbol;\n        uVar19 = (uint)resultP->X_add_number;\n        uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number);\n        *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n        bVar12 = (bVar4 ^ right._17_1_) >> 1 & 1;\n        if (uVar17 < uVar14 || uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19))\n        {\n          resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd;\n        }\n        else {\n          resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;\n        }\n      }\n      else {\n        if (iVar20 == 0x14) {\n          if (right._16_1_ == '\x03') {\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (right._16_1_ == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar19 = right.X_add_number._4_4_;\n        uVar14 = (uint)right.X_add_number;\n        cVar13 = resultP->field_0x10;\n        if (cVar13 == '\x02') {\n          if (right._16_1_ == '\x02') {\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }\nLAB_0002303c:\n          psVar7 = make_expr_symbol(resultP);\n          resultP->X_add_symbol = psVar7;\n          psVar7 = make_expr_symbol(&right);\n          resultP->X_op_symbol = psVar7;\n          bVar4 = resultP->field_0x11;\n          resultP->field_0x10 = (undefined1)local_84;\n          *(undefined4 *)&resultP->X_add_number = 0;\n          *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n          resultP->field_0x11 = bVar4 & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;\n        if (1 < iVar20 - 0x13U) {\n          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        resultP->field_0x10 = (undefined1)local_84;\n        resultP->X_op_symbol = right.X_add_symbol;\n        if (iVar20 == 0x13) {\n          uVar14 = (uint)resultP->X_add_number;\n          uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        uVar19 = (uint)resultP->X_add_number;\n        *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) =\n             (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n        bVar4 = (byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1;\n        if (uVar14 < right.X_add_number._4_4_ ||\n            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n          bVar4 = bVar4 ^ 1;\n        }\n        resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        if (paVar6 != local_70) goto LAB_00023093;\n        iVar9 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == (segT)(iVar9 + 0x180)) {\nLAB_00023a77:\n          paVar3 = (segT)(iVar9 + 0x180);\n          goto joined_r0x00023268;\n        }\n        if (local_70 != (segT)(iVar9 + 0xc0)) {\n          paVar3 = local_70;\n          if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))\n          goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        paVar3 = (segT)(iVar9 + 0xc0);\n      }\njoined_r0x00023268:\n      local_70 = paVar3;\n      if ((local_78 == 0) ||\n         (cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78), cVar13 <= (char)rankarg)) break;\n      pbVar5 = (byte *)*piVar1;\n      iVar20 = local_78;\n    } while( true );\n  }\nLAB_00023277:\n  if (resultP->X_add_symbol != (symbolS *)0x0) {\n    symbol_mark_used(resultP->X_add_symbol);\n  }\n  if (((char)rankarg == '\0') && (mode == expr_evaluate)) {\n    resolve_expression(resultP);\n  }\n  if (resultP->field_0x10 == '\x02') {\n    local_70 = (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180);\n  }\n  return local_70;\n}" type_identifier (function_declarator "expr(int rankarg,expressionS *resultP,expr_mode mode)" identifier (parameter_list "(int rankarg,expressionS *resultP,expr_mode mode)" ( (parameter_declaration "int rankarg" primitive_type identifier) , (parameter_declaration "expressionS *resultP" type_identifier (pointer_declarator "*resultP" * identifier)) , (parameter_declaration "expr_mode mode" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  segT paVar2;\n  segT paVar3;\n  byte bVar4;\n  byte *pbVar5;\n  segT paVar6;\n  symbolS *psVar7;\n  undefined *puVar8;\n  int iVar9;\n  char *pcVar10;\n  fragS *frag2;\n  fragS *frag1;\n  bfd_boolean bVar11;\n  byte bVar12;\n  char cVar13;\n  uint uVar14;\n  byte *pbVar15;\n  int iVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  uint uVar21;\n  int unaff_EDI;\n  bool bVar22;\n  addressT aVar23;\n  valueT vVar24;\n  valueT vVar25;\n  uint local_84;\n  int local_80;\n  int local_78;\n  segT local_70;\n  int local_64;\n  offsetT frag_off;\n  expressionS right;\n  \n  __x86_get_pc_thunk_di();\n  if (rankarg < 0) {\n                    /* WARNING: Subroutine does not return */\n    as_abort((char *)(unaff_EDI + 0x2ed1d),0x6dc,(char *)(unaff_EDI + 0x2f43d));\n  }\n  if ((char)rankarg == '\0') {\n    aVar23 = frag_now_fix();\n    *(addressT *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         aVar23;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)((int)&UINT_0005497c + unaff_EDI + 1);\n  }\n  local_70 = operand(resultP,mode);\n  piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);\n  pbVar5 = (byte *)*piVar1;\n  uVar14 = (uint)*pbVar5;\n  if (*pbVar5 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n    as_abort((char *)(unaff_EDI + 0x2ed1d),0x6e8,(char *)(unaff_EDI + 0x2f43d));\n  }\n  if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;\n  if (uVar14 == 0x2d) {\nLAB_00023af0:\n    iVar20 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (iVar20 == 0) goto LAB_00023277;\n  }\n  else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar5[1] == 0x26) + 1;\n      iVar20 = (uint)(pbVar5[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar5[1] == 0x21) {\n        iVar20 = 0x11;\n        local_64 = 2;\n      }\n      else {\n        iVar16 = 0x16;\n        bVar22 = pbVar5[1] == 0x3d;\n        iVar20 = 0x10;\nLAB_00023175:\n        if (bVar22) {\n          iVar20 = iVar16;\n        }\n        local_64 = bVar22 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar5[1] != 0x3d) goto LAB_00023277;\n    iVar20 = 0x15;\n    local_64 = 2;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar5[1] - 0x3c) < 3) {\n      local_64 = 2;\n      iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    iVar20 = 0x17;\n    local_64 = 1;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar5[1] != 0x3d) {\n      iVar16 = 0xe;\n      bVar22 = pbVar5[1] == 0x3e;\n      iVar20 = 0x1a;\n      goto LAB_00023175;\n    }\n    iVar20 = 0x19;\n    local_64 = 2;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    iVar20 = 0xf;\n    if (pbVar5[1] == 0x7c) {\n      iVar20 = 0x1c;\n    }\n    local_64 = (pbVar5[1] == 0x7c) + 1;\n  }\n  iVar16 = *(int *)(unaff_EDI + 0x4b1c1);\n  cVar13 = *(char *)(unaff_EDI + 0x4b459 + iVar20);\n  if ((char)rankarg < cVar13) {\n    do {\n      *piVar1 = (int)(pbVar5 + local_64);\n      right.X_md = 0;\n      paVar6 = expr((int)cVar13,&right,mode);\n      if (right._16_1_ == '\x01') {\n        pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2edd2,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n      }\n      pbVar5 = (byte *)*piVar1;\n      bVar4 = *pbVar5;\n      uVar14 = (uint)bVar4;\n      if (bVar4 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x6fd,(char *)(unaff_EDI + 0x2f43d));\n      }\n      pbVar15 = pbVar5;\n      if (iVar20 == 0x1d) {\n        if (bVar4 == 0x5d) {\n          pbVar15 = pbVar5 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar5[1];\n          if (pbVar5[1] == 0x20) {\n            pbVar15 = pbVar5 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar5[2];\n          }\n        }\n        else {\n          as_bad((char *)(unaff_EDI + 0x2edf0));\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar22 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar22 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar22 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((iVar20 != 0x1d) && (bVar22)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + iVar20) < *(char *)(unaff_EDI + 0x4b459 + local_78))) {\n                    /* WARNING: Subroutine does not return */\n          as_abort((char *)(unaff_EDI + 0x2ed1d),0x70d,(char *)(unaff_EDI + 0x2f43d));\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (iVar20 < 10) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x70e,(char *)(unaff_EDI + 0x2f43d));\n      }\n      if (0x1d < iVar20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x710,(char *)(unaff_EDI + 0x2f43d));\n      }\n      if (resultP->field_0x10 == '\x06') {\n        if (-*(int *)((int)&resultP->X_add_number + 4) <\n            (int)(uint)((int)resultP->X_add_number != 0)) {\n          iVar9 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar9 = unaff_EDI + 0x2efb9;\n        }\n        pcVar10 = (char *)dcgettext(0,iVar9,5);\n        as_warn(pcVar10);\n        resultP->field_0x10 = 2;\n        *(undefined4 *)&resultP->X_add_number = 0;\n        *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n        resultP->X_add_symbol = (symbolS *)0x0;\n        resultP->X_op_symbol = (symbolS *)0x0;\n      }\n      local_84._0_1_ = (undefined1)iVar20;\n      paVar3 = paVar6;\n      if (right._16_1_ == '\x06') {\n        if ((int)-right.X_add_number._4_4_ < (int)(uint)((uint)right.X_add_number != 0)) {\n          puVar8 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar8 = &UNK_0002f015 + unaff_EDI;\n        }\n        pcVar10 = (char *)dcgettext(0,puVar8,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n        if (iVar20 == 0x13) {\n          bVar4 = (byte)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1;\nLAB_000237b4:\n          resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        }\n        else {\n          if (iVar20 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n          *(uint *)((int)&resultP->X_add_number + 4) =\n               (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n          bVar4 = resultP->field_0x11;\n          bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n          if (uVar14 < right.X_add_number._4_4_ ||\n              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n            resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        paVar3 = local_70;\n        if (paVar6 != local_70) {\nLAB_00023093:\n          iVar9 = iVar16;\n          if ((local_70 == (segT)(iVar16 + 0xc0)) || (paVar6 == (segT)(iVar16 + 0xc0)))\n          goto LAB_00023258;\n          paVar2 = *(segT *)((int)&UINT_00054838 + unaff_EDI + 1);\n          paVar3 = local_70;\n          if (((paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))) &&\n             (paVar3 = local_70, iVar20 != 0x14)) {\n            pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5);\n            as_bad(pcVar10);\n          }\n        }\n      }\n      else if (iVar20 == 0x13) {\n        if (right._16_1_ == '\x02') {\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar4 = bVar4 ^ 1;\nLAB_00023823:\n          resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = resultP->field_0x10;\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        bVar4 = resultP->field_0x11;\n        resultP->field_0x10 = right._16_1_;\n        resultP->X_add_symbol = right.X_add_symbol;\n        resultP->X_op_symbol = right.X_op_symbol;\n        uVar19 = (uint)resultP->X_add_number;\n        uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number);\n        *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n        bVar12 = (bVar4 ^ right._17_1_) >> 1 & 1;\n        if (uVar17 < uVar14 || uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19))\n        {\n          resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd;\n        }\n        else {\n          resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;\n        }\n      }\n      else {\n        if (iVar20 == 0x14) {\n          if (right._16_1_ == '\x03') {\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (right._16_1_ == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar19 = right.X_add_number._4_4_;\n        uVar14 = (uint)right.X_add_number;\n        cVar13 = resultP->field_0x10;\n        if (cVar13 == '\x02') {\n          if (right._16_1_ == '\x02') {\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }\nLAB_0002303c:\n          psVar7 = make_expr_symbol(resultP);\n          resultP->X_add_symbol = psVar7;\n          psVar7 = make_expr_symbol(&right);\n          resultP->X_op_symbol = psVar7;\n          bVar4 = resultP->field_0x11;\n          resultP->field_0x10 = (undefined1)local_84;\n          *(undefined4 *)&resultP->X_add_number = 0;\n          *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n          resultP->field_0x11 = bVar4 & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;\n        if (1 < iVar20 - 0x13U) {\n          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        resultP->field_0x10 = (undefined1)local_84;\n        resultP->X_op_symbol = right.X_add_symbol;\n        if (iVar20 == 0x13) {\n          uVar14 = (uint)resultP->X_add_number;\n          uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        uVar19 = (uint)resultP->X_add_number;\n        *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) =\n             (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n        bVar4 = (byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1;\n        if (uVar14 < right.X_add_number._4_4_ ||\n            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n          bVar4 = bVar4 ^ 1;\n        }\n        resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        if (paVar6 != local_70) goto LAB_00023093;\n        iVar9 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == (segT)(iVar9 + 0x180)) {\nLAB_00023a77:\n          paVar3 = (segT)(iVar9 + 0x180);\n          goto joined_r0x00023268;\n        }\n        if (local_70 != (segT)(iVar9 + 0xc0)) {\n          paVar3 = local_70;\n          if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))\n          goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        paVar3 = (segT)(iVar9 + 0xc0);\n      }\njoined_r0x00023268:\n      local_70 = paVar3;\n      if ((local_78 == 0) ||\n         (cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78), cVar13 <= (char)rankarg)) break;\n      pbVar5 = (byte *)*piVar1;\n      iVar20 = local_78;\n    } while( true );\n  }\nLAB_00023277:\n  if (resultP->X_add_symbol != (symbolS *)0x0) {\n    symbol_mark_used(resultP->X_add_symbol);\n  }\n  if (((char)rankarg == '\0') && (mode == expr_evaluate)) {\n    resolve_expression(resultP);\n  }\n  if (resultP->field_0x10 == '\x02') {\n    local_70 = (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180);\n  }\n  return local_70;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "segT paVar2;" type_identifier identifier ;) (declaration "segT paVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "segT paVar6;" type_identifier identifier ;) (declaration "symbolS *psVar7;" type_identifier (pointer_declarator "*psVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "fragS *frag2;" type_identifier (pointer_declarator "*frag2" * identifier) ;) (declaration "fragS *frag1;" type_identifier (pointer_declarator "*frag1" * identifier) ;) (declaration "bfd_boolean bVar11;" type_identifier identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "char cVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "addressT aVar23;" type_identifier identifier ;) (declaration "valueT vVar24;" type_identifier identifier ;) (declaration "valueT vVar25;" type_identifier identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "segT local_70;" type_identifier identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "offsetT frag_off;" type_identifier identifier ;) (declaration "expressionS right;" type_identifier identifier ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (if_statement "if (rankarg < 0) {\n                    /* WARNING: Subroutine does not return */\n    as_abort((char *)(unaff_EDI + 0x2ed1d),0x6dc,(char *)(unaff_EDI + 0x2f43d));\n  }" if (parenthesized_expression "(rankarg < 0)" ( (binary_expression "rankarg < 0" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    as_abort((char *)(unaff_EDI + 0x2ed1d),0x6dc,(char *)(unaff_EDI + 0x2f43d));\n  }" { comment (expression_statement "as_abort((char *)(unaff_EDI + 0x2ed1d),0x6dc,(char *)(unaff_EDI + 0x2f43d));" (call_expression "as_abort((char *)(unaff_EDI + 0x2ed1d),0x6dc,(char *)(unaff_EDI + 0x2f43d))" identifier (argument_list "((char *)(unaff_EDI + 0x2ed1d),0x6dc,(char *)(unaff_EDI + 0x2f43d))" ( (cast_expression "(char *)(unaff_EDI + 0x2ed1d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2ed1d)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x2f43d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f43d)" ( (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) ))) ))) ;) })) (if_statement "if ((char)rankarg == '\0') {\n    aVar23 = frag_now_fix();\n    *(addressT *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         aVar23;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)((int)&UINT_0005497c + unaff_EDI + 1);\n  }" if (parenthesized_expression "((char)rankarg == '\0')" ( (binary_expression "(char)rankarg == '\0'" (cast_expression "(char)rankarg" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    aVar23 = frag_now_fix();\n    *(addressT *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         aVar23;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)((int)&UINT_0005497c + unaff_EDI + 1);\n  }" { (expression_statement "aVar23 = frag_now_fix();" (assignment_expression "aVar23 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(addressT *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         aVar23;" (assignment_expression "*(addressT *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         aVar23" (pointer_expression "*(addressT *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1)" * (cast_expression "(addressT *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1)" ( (type_descriptor "addressT *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1)" ( (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1" (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI" (string_literal "".stab%c: description field \'%x\' too big, try a different debug format"" " string_content escape_sequence string_content escape_sequence string_content ") + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)((int)&UINT_0005497c + unaff_EDI + 1);" (assignment_expression "*(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)((int)&UINT_0005497c + unaff_EDI + 1)" (pointer_expression "*(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)" * (cast_expression "(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)" ( (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11" (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI" (string_literal "".stab%c: description field \'%x\' too big, try a different debug format"" " string_content escape_sequence string_content escape_sequence string_content ") + identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&UINT_0005497c + unaff_EDI + 1)" * (cast_expression "(undefined4 *)((int)&UINT_0005497c + unaff_EDI + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&UINT_0005497c + unaff_EDI + 1)" ( (binary_expression "(int)&UINT_0005497c + unaff_EDI + 1" (binary_expression "(int)&UINT_0005497c + unaff_EDI" (cast_expression "(int)&UINT_0005497c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&UINT_0005497c" & identifier)) + identifier) + number_literal) ))))) ;) })) (expression_statement "local_70 = operand(resultP,mode);" (assignment_expression "local_70 = operand(resultP,mode)" identifier = (call_expression "operand(resultP,mode)" identifier (argument_list "(resultP,mode)" ( identifier , identifier )))) ;) (expression_statement "piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);" (assignment_expression "piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19)" identifier = (cast_expression "(int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "("demand_empty_rest_of_line" + unaff_EDI + 0x19)" ( (binary_expression ""demand_empty_rest_of_line" + unaff_EDI + 0x19" (binary_expression ""demand_empty_rest_of_line" + unaff_EDI" (string_literal ""demand_empty_rest_of_line"" " string_content ") + identifier) + number_literal) )))) ;) (expression_statement "pbVar5 = (byte *)*piVar1;" (assignment_expression "pbVar5 = (byte *)*piVar1" identifier = (cast_expression "(byte *)*piVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (expression_statement "uVar14 = (uint)*pbVar5;" (assignment_expression "uVar14 = (uint)*pbVar5" identifier = (binary_expression "(uint)*pbVar5" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (*pbVar5 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n    as_abort((char *)(unaff_EDI + 0x2ed1d),0x6e8,(char *)(unaff_EDI + 0x2f43d));\n  }" if (parenthesized_expression "(*pbVar5 == 0x20)" ( (binary_expression "*pbVar5 == 0x20" (pointer_expression "*pbVar5" * identifier) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    as_abort((char *)(unaff_EDI + 0x2ed1d),0x6e8,(char *)(unaff_EDI + 0x2f43d));\n  }" { comment (expression_statement "as_abort((char *)(unaff_EDI + 0x2ed1d),0x6e8,(char *)(unaff_EDI + 0x2f43d));" (call_expression "as_abort((char *)(unaff_EDI + 0x2ed1d),0x6e8,(char *)(unaff_EDI + 0x2f43d))" identifier (argument_list "((char *)(unaff_EDI + 0x2ed1d),0x6e8,(char *)(unaff_EDI + 0x2f43d))" ( (cast_expression "(char *)(unaff_EDI + 0x2ed1d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2ed1d)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x2f43d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f43d)" ( (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) ))) ))) ;) })) (if_statement "if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14)" * (cast_expression "(char *)(unaff_EDI + 0x4b4f9 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b4f9 + uVar14)" ( (binary_expression "unaff_EDI + 0x4b4f9 + uVar14" (binary_expression "unaff_EDI + 0x4b4f9" identifier + number_literal) + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00023277;" goto statement_identifier ;)) (if_statement "if (uVar14 == 0x2d) {\nLAB_00023af0:\n    iVar20 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (iVar20 == 0) goto LAB_00023277;\n  }\n  else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar5[1] == 0x26) + 1;\n      iVar20 = (uint)(pbVar5[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar5[1] == 0x21) {\n        iVar20 = 0x11;\n        local_64 = 2;\n      }\n      else {\n        iVar16 = 0x16;\n        bVar22 = pbVar5[1] == 0x3d;\n        iVar20 = 0x10;\nLAB_00023175:\n        if (bVar22) {\n          iVar20 = iVar16;\n        }\n        local_64 = bVar22 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar5[1] != 0x3d) goto LAB_00023277;\n    iVar20 = 0x15;\n    local_64 = 2;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar5[1] - 0x3c) < 3) {\n      local_64 = 2;\n      iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    iVar20 = 0x17;\n    local_64 = 1;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar5[1] != 0x3d) {\n      iVar16 = 0xe;\n      bVar22 = pbVar5[1] == 0x3e;\n      iVar20 = 0x1a;\n      goto LAB_00023175;\n    }\n    iVar20 = 0x19;\n    local_64 = 2;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    iVar20 = 0xf;\n    if (pbVar5[1] == 0x7c) {\n      iVar20 = 0x1c;\n    }\n    local_64 = (pbVar5[1] == 0x7c) + 1;\n  }" if (parenthesized_expression "(uVar14 == 0x2d)" ( (binary_expression "uVar14 == 0x2d" identifier == number_literal) )) (compound_statement "{\nLAB_00023af0:\n    iVar20 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (iVar20 == 0) goto LAB_00023277;\n  }" { (labeled_statement "LAB_00023af0:\n    iVar20 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" statement_identifier : (expression_statement "iVar20 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" (assignment_expression "iVar20 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f459 + uVar14 * 4)" ( (binary_expression "unaff_EDI + 0x2f459 + uVar14 * 4" (binary_expression "unaff_EDI + 0x2f459" identifier + number_literal) + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;)) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00023b03:\n    if (iVar20 == 0) goto LAB_00023277;" statement_identifier : (if_statement "if (iVar20 == 0) goto LAB_00023277;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00023277;" goto statement_identifier ;))) }) (else_clause "else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar5[1] == 0x26) + 1;\n      iVar20 = (uint)(pbVar5[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar5[1] == 0x21) {\n        iVar20 = 0x11;\n        local_64 = 2;\n      }\n      else {\n        iVar16 = 0x16;\n        bVar22 = pbVar5[1] == 0x3d;\n        iVar20 = 0x10;\nLAB_00023175:\n        if (bVar22) {\n          iVar20 = iVar16;\n        }\n        local_64 = bVar22 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar5[1] != 0x3d) goto LAB_00023277;\n    iVar20 = 0x15;\n    local_64 = 2;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar5[1] - 0x3c) < 3) {\n      local_64 = 2;\n      iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    iVar20 = 0x17;\n    local_64 = 1;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar5[1] != 0x3d) {\n      iVar16 = 0xe;\n      bVar22 = pbVar5[1] == 0x3e;\n      iVar20 = 0x1a;\n      goto LAB_00023175;\n    }\n    iVar20 = 0x19;\n    local_64 = 2;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    iVar20 = 0xf;\n    if (pbVar5[1] == 0x7c) {\n      iVar20 = 0x1c;\n    }\n    local_64 = (pbVar5[1] == 0x7c) + 1;\n  }" else (if_statement "if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar5[1] == 0x26) + 1;\n      iVar20 = (uint)(pbVar5[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar5[1] == 0x21) {\n        iVar20 = 0x11;\n        local_64 = 2;\n      }\n      else {\n        iVar16 = 0x16;\n        bVar22 = pbVar5[1] == 0x3d;\n        iVar20 = 0x10;\nLAB_00023175:\n        if (bVar22) {\n          iVar20 = iVar16;\n        }\n        local_64 = bVar22 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar5[1] != 0x3d) goto LAB_00023277;\n    iVar20 = 0x15;\n    local_64 = 2;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar5[1] - 0x3c) < 3) {\n      local_64 = 2;\n      iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    iVar20 = 0x17;\n    local_64 = 1;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar5[1] != 0x3d) {\n      iVar16 = 0xe;\n      bVar22 = pbVar5[1] == 0x3e;\n      iVar20 = 0x1a;\n      goto LAB_00023175;\n    }\n    iVar20 = 0x19;\n    local_64 = 2;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    iVar20 = 0xf;\n    if (pbVar5[1] == 0x7c) {\n      iVar20 = 0x1c;\n    }\n    local_64 = (pbVar5[1] == 0x7c) + 1;\n  }" if (parenthesized_expression "(uVar14 < 0x2e)" ( (binary_expression "uVar14 < 0x2e" identifier < number_literal) )) (compound_statement "{\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar5[1] == 0x26) + 1;\n      iVar20 = (uint)(pbVar5[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar5[1] == 0x21) {\n        iVar20 = 0x11;\n        local_64 = 2;\n      }\n      else {\n        iVar16 = 0x16;\n        bVar22 = pbVar5[1] == 0x3d;\n        iVar20 = 0x10;\nLAB_00023175:\n        if (bVar22) {\n          iVar20 = iVar16;\n        }\n        local_64 = bVar22 + 1;\n      }\n    }\n  }" { (if_statement "if (uVar14 == 0x26) {\n      local_64 = (pbVar5[1] == 0x26) + 1;\n      iVar20 = (uint)(pbVar5[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar5[1] == 0x21) {\n        iVar20 = 0x11;\n        local_64 = 2;\n      }\n      else {\n        iVar16 = 0x16;\n        bVar22 = pbVar5[1] == 0x3d;\n        iVar20 = 0x10;\nLAB_00023175:\n        if (bVar22) {\n          iVar20 = iVar16;\n        }\n        local_64 = bVar22 + 1;\n      }\n    }" if (parenthesized_expression "(uVar14 == 0x26)" ( (binary_expression "uVar14 == 0x26" identifier == number_literal) )) (compound_statement "{\n      local_64 = (pbVar5[1] == 0x26) + 1;\n      iVar20 = (uint)(pbVar5[1] == 0x26) * 9 + 0x12;\n    }" { (expression_statement "local_64 = (pbVar5[1] == 0x26) + 1;" (assignment_expression "local_64 = (pbVar5[1] == 0x26) + 1" identifier = (binary_expression "(pbVar5[1] == 0x26) + 1" (parenthesized_expression "(pbVar5[1] == 0x26)" ( (binary_expression "pbVar5[1] == 0x26" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) == number_literal) )) + number_literal)) ;) (expression_statement "iVar20 = (uint)(pbVar5[1] == 0x26) * 9 + 0x12;" (assignment_expression "iVar20 = (uint)(pbVar5[1] == 0x26) * 9 + 0x12" identifier = (binary_expression "(uint)(pbVar5[1] == 0x26) * 9 + 0x12" (binary_expression "(uint)(pbVar5[1] == 0x26) * 9" (call_expression "(uint)(pbVar5[1] == 0x26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar5[1] == 0x26)" ( (binary_expression "pbVar5[1] == 0x26" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) == number_literal) ))) * number_literal) + number_literal)) ;) }) (else_clause "else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar5[1] == 0x21) {\n        iVar20 = 0x11;\n        local_64 = 2;\n      }\n      else {\n        iVar16 = 0x16;\n        bVar22 = pbVar5[1] == 0x3d;\n        iVar20 = 0x10;\nLAB_00023175:\n        if (bVar22) {\n          iVar20 = iVar16;\n        }\n        local_64 = bVar22 + 1;\n      }\n    }" else (compound_statement "{\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar5[1] == 0x21) {\n        iVar20 = 0x11;\n        local_64 = 2;\n      }\n      else {\n        iVar16 = 0x16;\n        bVar22 = pbVar5[1] == 0x3d;\n        iVar20 = 0x10;\nLAB_00023175:\n        if (bVar22) {\n          iVar20 = iVar16;\n        }\n        local_64 = bVar22 + 1;\n      }\n    }" { (if_statement "if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;" if (parenthesized_expression "((uVar14 == 0x2b) || (uVar14 != 0x21))" ( (binary_expression "(uVar14 == 0x2b) || (uVar14 != 0x21)" (parenthesized_expression "(uVar14 == 0x2b)" ( (binary_expression "uVar14 == 0x2b" identifier == number_literal) )) || (parenthesized_expression "(uVar14 != 0x21)" ( (binary_expression "uVar14 != 0x21" identifier != number_literal) ))) )) (goto_statement "goto LAB_00023af0;" goto statement_identifier ;)) (if_statement "if (pbVar5[1] == 0x21) {\n        iVar20 = 0x11;\n        local_64 = 2;\n      }\n      else {\n        iVar16 = 0x16;\n        bVar22 = pbVar5[1] == 0x3d;\n        iVar20 = 0x10;\nLAB_00023175:\n        if (bVar22) {\n          iVar20 = iVar16;\n        }\n        local_64 = bVar22 + 1;\n      }" if (parenthesized_expression "(pbVar5[1] == 0x21)" ( (binary_expression "pbVar5[1] == 0x21" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar20 = 0x11;\n        local_64 = 2;\n      }" { (expression_statement "iVar20 = 0x11;" (assignment_expression "iVar20 = 0x11" identifier = number_literal) ;) (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) }) (else_clause "else {\n        iVar16 = 0x16;\n        bVar22 = pbVar5[1] == 0x3d;\n        iVar20 = 0x10;\nLAB_00023175:\n        if (bVar22) {\n          iVar20 = iVar16;\n        }\n        local_64 = bVar22 + 1;\n      }" else (compound_statement "{\n        iVar16 = 0x16;\n        bVar22 = pbVar5[1] == 0x3d;\n        iVar20 = 0x10;\nLAB_00023175:\n        if (bVar22) {\n          iVar20 = iVar16;\n        }\n        local_64 = bVar22 + 1;\n      }" { (expression_statement "iVar16 = 0x16;" (assignment_expression "iVar16 = 0x16" identifier = number_literal) ;) (expression_statement "bVar22 = pbVar5[1] == 0x3d;" (assignment_expression "bVar22 = pbVar5[1] == 0x3d" identifier = (binary_expression "pbVar5[1] == 0x3d" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) == number_literal)) ;) (expression_statement "iVar20 = 0x10;" (assignment_expression "iVar20 = 0x10" identifier = number_literal) ;) (labeled_statement "LAB_00023175:\n        if (bVar22) {\n          iVar20 = iVar16;\n        }" statement_identifier : (if_statement "if (bVar22) {\n          iVar20 = iVar16;\n        }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n          iVar20 = iVar16;\n        }" { (expression_statement "iVar20 = iVar16;" (assignment_expression "iVar20 = iVar16" identifier = identifier) ;) }))) (expression_statement "local_64 = bVar22 + 1;" (assignment_expression "local_64 = bVar22 + 1" identifier = (binary_expression "bVar22 + 1" identifier + number_literal)) ;) }))) }))) }) (else_clause "else if (uVar14 == 0x3d) {\n    if (pbVar5[1] != 0x3d) goto LAB_00023277;\n    iVar20 = 0x15;\n    local_64 = 2;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar5[1] - 0x3c) < 3) {\n      local_64 = 2;\n      iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    iVar20 = 0x17;\n    local_64 = 1;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar5[1] != 0x3d) {\n      iVar16 = 0xe;\n      bVar22 = pbVar5[1] == 0x3e;\n      iVar20 = 0x1a;\n      goto LAB_00023175;\n    }\n    iVar20 = 0x19;\n    local_64 = 2;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    iVar20 = 0xf;\n    if (pbVar5[1] == 0x7c) {\n      iVar20 = 0x1c;\n    }\n    local_64 = (pbVar5[1] == 0x7c) + 1;\n  }" else (if_statement "if (uVar14 == 0x3d) {\n    if (pbVar5[1] != 0x3d) goto LAB_00023277;\n    iVar20 = 0x15;\n    local_64 = 2;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar5[1] - 0x3c) < 3) {\n      local_64 = 2;\n      iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    iVar20 = 0x17;\n    local_64 = 1;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar5[1] != 0x3d) {\n      iVar16 = 0xe;\n      bVar22 = pbVar5[1] == 0x3e;\n      iVar20 = 0x1a;\n      goto LAB_00023175;\n    }\n    iVar20 = 0x19;\n    local_64 = 2;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    iVar20 = 0xf;\n    if (pbVar5[1] == 0x7c) {\n      iVar20 = 0x1c;\n    }\n    local_64 = (pbVar5[1] == 0x7c) + 1;\n  }" if (parenthesized_expression "(uVar14 == 0x3d)" ( (binary_expression "uVar14 == 0x3d" identifier == number_literal) )) (compound_statement "{\n    if (pbVar5[1] != 0x3d) goto LAB_00023277;\n    iVar20 = 0x15;\n    local_64 = 2;\n  }" { (if_statement "if (pbVar5[1] != 0x3d) goto LAB_00023277;" if (parenthesized_expression "(pbVar5[1] != 0x3d)" ( (binary_expression "pbVar5[1] != 0x3d" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00023277;" goto statement_identifier ;)) (expression_statement "iVar20 = 0x15;" (assignment_expression "iVar20 = 0x15" identifier = number_literal) ;) (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) }) (else_clause "else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar5[1] - 0x3c) < 3) {\n      local_64 = 2;\n      iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    iVar20 = 0x17;\n    local_64 = 1;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar5[1] != 0x3d) {\n      iVar16 = 0xe;\n      bVar22 = pbVar5[1] == 0x3e;\n      iVar20 = 0x1a;\n      goto LAB_00023175;\n    }\n    iVar20 = 0x19;\n    local_64 = 2;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    iVar20 = 0xf;\n    if (pbVar5[1] == 0x7c) {\n      iVar20 = 0x1c;\n    }\n    local_64 = (pbVar5[1] == 0x7c) + 1;\n  }" else (if_statement "if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar5[1] - 0x3c) < 3) {\n      local_64 = 2;\n      iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    iVar20 = 0x17;\n    local_64 = 1;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar5[1] != 0x3d) {\n      iVar16 = 0xe;\n      bVar22 = pbVar5[1] == 0x3e;\n      iVar20 = 0x1a;\n      goto LAB_00023175;\n    }\n    iVar20 = 0x19;\n    local_64 = 2;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    iVar20 = 0xf;\n    if (pbVar5[1] == 0x7c) {\n      iVar20 = 0x1c;\n    }\n    local_64 = (pbVar5[1] == 0x7c) + 1;\n  }" if (parenthesized_expression "(uVar14 < 0x3e)" ( (binary_expression "uVar14 < 0x3e" identifier < number_literal) )) (compound_statement "{\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar5[1] - 0x3c) < 3) {\n      local_64 = 2;\n      iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    iVar20 = 0x17;\n    local_64 = 1;\n  }" { (if_statement "if (uVar14 != 0x3c) goto LAB_00023af0;" if (parenthesized_expression "(uVar14 != 0x3c)" ( (binary_expression "uVar14 != 0x3c" identifier != number_literal) )) (goto_statement "goto LAB_00023af0;" goto statement_identifier ;)) (if_statement "if ((byte)(pbVar5[1] - 0x3c) < 3) {\n      local_64 = 2;\n      iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }" if (parenthesized_expression "((byte)(pbVar5[1] - 0x3c) < 3)" ( (binary_expression "(byte)(pbVar5[1] - 0x3c) < 3" (call_expression "(byte)(pbVar5[1] - 0x3c)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pbVar5[1] - 0x3c)" ( (binary_expression "pbVar5[1] - 0x3c" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) - number_literal) ))) < number_literal) )) (compound_statement "{\n      local_64 = 2;\n      iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }" { (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4);" (assignment_expression "iVar20 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4)" * (cast_expression "(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4)" ( (binary_expression "unaff_EDI + 0x2f41d + (uint)(byte)(pbVar5[1] - 0x3c) * 4" (binary_expression "unaff_EDI + 0x2f41d" identifier + number_literal) + (binary_expression "(uint)(byte)(pbVar5[1] - 0x3c) * 4" (call_expression "(uint)(byte)(pbVar5[1] - 0x3c)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(pbVar5[1] - 0x3c)" ( (binary_expression "pbVar5[1] - 0x3c" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) - number_literal) ))) * number_literal)) ))))) ;) (goto_statement "goto LAB_00023b03;" goto statement_identifier ;) })) (expression_statement "iVar20 = 0x17;" (assignment_expression "iVar20 = 0x17" identifier = number_literal) ;) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) }) (else_clause "else if (uVar14 == 0x3e) {\n    if (pbVar5[1] != 0x3d) {\n      iVar16 = 0xe;\n      bVar22 = pbVar5[1] == 0x3e;\n      iVar20 = 0x1a;\n      goto LAB_00023175;\n    }\n    iVar20 = 0x19;\n    local_64 = 2;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    iVar20 = 0xf;\n    if (pbVar5[1] == 0x7c) {\n      iVar20 = 0x1c;\n    }\n    local_64 = (pbVar5[1] == 0x7c) + 1;\n  }" else (if_statement "if (uVar14 == 0x3e) {\n    if (pbVar5[1] != 0x3d) {\n      iVar16 = 0xe;\n      bVar22 = pbVar5[1] == 0x3e;\n      iVar20 = 0x1a;\n      goto LAB_00023175;\n    }\n    iVar20 = 0x19;\n    local_64 = 2;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    iVar20 = 0xf;\n    if (pbVar5[1] == 0x7c) {\n      iVar20 = 0x1c;\n    }\n    local_64 = (pbVar5[1] == 0x7c) + 1;\n  }" if (parenthesized_expression "(uVar14 == 0x3e)" ( (binary_expression "uVar14 == 0x3e" identifier == number_literal) )) (compound_statement "{\n    if (pbVar5[1] != 0x3d) {\n      iVar16 = 0xe;\n      bVar22 = pbVar5[1] == 0x3e;\n      iVar20 = 0x1a;\n      goto LAB_00023175;\n    }\n    iVar20 = 0x19;\n    local_64 = 2;\n  }" { (if_statement "if (pbVar5[1] != 0x3d) {\n      iVar16 = 0xe;\n      bVar22 = pbVar5[1] == 0x3e;\n      iVar20 = 0x1a;\n      goto LAB_00023175;\n    }" if (parenthesized_expression "(pbVar5[1] != 0x3d)" ( (binary_expression "pbVar5[1] != 0x3d" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      iVar16 = 0xe;\n      bVar22 = pbVar5[1] == 0x3e;\n      iVar20 = 0x1a;\n      goto LAB_00023175;\n    }" { (expression_statement "iVar16 = 0xe;" (assignment_expression "iVar16 = 0xe" identifier = number_literal) ;) (expression_statement "bVar22 = pbVar5[1] == 0x3e;" (assignment_expression "bVar22 = pbVar5[1] == 0x3e" identifier = (binary_expression "pbVar5[1] == 0x3e" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) == number_literal)) ;) (expression_statement "iVar20 = 0x1a;" (assignment_expression "iVar20 = 0x1a" identifier = number_literal) ;) (goto_statement "goto LAB_00023175;" goto statement_identifier ;) })) (expression_statement "iVar20 = 0x19;" (assignment_expression "iVar20 = 0x19" identifier = number_literal) ;) (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) }) (else_clause "else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    iVar20 = 0xf;\n    if (pbVar5[1] == 0x7c) {\n      iVar20 = 0x1c;\n    }\n    local_64 = (pbVar5[1] == 0x7c) + 1;\n  }" else (compound_statement "{\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    iVar20 = 0xf;\n    if (pbVar5[1] == 0x7c) {\n      iVar20 = 0x1c;\n    }\n    local_64 = (pbVar5[1] == 0x7c) + 1;\n  }" { (if_statement "if (uVar14 != 0x7c) goto LAB_00023af0;" if (parenthesized_expression "(uVar14 != 0x7c)" ( (binary_expression "uVar14 != 0x7c" identifier != number_literal) )) (goto_statement "goto LAB_00023af0;" goto statement_identifier ;)) (expression_statement "iVar20 = 0xf;" (assignment_expression "iVar20 = 0xf" identifier = number_literal) ;) (if_statement "if (pbVar5[1] == 0x7c) {\n      iVar20 = 0x1c;\n    }" if (parenthesized_expression "(pbVar5[1] == 0x7c)" ( (binary_expression "pbVar5[1] == 0x7c" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      iVar20 = 0x1c;\n    }" { (expression_statement "iVar20 = 0x1c;" (assignment_expression "iVar20 = 0x1c" identifier = number_literal) ;) })) (expression_statement "local_64 = (pbVar5[1] == 0x7c) + 1;" (assignment_expression "local_64 = (pbVar5[1] == 0x7c) + 1" identifier = (binary_expression "(pbVar5[1] == 0x7c) + 1" (parenthesized_expression "(pbVar5[1] == 0x7c)" ( (binary_expression "pbVar5[1] == 0x7c" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) == number_literal) )) + number_literal)) ;) }))))))))))) (expression_statement "iVar16 = *(int *)(unaff_EDI + 0x4b1c1);" (assignment_expression "iVar16 = *(int *)(unaff_EDI + 0x4b1c1)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" * (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b1c1)" ( (binary_expression "unaff_EDI + 0x4b1c1" identifier + number_literal) ))))) ;) (expression_statement "cVar13 = *(char *)(unaff_EDI + 0x4b459 + iVar20);" (assignment_expression "cVar13 = *(char *)(unaff_EDI + 0x4b459 + iVar20)" identifier = (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + iVar20)" * (cast_expression "(char *)(unaff_EDI + 0x4b459 + iVar20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b459 + iVar20)" ( (binary_expression "unaff_EDI + 0x4b459 + iVar20" (binary_expression "unaff_EDI + 0x4b459" identifier + number_literal) + identifier) ))))) ;) (if_statement "if ((char)rankarg < cVar13) {\n    do {\n      *piVar1 = (int)(pbVar5 + local_64);\n      right.X_md = 0;\n      paVar6 = expr((int)cVar13,&right,mode);\n      if (right._16_1_ == '\x01') {\n        pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2edd2,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n      }\n      pbVar5 = (byte *)*piVar1;\n      bVar4 = *pbVar5;\n      uVar14 = (uint)bVar4;\n      if (bVar4 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x6fd,(char *)(unaff_EDI + 0x2f43d));\n      }\n      pbVar15 = pbVar5;\n      if (iVar20 == 0x1d) {\n        if (bVar4 == 0x5d) {\n          pbVar15 = pbVar5 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar5[1];\n          if (pbVar5[1] == 0x20) {\n            pbVar15 = pbVar5 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar5[2];\n          }\n        }\n        else {\n          as_bad((char *)(unaff_EDI + 0x2edf0));\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar22 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar22 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar22 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((iVar20 != 0x1d) && (bVar22)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + iVar20) < *(char *)(unaff_EDI + 0x4b459 + local_78))) {\n                    /* WARNING: Subroutine does not return */\n          as_abort((char *)(unaff_EDI + 0x2ed1d),0x70d,(char *)(unaff_EDI + 0x2f43d));\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (iVar20 < 10) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x70e,(char *)(unaff_EDI + 0x2f43d));\n      }\n      if (0x1d < iVar20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x710,(char *)(unaff_EDI + 0x2f43d));\n      }\n      if (resultP->field_0x10 == '\x06') {\n        if (-*(int *)((int)&resultP->X_add_number + 4) <\n            (int)(uint)((int)resultP->X_add_number != 0)) {\n          iVar9 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar9 = unaff_EDI + 0x2efb9;\n        }\n        pcVar10 = (char *)dcgettext(0,iVar9,5);\n        as_warn(pcVar10);\n        resultP->field_0x10 = 2;\n        *(undefined4 *)&resultP->X_add_number = 0;\n        *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n        resultP->X_add_symbol = (symbolS *)0x0;\n        resultP->X_op_symbol = (symbolS *)0x0;\n      }\n      local_84._0_1_ = (undefined1)iVar20;\n      paVar3 = paVar6;\n      if (right._16_1_ == '\x06') {\n        if ((int)-right.X_add_number._4_4_ < (int)(uint)((uint)right.X_add_number != 0)) {\n          puVar8 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar8 = &UNK_0002f015 + unaff_EDI;\n        }\n        pcVar10 = (char *)dcgettext(0,puVar8,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n        if (iVar20 == 0x13) {\n          bVar4 = (byte)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1;\nLAB_000237b4:\n          resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        }\n        else {\n          if (iVar20 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n          *(uint *)((int)&resultP->X_add_number + 4) =\n               (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n          bVar4 = resultP->field_0x11;\n          bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n          if (uVar14 < right.X_add_number._4_4_ ||\n              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n            resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        paVar3 = local_70;\n        if (paVar6 != local_70) {\nLAB_00023093:\n          iVar9 = iVar16;\n          if ((local_70 == (segT)(iVar16 + 0xc0)) || (paVar6 == (segT)(iVar16 + 0xc0)))\n          goto LAB_00023258;\n          paVar2 = *(segT *)((int)&UINT_00054838 + unaff_EDI + 1);\n          paVar3 = local_70;\n          if (((paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))) &&\n             (paVar3 = local_70, iVar20 != 0x14)) {\n            pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5);\n            as_bad(pcVar10);\n          }\n        }\n      }\n      else if (iVar20 == 0x13) {\n        if (right._16_1_ == '\x02') {\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar4 = bVar4 ^ 1;\nLAB_00023823:\n          resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = resultP->field_0x10;\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        bVar4 = resultP->field_0x11;\n        resultP->field_0x10 = right._16_1_;\n        resultP->X_add_symbol = right.X_add_symbol;\n        resultP->X_op_symbol = right.X_op_symbol;\n        uVar19 = (uint)resultP->X_add_number;\n        uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number);\n        *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n        bVar12 = (bVar4 ^ right._17_1_) >> 1 & 1;\n        if (uVar17 < uVar14 || uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19))\n        {\n          resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd;\n        }\n        else {\n          resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;\n        }\n      }\n      else {\n        if (iVar20 == 0x14) {\n          if (right._16_1_ == '\x03') {\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (right._16_1_ == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar19 = right.X_add_number._4_4_;\n        uVar14 = (uint)right.X_add_number;\n        cVar13 = resultP->field_0x10;\n        if (cVar13 == '\x02') {\n          if (right._16_1_ == '\x02') {\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }\nLAB_0002303c:\n          psVar7 = make_expr_symbol(resultP);\n          resultP->X_add_symbol = psVar7;\n          psVar7 = make_expr_symbol(&right);\n          resultP->X_op_symbol = psVar7;\n          bVar4 = resultP->field_0x11;\n          resultP->field_0x10 = (undefined1)local_84;\n          *(undefined4 *)&resultP->X_add_number = 0;\n          *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n          resultP->field_0x11 = bVar4 & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;\n        if (1 < iVar20 - 0x13U) {\n          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        resultP->field_0x10 = (undefined1)local_84;\n        resultP->X_op_symbol = right.X_add_symbol;\n        if (iVar20 == 0x13) {\n          uVar14 = (uint)resultP->X_add_number;\n          uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        uVar19 = (uint)resultP->X_add_number;\n        *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) =\n             (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n        bVar4 = (byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1;\n        if (uVar14 < right.X_add_number._4_4_ ||\n            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n          bVar4 = bVar4 ^ 1;\n        }\n        resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        if (paVar6 != local_70) goto LAB_00023093;\n        iVar9 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == (segT)(iVar9 + 0x180)) {\nLAB_00023a77:\n          paVar3 = (segT)(iVar9 + 0x180);\n          goto joined_r0x00023268;\n        }\n        if (local_70 != (segT)(iVar9 + 0xc0)) {\n          paVar3 = local_70;\n          if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))\n          goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        paVar3 = (segT)(iVar9 + 0xc0);\n      }\njoined_r0x00023268:\n      local_70 = paVar3;\n      if ((local_78 == 0) ||\n         (cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78), cVar13 <= (char)rankarg)) break;\n      pbVar5 = (byte *)*piVar1;\n      iVar20 = local_78;\n    } while( true );\n  }" if (parenthesized_expression "((char)rankarg < cVar13)" ( (binary_expression "(char)rankarg < cVar13" (cast_expression "(char)rankarg" ( (type_descriptor "char" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n    do {\n      *piVar1 = (int)(pbVar5 + local_64);\n      right.X_md = 0;\n      paVar6 = expr((int)cVar13,&right,mode);\n      if (right._16_1_ == '\x01') {\n        pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2edd2,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n      }\n      pbVar5 = (byte *)*piVar1;\n      bVar4 = *pbVar5;\n      uVar14 = (uint)bVar4;\n      if (bVar4 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x6fd,(char *)(unaff_EDI + 0x2f43d));\n      }\n      pbVar15 = pbVar5;\n      if (iVar20 == 0x1d) {\n        if (bVar4 == 0x5d) {\n          pbVar15 = pbVar5 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar5[1];\n          if (pbVar5[1] == 0x20) {\n            pbVar15 = pbVar5 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar5[2];\n          }\n        }\n        else {\n          as_bad((char *)(unaff_EDI + 0x2edf0));\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar22 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar22 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar22 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((iVar20 != 0x1d) && (bVar22)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + iVar20) < *(char *)(unaff_EDI + 0x4b459 + local_78))) {\n                    /* WARNING: Subroutine does not return */\n          as_abort((char *)(unaff_EDI + 0x2ed1d),0x70d,(char *)(unaff_EDI + 0x2f43d));\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (iVar20 < 10) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x70e,(char *)(unaff_EDI + 0x2f43d));\n      }\n      if (0x1d < iVar20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x710,(char *)(unaff_EDI + 0x2f43d));\n      }\n      if (resultP->field_0x10 == '\x06') {\n        if (-*(int *)((int)&resultP->X_add_number + 4) <\n            (int)(uint)((int)resultP->X_add_number != 0)) {\n          iVar9 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar9 = unaff_EDI + 0x2efb9;\n        }\n        pcVar10 = (char *)dcgettext(0,iVar9,5);\n        as_warn(pcVar10);\n        resultP->field_0x10 = 2;\n        *(undefined4 *)&resultP->X_add_number = 0;\n        *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n        resultP->X_add_symbol = (symbolS *)0x0;\n        resultP->X_op_symbol = (symbolS *)0x0;\n      }\n      local_84._0_1_ = (undefined1)iVar20;\n      paVar3 = paVar6;\n      if (right._16_1_ == '\x06') {\n        if ((int)-right.X_add_number._4_4_ < (int)(uint)((uint)right.X_add_number != 0)) {\n          puVar8 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar8 = &UNK_0002f015 + unaff_EDI;\n        }\n        pcVar10 = (char *)dcgettext(0,puVar8,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n        if (iVar20 == 0x13) {\n          bVar4 = (byte)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1;\nLAB_000237b4:\n          resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        }\n        else {\n          if (iVar20 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n          *(uint *)((int)&resultP->X_add_number + 4) =\n               (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n          bVar4 = resultP->field_0x11;\n          bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n          if (uVar14 < right.X_add_number._4_4_ ||\n              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n            resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        paVar3 = local_70;\n        if (paVar6 != local_70) {\nLAB_00023093:\n          iVar9 = iVar16;\n          if ((local_70 == (segT)(iVar16 + 0xc0)) || (paVar6 == (segT)(iVar16 + 0xc0)))\n          goto LAB_00023258;\n          paVar2 = *(segT *)((int)&UINT_00054838 + unaff_EDI + 1);\n          paVar3 = local_70;\n          if (((paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))) &&\n             (paVar3 = local_70, iVar20 != 0x14)) {\n            pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5);\n            as_bad(pcVar10);\n          }\n        }\n      }\n      else if (iVar20 == 0x13) {\n        if (right._16_1_ == '\x02') {\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar4 = bVar4 ^ 1;\nLAB_00023823:\n          resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = resultP->field_0x10;\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        bVar4 = resultP->field_0x11;\n        resultP->field_0x10 = right._16_1_;\n        resultP->X_add_symbol = right.X_add_symbol;\n        resultP->X_op_symbol = right.X_op_symbol;\n        uVar19 = (uint)resultP->X_add_number;\n        uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number);\n        *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n        bVar12 = (bVar4 ^ right._17_1_) >> 1 & 1;\n        if (uVar17 < uVar14 || uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19))\n        {\n          resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd;\n        }\n        else {\n          resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;\n        }\n      }\n      else {\n        if (iVar20 == 0x14) {\n          if (right._16_1_ == '\x03') {\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (right._16_1_ == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar19 = right.X_add_number._4_4_;\n        uVar14 = (uint)right.X_add_number;\n        cVar13 = resultP->field_0x10;\n        if (cVar13 == '\x02') {\n          if (right._16_1_ == '\x02') {\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }\nLAB_0002303c:\n          psVar7 = make_expr_symbol(resultP);\n          resultP->X_add_symbol = psVar7;\n          psVar7 = make_expr_symbol(&right);\n          resultP->X_op_symbol = psVar7;\n          bVar4 = resultP->field_0x11;\n          resultP->field_0x10 = (undefined1)local_84;\n          *(undefined4 *)&resultP->X_add_number = 0;\n          *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n          resultP->field_0x11 = bVar4 & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;\n        if (1 < iVar20 - 0x13U) {\n          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        resultP->field_0x10 = (undefined1)local_84;\n        resultP->X_op_symbol = right.X_add_symbol;\n        if (iVar20 == 0x13) {\n          uVar14 = (uint)resultP->X_add_number;\n          uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        uVar19 = (uint)resultP->X_add_number;\n        *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) =\n             (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n        bVar4 = (byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1;\n        if (uVar14 < right.X_add_number._4_4_ ||\n            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n          bVar4 = bVar4 ^ 1;\n        }\n        resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        if (paVar6 != local_70) goto LAB_00023093;\n        iVar9 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == (segT)(iVar9 + 0x180)) {\nLAB_00023a77:\n          paVar3 = (segT)(iVar9 + 0x180);\n          goto joined_r0x00023268;\n        }\n        if (local_70 != (segT)(iVar9 + 0xc0)) {\n          paVar3 = local_70;\n          if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))\n          goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        paVar3 = (segT)(iVar9 + 0xc0);\n      }\njoined_r0x00023268:\n      local_70 = paVar3;\n      if ((local_78 == 0) ||\n         (cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78), cVar13 <= (char)rankarg)) break;\n      pbVar5 = (byte *)*piVar1;\n      iVar20 = local_78;\n    } while( true );\n  }" { (do_statement "do {\n      *piVar1 = (int)(pbVar5 + local_64);\n      right.X_md = 0;\n      paVar6 = expr((int)cVar13,&right,mode);\n      if (right._16_1_ == '\x01') {\n        pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2edd2,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n      }\n      pbVar5 = (byte *)*piVar1;\n      bVar4 = *pbVar5;\n      uVar14 = (uint)bVar4;\n      if (bVar4 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x6fd,(char *)(unaff_EDI + 0x2f43d));\n      }\n      pbVar15 = pbVar5;\n      if (iVar20 == 0x1d) {\n        if (bVar4 == 0x5d) {\n          pbVar15 = pbVar5 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar5[1];\n          if (pbVar5[1] == 0x20) {\n            pbVar15 = pbVar5 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar5[2];\n          }\n        }\n        else {\n          as_bad((char *)(unaff_EDI + 0x2edf0));\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar22 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar22 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar22 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((iVar20 != 0x1d) && (bVar22)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + iVar20) < *(char *)(unaff_EDI + 0x4b459 + local_78))) {\n                    /* WARNING: Subroutine does not return */\n          as_abort((char *)(unaff_EDI + 0x2ed1d),0x70d,(char *)(unaff_EDI + 0x2f43d));\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (iVar20 < 10) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x70e,(char *)(unaff_EDI + 0x2f43d));\n      }\n      if (0x1d < iVar20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x710,(char *)(unaff_EDI + 0x2f43d));\n      }\n      if (resultP->field_0x10 == '\x06') {\n        if (-*(int *)((int)&resultP->X_add_number + 4) <\n            (int)(uint)((int)resultP->X_add_number != 0)) {\n          iVar9 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar9 = unaff_EDI + 0x2efb9;\n        }\n        pcVar10 = (char *)dcgettext(0,iVar9,5);\n        as_warn(pcVar10);\n        resultP->field_0x10 = 2;\n        *(undefined4 *)&resultP->X_add_number = 0;\n        *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n        resultP->X_add_symbol = (symbolS *)0x0;\n        resultP->X_op_symbol = (symbolS *)0x0;\n      }\n      local_84._0_1_ = (undefined1)iVar20;\n      paVar3 = paVar6;\n      if (right._16_1_ == '\x06') {\n        if ((int)-right.X_add_number._4_4_ < (int)(uint)((uint)right.X_add_number != 0)) {\n          puVar8 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar8 = &UNK_0002f015 + unaff_EDI;\n        }\n        pcVar10 = (char *)dcgettext(0,puVar8,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n        if (iVar20 == 0x13) {\n          bVar4 = (byte)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1;\nLAB_000237b4:\n          resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        }\n        else {\n          if (iVar20 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n          *(uint *)((int)&resultP->X_add_number + 4) =\n               (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n          bVar4 = resultP->field_0x11;\n          bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n          if (uVar14 < right.X_add_number._4_4_ ||\n              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n            resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        paVar3 = local_70;\n        if (paVar6 != local_70) {\nLAB_00023093:\n          iVar9 = iVar16;\n          if ((local_70 == (segT)(iVar16 + 0xc0)) || (paVar6 == (segT)(iVar16 + 0xc0)))\n          goto LAB_00023258;\n          paVar2 = *(segT *)((int)&UINT_00054838 + unaff_EDI + 1);\n          paVar3 = local_70;\n          if (((paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))) &&\n             (paVar3 = local_70, iVar20 != 0x14)) {\n            pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5);\n            as_bad(pcVar10);\n          }\n        }\n      }\n      else if (iVar20 == 0x13) {\n        if (right._16_1_ == '\x02') {\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar4 = bVar4 ^ 1;\nLAB_00023823:\n          resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = resultP->field_0x10;\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        bVar4 = resultP->field_0x11;\n        resultP->field_0x10 = right._16_1_;\n        resultP->X_add_symbol = right.X_add_symbol;\n        resultP->X_op_symbol = right.X_op_symbol;\n        uVar19 = (uint)resultP->X_add_number;\n        uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number);\n        *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n        bVar12 = (bVar4 ^ right._17_1_) >> 1 & 1;\n        if (uVar17 < uVar14 || uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19))\n        {\n          resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd;\n        }\n        else {\n          resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;\n        }\n      }\n      else {\n        if (iVar20 == 0x14) {\n          if (right._16_1_ == '\x03') {\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (right._16_1_ == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar19 = right.X_add_number._4_4_;\n        uVar14 = (uint)right.X_add_number;\n        cVar13 = resultP->field_0x10;\n        if (cVar13 == '\x02') {\n          if (right._16_1_ == '\x02') {\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }\nLAB_0002303c:\n          psVar7 = make_expr_symbol(resultP);\n          resultP->X_add_symbol = psVar7;\n          psVar7 = make_expr_symbol(&right);\n          resultP->X_op_symbol = psVar7;\n          bVar4 = resultP->field_0x11;\n          resultP->field_0x10 = (undefined1)local_84;\n          *(undefined4 *)&resultP->X_add_number = 0;\n          *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n          resultP->field_0x11 = bVar4 & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;\n        if (1 < iVar20 - 0x13U) {\n          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        resultP->field_0x10 = (undefined1)local_84;\n        resultP->X_op_symbol = right.X_add_symbol;\n        if (iVar20 == 0x13) {\n          uVar14 = (uint)resultP->X_add_number;\n          uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        uVar19 = (uint)resultP->X_add_number;\n        *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) =\n             (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n        bVar4 = (byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1;\n        if (uVar14 < right.X_add_number._4_4_ ||\n            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n          bVar4 = bVar4 ^ 1;\n        }\n        resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        if (paVar6 != local_70) goto LAB_00023093;\n        iVar9 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == (segT)(iVar9 + 0x180)) {\nLAB_00023a77:\n          paVar3 = (segT)(iVar9 + 0x180);\n          goto joined_r0x00023268;\n        }\n        if (local_70 != (segT)(iVar9 + 0xc0)) {\n          paVar3 = local_70;\n          if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))\n          goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        paVar3 = (segT)(iVar9 + 0xc0);\n      }\njoined_r0x00023268:\n      local_70 = paVar3;\n      if ((local_78 == 0) ||\n         (cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78), cVar13 <= (char)rankarg)) break;\n      pbVar5 = (byte *)*piVar1;\n      iVar20 = local_78;\n    } while( true );" do (compound_statement "{\n      *piVar1 = (int)(pbVar5 + local_64);\n      right.X_md = 0;\n      paVar6 = expr((int)cVar13,&right,mode);\n      if (right._16_1_ == '\x01') {\n        pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2edd2,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n      }\n      pbVar5 = (byte *)*piVar1;\n      bVar4 = *pbVar5;\n      uVar14 = (uint)bVar4;\n      if (bVar4 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x6fd,(char *)(unaff_EDI + 0x2f43d));\n      }\n      pbVar15 = pbVar5;\n      if (iVar20 == 0x1d) {\n        if (bVar4 == 0x5d) {\n          pbVar15 = pbVar5 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar5[1];\n          if (pbVar5[1] == 0x20) {\n            pbVar15 = pbVar5 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar5[2];\n          }\n        }\n        else {\n          as_bad((char *)(unaff_EDI + 0x2edf0));\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar22 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar22 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar22 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((iVar20 != 0x1d) && (bVar22)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + iVar20) < *(char *)(unaff_EDI + 0x4b459 + local_78))) {\n                    /* WARNING: Subroutine does not return */\n          as_abort((char *)(unaff_EDI + 0x2ed1d),0x70d,(char *)(unaff_EDI + 0x2f43d));\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (iVar20 < 10) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x70e,(char *)(unaff_EDI + 0x2f43d));\n      }\n      if (0x1d < iVar20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x710,(char *)(unaff_EDI + 0x2f43d));\n      }\n      if (resultP->field_0x10 == '\x06') {\n        if (-*(int *)((int)&resultP->X_add_number + 4) <\n            (int)(uint)((int)resultP->X_add_number != 0)) {\n          iVar9 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar9 = unaff_EDI + 0x2efb9;\n        }\n        pcVar10 = (char *)dcgettext(0,iVar9,5);\n        as_warn(pcVar10);\n        resultP->field_0x10 = 2;\n        *(undefined4 *)&resultP->X_add_number = 0;\n        *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n        resultP->X_add_symbol = (symbolS *)0x0;\n        resultP->X_op_symbol = (symbolS *)0x0;\n      }\n      local_84._0_1_ = (undefined1)iVar20;\n      paVar3 = paVar6;\n      if (right._16_1_ == '\x06') {\n        if ((int)-right.X_add_number._4_4_ < (int)(uint)((uint)right.X_add_number != 0)) {\n          puVar8 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar8 = &UNK_0002f015 + unaff_EDI;\n        }\n        pcVar10 = (char *)dcgettext(0,puVar8,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n        if (iVar20 == 0x13) {\n          bVar4 = (byte)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1;\nLAB_000237b4:\n          resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        }\n        else {\n          if (iVar20 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n          *(uint *)((int)&resultP->X_add_number + 4) =\n               (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n          bVar4 = resultP->field_0x11;\n          bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n          if (uVar14 < right.X_add_number._4_4_ ||\n              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n            resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        paVar3 = local_70;\n        if (paVar6 != local_70) {\nLAB_00023093:\n          iVar9 = iVar16;\n          if ((local_70 == (segT)(iVar16 + 0xc0)) || (paVar6 == (segT)(iVar16 + 0xc0)))\n          goto LAB_00023258;\n          paVar2 = *(segT *)((int)&UINT_00054838 + unaff_EDI + 1);\n          paVar3 = local_70;\n          if (((paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))) &&\n             (paVar3 = local_70, iVar20 != 0x14)) {\n            pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5);\n            as_bad(pcVar10);\n          }\n        }\n      }\n      else if (iVar20 == 0x13) {\n        if (right._16_1_ == '\x02') {\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar4 = bVar4 ^ 1;\nLAB_00023823:\n          resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = resultP->field_0x10;\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        bVar4 = resultP->field_0x11;\n        resultP->field_0x10 = right._16_1_;\n        resultP->X_add_symbol = right.X_add_symbol;\n        resultP->X_op_symbol = right.X_op_symbol;\n        uVar19 = (uint)resultP->X_add_number;\n        uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number);\n        *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n        bVar12 = (bVar4 ^ right._17_1_) >> 1 & 1;\n        if (uVar17 < uVar14 || uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19))\n        {\n          resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd;\n        }\n        else {\n          resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;\n        }\n      }\n      else {\n        if (iVar20 == 0x14) {\n          if (right._16_1_ == '\x03') {\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (right._16_1_ == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar19 = right.X_add_number._4_4_;\n        uVar14 = (uint)right.X_add_number;\n        cVar13 = resultP->field_0x10;\n        if (cVar13 == '\x02') {\n          if (right._16_1_ == '\x02') {\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }\nLAB_0002303c:\n          psVar7 = make_expr_symbol(resultP);\n          resultP->X_add_symbol = psVar7;\n          psVar7 = make_expr_symbol(&right);\n          resultP->X_op_symbol = psVar7;\n          bVar4 = resultP->field_0x11;\n          resultP->field_0x10 = (undefined1)local_84;\n          *(undefined4 *)&resultP->X_add_number = 0;\n          *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n          resultP->field_0x11 = bVar4 & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;\n        if (1 < iVar20 - 0x13U) {\n          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        resultP->field_0x10 = (undefined1)local_84;\n        resultP->X_op_symbol = right.X_add_symbol;\n        if (iVar20 == 0x13) {\n          uVar14 = (uint)resultP->X_add_number;\n          uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        uVar19 = (uint)resultP->X_add_number;\n        *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) =\n             (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n        bVar4 = (byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1;\n        if (uVar14 < right.X_add_number._4_4_ ||\n            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n          bVar4 = bVar4 ^ 1;\n        }\n        resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        if (paVar6 != local_70) goto LAB_00023093;\n        iVar9 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == (segT)(iVar9 + 0x180)) {\nLAB_00023a77:\n          paVar3 = (segT)(iVar9 + 0x180);\n          goto joined_r0x00023268;\n        }\n        if (local_70 != (segT)(iVar9 + 0xc0)) {\n          paVar3 = local_70;\n          if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))\n          goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        paVar3 = (segT)(iVar9 + 0xc0);\n      }\njoined_r0x00023268:\n      local_70 = paVar3;\n      if ((local_78 == 0) ||\n         (cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78), cVar13 <= (char)rankarg)) break;\n      pbVar5 = (byte *)*piVar1;\n      iVar20 = local_78;\n    }" { (expression_statement "*piVar1 = (int)(pbVar5 + local_64);" (assignment_expression "*piVar1 = (int)(pbVar5 + local_64)" (pointer_expression "*piVar1" * identifier) = (cast_expression "(int)(pbVar5 + local_64)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar5 + local_64)" ( (binary_expression "pbVar5 + local_64" identifier + identifier) )))) ;) (expression_statement "right.X_md = 0;" (assignment_expression "right.X_md = 0" (field_expression "right.X_md" identifier . field_identifier) = number_literal) ;) (expression_statement "paVar6 = expr((int)cVar13,&right,mode);" (assignment_expression "paVar6 = expr((int)cVar13,&right,mode)" identifier = (call_expression "expr((int)cVar13,&right,mode)" identifier (argument_list "((int)cVar13,&right,mode)" ( (cast_expression "(int)cVar13" ( (type_descriptor "int" primitive_type) ) identifier) , (pointer_expression "&right" & identifier) , identifier )))) ;) (if_statement "if (right._16_1_ == '\x01') {\n        pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2edd2,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n      }" if (parenthesized_expression "(right._16_1_ == '\x01')" ( (binary_expression "right._16_1_ == '\x01'" (field_expression "right._16_1_" identifier . field_identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2edd2,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n      }" { (expression_statement "pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2edd2,5);" (assignment_expression "pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2edd2,5)" identifier = (cast_expression "(char *)dcgettext(0,unaff_EDI + 0x2edd2,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,unaff_EDI + 0x2edd2,5)" identifier (argument_list "(0,unaff_EDI + 0x2edd2,5)" ( number_literal , (binary_expression "unaff_EDI + 0x2edd2" identifier + number_literal) , number_literal ))))) ;) (expression_statement "as_warn(pcVar10);" (call_expression "as_warn(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) (expression_statement "right._16_1_ = 2;" (assignment_expression "right._16_1_ = 2" (field_expression "right._16_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "right.X_add_number._0_4_ = 0;" (assignment_expression "right.X_add_number._0_4_ = 0" (field_expression "right.X_add_number._0_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "right.X_add_number._4_4_ = 0;" (assignment_expression "right.X_add_number._4_4_ = 0" (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "right.X_add_symbol = (symbolS *)0x0;" (assignment_expression "right.X_add_symbol = (symbolS *)0x0" (field_expression "right.X_add_symbol" identifier . field_identifier) = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "right.X_op_symbol = (symbolS *)0x0;" (assignment_expression "right.X_op_symbol = (symbolS *)0x0" (field_expression "right.X_op_symbol" identifier . field_identifier) = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pbVar5 = (byte *)*piVar1;" (assignment_expression "pbVar5 = (byte *)*piVar1" identifier = (cast_expression "(byte *)*piVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (expression_statement "bVar4 = *pbVar5;" (assignment_expression "bVar4 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) ;) (expression_statement "uVar14 = (uint)bVar4;" (assignment_expression "uVar14 = (uint)bVar4" identifier = (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar4 == 0x20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x6fd,(char *)(unaff_EDI + 0x2f43d));\n      }" if (parenthesized_expression "(bVar4 == 0x20)" ( (binary_expression "bVar4 == 0x20" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x6fd,(char *)(unaff_EDI + 0x2f43d));\n      }" { comment (expression_statement "as_abort((char *)(unaff_EDI + 0x2ed1d),0x6fd,(char *)(unaff_EDI + 0x2f43d));" (call_expression "as_abort((char *)(unaff_EDI + 0x2ed1d),0x6fd,(char *)(unaff_EDI + 0x2f43d))" identifier (argument_list "((char *)(unaff_EDI + 0x2ed1d),0x6fd,(char *)(unaff_EDI + 0x2f43d))" ( (cast_expression "(char *)(unaff_EDI + 0x2ed1d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2ed1d)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x2f43d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f43d)" ( (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) ))) ))) ;) })) (expression_statement "pbVar15 = pbVar5;" (assignment_expression "pbVar15 = pbVar5" identifier = identifier) ;) (if_statement "if (iVar20 == 0x1d) {\n        if (bVar4 == 0x5d) {\n          pbVar15 = pbVar5 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar5[1];\n          if (pbVar5[1] == 0x20) {\n            pbVar15 = pbVar5 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar5[2];\n          }\n        }\n        else {\n          as_bad((char *)(unaff_EDI + 0x2edf0));\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }" if (parenthesized_expression "(iVar20 == 0x1d)" ( (binary_expression "iVar20 == 0x1d" identifier == number_literal) )) (compound_statement "{\n        if (bVar4 == 0x5d) {\n          pbVar15 = pbVar5 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar5[1];\n          if (pbVar5[1] == 0x20) {\n            pbVar15 = pbVar5 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar5[2];\n          }\n        }\n        else {\n          as_bad((char *)(unaff_EDI + 0x2edf0));\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }" { (if_statement "if (bVar4 == 0x5d) {\n          pbVar15 = pbVar5 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar5[1];\n          if (pbVar5[1] == 0x20) {\n            pbVar15 = pbVar5 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar5[2];\n          }\n        }\n        else {\n          as_bad((char *)(unaff_EDI + 0x2edf0));\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }" if (parenthesized_expression "(bVar4 == 0x5d)" ( (binary_expression "bVar4 == 0x5d" identifier == number_literal) )) (compound_statement "{\n          pbVar15 = pbVar5 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar5[1];\n          if (pbVar5[1] == 0x20) {\n            pbVar15 = pbVar5 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar5[2];\n          }\n        }" { (expression_statement "pbVar15 = pbVar5 + 1;" (assignment_expression "pbVar15 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "*piVar1 = (int)pbVar15;" (assignment_expression "*piVar1 = (int)pbVar15" (pointer_expression "*piVar1" * identifier) = (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar14 = (uint)pbVar5[1];" (assignment_expression "uVar14 = (uint)pbVar5[1]" identifier = (cast_expression "(uint)pbVar5[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar5[1]" identifier [ number_literal ]))) ;) (if_statement "if (pbVar5[1] == 0x20) {\n            pbVar15 = pbVar5 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar5[2];\n          }" if (parenthesized_expression "(pbVar5[1] == 0x20)" ( (binary_expression "pbVar5[1] == 0x20" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            pbVar15 = pbVar5 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar5[2];\n          }" { (expression_statement "pbVar15 = pbVar5 + 2;" (assignment_expression "pbVar15 = pbVar5 + 2" identifier = (binary_expression "pbVar5 + 2" identifier + number_literal)) ;) (expression_statement "*piVar1 = (int)pbVar15;" (assignment_expression "*piVar1 = (int)pbVar15" (pointer_expression "*piVar1" * identifier) = (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar14 = (uint)pbVar5[2];" (assignment_expression "uVar14 = (uint)pbVar5[2]" identifier = (cast_expression "(uint)pbVar5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar5[2]" identifier [ number_literal ]))) ;) })) }) (else_clause "else {\n          as_bad((char *)(unaff_EDI + 0x2edf0));\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }" else (compound_statement "{\n          as_bad((char *)(unaff_EDI + 0x2edf0));\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }" { (expression_statement "as_bad((char *)(unaff_EDI + 0x2edf0));" (call_expression "as_bad((char *)(unaff_EDI + 0x2edf0))" identifier (argument_list "((char *)(unaff_EDI + 0x2edf0))" ( (cast_expression "(char *)(unaff_EDI + 0x2edf0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2edf0)" ( (binary_expression "unaff_EDI + 0x2edf0" identifier + number_literal) ))) ))) ;) (expression_statement "pbVar15 = (byte *)*piVar1;" (assignment_expression "pbVar15 = (byte *)*piVar1" identifier = (cast_expression "(byte *)*piVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (expression_statement "uVar14 = (uint)*pbVar15;" (assignment_expression "uVar14 = (uint)*pbVar15" identifier = (binary_expression "(uint)*pbVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }))) })) (if_statement "if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar22 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar22 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar22 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((iVar20 != 0x1d) && (bVar22)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + iVar20) < *(char *)(unaff_EDI + 0x4b459 + local_78))) {\n                    /* WARNING: Subroutine does not return */\n          as_abort((char *)(unaff_EDI + 0x2ed1d),0x70d,(char *)(unaff_EDI + 0x2f43d));\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14)" * (cast_expression "(char *)(unaff_EDI + 0x4b4f9 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b4f9 + uVar14)" ( (binary_expression "unaff_EDI + 0x4b4f9 + uVar14" (binary_expression "unaff_EDI + 0x4b4f9" identifier + number_literal) + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar22 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar22 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar22 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((iVar20 != 0x1d) && (bVar22)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + iVar20) < *(char *)(unaff_EDI + 0x4b459 + local_78))) {\n                    /* WARNING: Subroutine does not return */\n          as_abort((char *)(unaff_EDI + 0x2ed1d),0x70d,(char *)(unaff_EDI + 0x2f43d));\n        }\n      }" { (if_statement "if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar22 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar22 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar22 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" if (parenthesized_expression "(uVar14 == 0x2d)" ( (binary_expression "uVar14 == 0x2d" identifier == number_literal) )) (compound_statement "{\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar22 = local_78 != 0;\n        }" { (labeled_statement "LAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" statement_identifier : (expression_statement "local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" (assignment_expression "local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f459 + uVar14 * 4)" ( (binary_expression "unaff_EDI + 0x2f459 + uVar14 * 4" (binary_expression "unaff_EDI + 0x2f459" identifier + number_literal) + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;)) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (expression_statement "bVar22 = local_78 != 0;" (assignment_expression "bVar22 = local_78 != 0" identifier = (binary_expression "local_78 != 0" identifier != number_literal)) ;) }) (else_clause "else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar22 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar22 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" else (if_statement "if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar22 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar22 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" if (parenthesized_expression "(uVar14 < 0x2e)" ( (binary_expression "uVar14 < 0x2e" identifier < number_literal) )) (compound_statement "{\n          if (uVar14 == 0x26) {\n            bVar22 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }" { (if_statement "if (uVar14 == 0x26) {\n            bVar22 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }" if (parenthesized_expression "(uVar14 == 0x26)" ( (binary_expression "uVar14 == 0x26" identifier == number_literal) )) (compound_statement "{\n            bVar22 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }" { (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) (expression_statement "local_64 = (pbVar15[1] == 0x26) + 1;" (assignment_expression "local_64 = (pbVar15[1] == 0x26) + 1" identifier = (binary_expression "(pbVar15[1] == 0x26) + 1" (parenthesized_expression "(pbVar15[1] == 0x26)" ( (binary_expression "pbVar15[1] == 0x26" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) == number_literal) )) + number_literal)) ;) (expression_statement "local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;" (assignment_expression "local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12" identifier = (binary_expression "(uint)(pbVar15[1] == 0x26) * 9 + 0x12" (binary_expression "(uint)(pbVar15[1] == 0x26) * 9" (call_expression "(uint)(pbVar15[1] == 0x26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar15[1] == 0x26)" ( (binary_expression "pbVar15[1] == 0x26" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) == number_literal) ))) * number_literal) + number_literal)) ;) }) (else_clause "else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }" else (compound_statement "{\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar4 = pbVar15[1];\n            bVar22 = true;\n            if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }" { (if_statement "if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;" if (parenthesized_expression "((uVar14 == 0x2b) || (uVar14 != 0x21))" ( (binary_expression "(uVar14 == 0x2b) || (uVar14 != 0x21)" (parenthesized_expression "(uVar14 == 0x2b)" ( (binary_expression "uVar14 == 0x2b" identifier == number_literal) )) || (parenthesized_expression "(uVar14 != 0x21)" ( (binary_expression "uVar14 != 0x21" identifier != number_literal) ))) )) (goto_statement "goto LAB_000235f0;" goto statement_identifier ;)) (expression_statement "bVar4 = pbVar15[1];" (assignment_expression "bVar4 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) (if_statement "if (bVar4 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }" if (parenthesized_expression "(bVar4 == 0x21)" ( (binary_expression "bVar4 == 0x21" identifier == number_literal) )) (compound_statement "{\n              local_64 = 2;\n              local_78 = 0x11;\n            }" { (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_78 = 0x11;" (assignment_expression "local_78 = 0x11" identifier = number_literal) ;) }) (else_clause "else {\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }" else (compound_statement "{\n              local_64 = (bVar4 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }" { (expression_statement "local_64 = (bVar4 == 0x3d) + 1;" (assignment_expression "local_64 = (bVar4 == 0x3d) + 1" identifier = (binary_expression "(bVar4 == 0x3d) + 1" (parenthesized_expression "(bVar4 == 0x3d)" ( (binary_expression "bVar4 == 0x3d" identifier == number_literal) )) + number_literal)) ;) (expression_statement "local_78 = 0x10;" (assignment_expression "local_78 = 0x10" identifier = number_literal) ;) (if_statement "if (bVar4 == 0x3d) {\n                local_78 = 0x16;\n              }" if (parenthesized_expression "(bVar4 == 0x3d)" ( (binary_expression "bVar4 == 0x3d" identifier == number_literal) )) (compound_statement "{\n                local_78 = 0x16;\n              }" { (expression_statement "local_78 = 0x16;" (assignment_expression "local_78 = 0x16" identifier = number_literal) ;) })) }))) }))) }) (else_clause "else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar22 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" else (if_statement "if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar22 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" if (parenthesized_expression "(uVar14 == 0x3d)" ( (binary_expression "uVar14 == 0x3d" identifier == number_literal) )) (compound_statement "{\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar22 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }" { (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (if_statement "if (pbVar15[1] != 0x3d) goto LAB_00022fd4;" if (parenthesized_expression "(pbVar15[1] != 0x3d)" ( (binary_expression "pbVar15[1] != 0x3d" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00022fd4;" goto statement_identifier ;)) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_78 = 0x15;" (assignment_expression "local_78 = 0x15" identifier = number_literal) ;) }) (else_clause "else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" else (if_statement "if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" if (parenthesized_expression "(uVar14 < 0x3e)" ( (binary_expression "uVar14 < 0x3e" identifier < number_literal) )) (compound_statement "{\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }" { (if_statement "if (uVar14 != 0x3c) goto LAB_000235f0;" if (parenthesized_expression "(uVar14 != 0x3c)" ( (binary_expression "uVar14 != 0x3c" identifier != number_literal) )) (goto_statement "goto LAB_000235f0;" goto statement_identifier ;)) (if_statement "if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }\n          else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }" if (parenthesized_expression "((byte)(pbVar15[1] - 0x3c) < 3)" ( (binary_expression "(byte)(pbVar15[1] - 0x3c) < 3" (call_expression "(byte)(pbVar15[1] - 0x3c)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pbVar15[1] - 0x3c)" ( (binary_expression "pbVar15[1] - 0x3c" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) - number_literal) ))) < number_literal) )) (compound_statement "{\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar22 = local_78 != 0;\n          }" { (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);" (assignment_expression "local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" * (cast_expression "(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" ( (binary_expression "unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4" (binary_expression "unaff_EDI + 0x2f41d" identifier + number_literal) + (binary_expression "(uint)(byte)(pbVar15[1] - 0x3c) * 4" (call_expression "(uint)(byte)(pbVar15[1] - 0x3c)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(pbVar15[1] - 0x3c)" ( (binary_expression "pbVar15[1] - 0x3c" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) - number_literal) ))) * number_literal)) ))))) ;) (expression_statement "bVar22 = local_78 != 0;" (assignment_expression "bVar22 = local_78 != 0" identifier = (binary_expression "local_78 != 0" identifier != number_literal)) ;) }) (else_clause "else {\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }" else (compound_statement "{\n            bVar22 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }" { (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (expression_statement "local_78 = 0x17;" (assignment_expression "local_78 = 0x17" identifier = number_literal) ;) }))) }) (else_clause "else if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" else (if_statement "if (uVar14 == 0x3e) {\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" if (parenthesized_expression "(uVar14 == 0x3e)" ( (binary_expression "uVar14 == 0x3e" identifier == number_literal) )) (compound_statement "{\n          bVar4 = pbVar15[1];\n          bVar22 = true;\n          if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }" { (expression_statement "bVar4 = pbVar15[1];" (assignment_expression "bVar4 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) (if_statement "if (bVar4 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }" if (parenthesized_expression "(bVar4 == 0x3d)" ( (binary_expression "bVar4 == 0x3d" identifier == number_literal) )) (compound_statement "{\n            local_64 = 2;\n            local_78 = 0x19;\n          }" { (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_78 = 0x19;" (assignment_expression "local_78 = 0x19" identifier = number_literal) ;) }) (else_clause "else {\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }" else (compound_statement "{\n            local_64 = (bVar4 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }" { (expression_statement "local_64 = (bVar4 == 0x3e) + 1;" (assignment_expression "local_64 = (bVar4 == 0x3e) + 1" identifier = (binary_expression "(bVar4 == 0x3e) + 1" (parenthesized_expression "(bVar4 == 0x3e)" ( (binary_expression "bVar4 == 0x3e" identifier == number_literal) )) + number_literal)) ;) (expression_statement "local_78 = 0x1a;" (assignment_expression "local_78 = 0x1a" identifier = number_literal) ;) (if_statement "if (bVar4 == 0x3e) {\n              local_78 = 0xe;\n            }" if (parenthesized_expression "(bVar4 == 0x3e)" ( (binary_expression "bVar4 == 0x3e" identifier == number_literal) )) (compound_statement "{\n              local_78 = 0xe;\n            }" { (expression_statement "local_78 = 0xe;" (assignment_expression "local_78 = 0xe" identifier = number_literal) ;) })) }))) }) (else_clause "else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" else (compound_statement "{\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar22 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" { (if_statement "if (uVar14 != 0x7c) goto LAB_000235f0;" if (parenthesized_expression "(uVar14 != 0x7c)" ( (binary_expression "uVar14 != 0x7c" identifier != number_literal) )) (goto_statement "goto LAB_000235f0;" goto statement_identifier ;)) (expression_statement "bVar22 = true;" (assignment_expression "bVar22 = true" identifier = true) ;) (expression_statement "local_64 = (pbVar15[1] == 0x7c) + 1;" (assignment_expression "local_64 = (pbVar15[1] == 0x7c) + 1" identifier = (binary_expression "(pbVar15[1] == 0x7c) + 1" (parenthesized_expression "(pbVar15[1] == 0x7c)" ( (binary_expression "pbVar15[1] == 0x7c" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) == number_literal) )) + number_literal)) ;) (expression_statement "local_78 = 0xf;" (assignment_expression "local_78 = 0xf" identifier = number_literal) ;) (if_statement "if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }" if (parenthesized_expression "(pbVar15[1] == 0x7c)" ( (binary_expression "pbVar15[1] == 0x7c" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            local_78 = 0x1c;\n          }" { (expression_statement "local_78 = 0x1c;" (assignment_expression "local_78 = 0x1c" identifier = number_literal) ;) })) }))))))))))) (if_statement "if (((iVar20 != 0x1d) && (bVar22)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + iVar20) < *(char *)(unaff_EDI + 0x4b459 + local_78))) {\n                    /* WARNING: Subroutine does not return */\n          as_abort((char *)(unaff_EDI + 0x2ed1d),0x70d,(char *)(unaff_EDI + 0x2f43d));\n        }" if (parenthesized_expression "(((iVar20 != 0x1d) && (bVar22)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + iVar20) < *(char *)(unaff_EDI + 0x4b459 + local_78)))" ( (binary_expression "((iVar20 != 0x1d) && (bVar22)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + iVar20) < *(char *)(unaff_EDI + 0x4b459 + local_78))" (parenthesized_expression "((iVar20 != 0x1d) && (bVar22))" ( (binary_expression "(iVar20 != 0x1d) && (bVar22)" (parenthesized_expression "(iVar20 != 0x1d)" ( (binary_expression "iVar20 != 0x1d" identifier != number_literal) )) && (parenthesized_expression "(bVar22)" ( identifier ))) )) && (parenthesized_expression "(*(char *)(unaff_EDI + 0x4b459 + iVar20) < *(char *)(unaff_EDI + 0x4b459 + local_78))" ( (binary_expression "*(char *)(unaff_EDI + 0x4b459 + iVar20) < *(char *)(unaff_EDI + 0x4b459 + local_78)" (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + iVar20)" * (cast_expression "(char *)(unaff_EDI + 0x4b459 + iVar20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b459 + iVar20)" ( (binary_expression "unaff_EDI + 0x4b459 + iVar20" (binary_expression "unaff_EDI + 0x4b459" identifier + number_literal) + identifier) )))) < (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + local_78)" * (cast_expression "(char *)(unaff_EDI + 0x4b459 + local_78)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b459 + local_78)" ( (binary_expression "unaff_EDI + 0x4b459 + local_78" (binary_expression "unaff_EDI + 0x4b459" identifier + number_literal) + identifier) ))))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          as_abort((char *)(unaff_EDI + 0x2ed1d),0x70d,(char *)(unaff_EDI + 0x2f43d));\n        }" { comment (expression_statement "as_abort((char *)(unaff_EDI + 0x2ed1d),0x70d,(char *)(unaff_EDI + 0x2f43d));" (call_expression "as_abort((char *)(unaff_EDI + 0x2ed1d),0x70d,(char *)(unaff_EDI + 0x2f43d))" identifier (argument_list "((char *)(unaff_EDI + 0x2ed1d),0x70d,(char *)(unaff_EDI + 0x2f43d))" ( (cast_expression "(char *)(unaff_EDI + 0x2ed1d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2ed1d)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x2f43d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f43d)" ( (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) ))) ))) ;) })) }) (else_clause "else {\n        local_64 = 1;\n        local_78 = 0;\n      }" else (compound_statement "{\n        local_64 = 1;\n        local_78 = 0;\n      }" { (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00022fd4:\n      if (iVar20 < 10) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x70e,(char *)(unaff_EDI + 0x2f43d));\n      }" statement_identifier : (if_statement "if (iVar20 < 10) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x70e,(char *)(unaff_EDI + 0x2f43d));\n      }" if (parenthesized_expression "(iVar20 < 10)" ( (binary_expression "iVar20 < 10" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x70e,(char *)(unaff_EDI + 0x2f43d));\n      }" { comment (expression_statement "as_abort((char *)(unaff_EDI + 0x2ed1d),0x70e,(char *)(unaff_EDI + 0x2f43d));" (call_expression "as_abort((char *)(unaff_EDI + 0x2ed1d),0x70e,(char *)(unaff_EDI + 0x2f43d))" identifier (argument_list "((char *)(unaff_EDI + 0x2ed1d),0x70e,(char *)(unaff_EDI + 0x2f43d))" ( (cast_expression "(char *)(unaff_EDI + 0x2ed1d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2ed1d)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x2f43d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f43d)" ( (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) ))) ))) ;) }))) (if_statement "if (0x1d < iVar20) {\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x710,(char *)(unaff_EDI + 0x2f43d));\n      }" if (parenthesized_expression "(0x1d < iVar20)" ( (binary_expression "0x1d < iVar20" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        as_abort((char *)(unaff_EDI + 0x2ed1d),0x710,(char *)(unaff_EDI + 0x2f43d));\n      }" { comment (expression_statement "as_abort((char *)(unaff_EDI + 0x2ed1d),0x710,(char *)(unaff_EDI + 0x2f43d));" (call_expression "as_abort((char *)(unaff_EDI + 0x2ed1d),0x710,(char *)(unaff_EDI + 0x2f43d))" identifier (argument_list "((char *)(unaff_EDI + 0x2ed1d),0x710,(char *)(unaff_EDI + 0x2f43d))" ( (cast_expression "(char *)(unaff_EDI + 0x2ed1d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2ed1d)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x2f43d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f43d)" ( (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) ))) ))) ;) })) (if_statement "if (resultP->field_0x10 == '\x06') {\n        if (-*(int *)((int)&resultP->X_add_number + 4) <\n            (int)(uint)((int)resultP->X_add_number != 0)) {\n          iVar9 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar9 = unaff_EDI + 0x2efb9;\n        }\n        pcVar10 = (char *)dcgettext(0,iVar9,5);\n        as_warn(pcVar10);\n        resultP->field_0x10 = 2;\n        *(undefined4 *)&resultP->X_add_number = 0;\n        *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n        resultP->X_add_symbol = (symbolS *)0x0;\n        resultP->X_op_symbol = (symbolS *)0x0;\n      }" if (parenthesized_expression "(resultP->field_0x10 == '\x06')" ( (binary_expression "resultP->field_0x10 == '\x06'" (field_expression "resultP->field_0x10" identifier -> field_identifier) == (char_literal "'\x06'" ' escape_sequence ')) )) (compound_statement "{\n        if (-*(int *)((int)&resultP->X_add_number + 4) <\n            (int)(uint)((int)resultP->X_add_number != 0)) {\n          iVar9 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar9 = unaff_EDI + 0x2efb9;\n        }\n        pcVar10 = (char *)dcgettext(0,iVar9,5);\n        as_warn(pcVar10);\n        resultP->field_0x10 = 2;\n        *(undefined4 *)&resultP->X_add_number = 0;\n        *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n        resultP->X_add_symbol = (symbolS *)0x0;\n        resultP->X_op_symbol = (symbolS *)0x0;\n      }" { (if_statement "if (-*(int *)((int)&resultP->X_add_number + 4) <\n            (int)(uint)((int)resultP->X_add_number != 0)) {\n          iVar9 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar9 = unaff_EDI + 0x2efb9;\n        }" if (parenthesized_expression "(-*(int *)((int)&resultP->X_add_number + 4) <\n            (int)(uint)((int)resultP->X_add_number != 0))" ( (binary_expression "-*(int *)((int)&resultP->X_add_number + 4) <\n            (int)(uint)((int)resultP->X_add_number != 0)" (unary_expression "-*(int *)((int)&resultP->X_add_number + 4)" - (pointer_expression "*(int *)((int)&resultP->X_add_number + 4)" * (cast_expression "(int *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) ))))) < (cast_expression "(int)(uint)((int)resultP->X_add_number != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)((int)resultP->X_add_number != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)resultP->X_add_number != 0)" ( (binary_expression "(int)resultP->X_add_number != 0" (cast_expression "(int)resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (field_expression "resultP->X_add_number" identifier -> field_identifier)) != number_literal) ))))) )) (compound_statement "{\n          iVar9 = unaff_EDI + 0x2ef8d;\n        }" { (expression_statement "iVar9 = unaff_EDI + 0x2ef8d;" (assignment_expression "iVar9 = unaff_EDI + 0x2ef8d" identifier = (binary_expression "unaff_EDI + 0x2ef8d" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar9 = unaff_EDI + 0x2efb9;\n        }" else (compound_statement "{\n          iVar9 = unaff_EDI + 0x2efb9;\n        }" { (expression_statement "iVar9 = unaff_EDI + 0x2efb9;" (assignment_expression "iVar9 = unaff_EDI + 0x2efb9" identifier = (binary_expression "unaff_EDI + 0x2efb9" identifier + number_literal)) ;) }))) (expression_statement "pcVar10 = (char *)dcgettext(0,iVar9,5);" (assignment_expression "pcVar10 = (char *)dcgettext(0,iVar9,5)" identifier = (cast_expression "(char *)dcgettext(0,iVar9,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,iVar9,5)" identifier (argument_list "(0,iVar9,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "as_warn(pcVar10);" (call_expression "as_warn(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) (expression_statement "resultP->field_0x10 = 2;" (assignment_expression "resultP->field_0x10 = 2" (field_expression "resultP->field_0x10" identifier -> field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&resultP->X_add_number = 0;" (assignment_expression "*(undefined4 *)&resultP->X_add_number = 0" (pointer_expression "*(undefined4 *)&resultP->X_add_number" * (cast_expression "(undefined4 *)&resultP->X_add_number" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&resultP->X_add_number + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&resultP->X_add_number + 4) = 0" (pointer_expression "*(undefined4 *)((int)&resultP->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "resultP->X_add_symbol = (symbolS *)0x0;" (assignment_expression "resultP->X_add_symbol = (symbolS *)0x0" (field_expression "resultP->X_add_symbol" identifier -> field_identifier) = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "resultP->X_op_symbol = (symbolS *)0x0;" (assignment_expression "resultP->X_op_symbol = (symbolS *)0x0" (field_expression "resultP->X_op_symbol" identifier -> field_identifier) = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "local_84._0_1_ = (undefined1)iVar20;" (assignment_expression "local_84._0_1_ = (undefined1)iVar20" (field_expression "local_84._0_1_" identifier . field_identifier) = (cast_expression "(undefined1)iVar20" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "paVar3 = paVar6;" (assignment_expression "paVar3 = paVar6" identifier = identifier) ;) (if_statement "if (right._16_1_ == '\x06') {\n        if ((int)-right.X_add_number._4_4_ < (int)(uint)((uint)right.X_add_number != 0)) {\n          puVar8 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar8 = &UNK_0002f015 + unaff_EDI;\n        }\n        pcVar10 = (char *)dcgettext(0,puVar8,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n        if (iVar20 == 0x13) {\n          bVar4 = (byte)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1;\nLAB_000237b4:\n          resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        }\n        else {\n          if (iVar20 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n          *(uint *)((int)&resultP->X_add_number + 4) =\n               (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n          bVar4 = resultP->field_0x11;\n          bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n          if (uVar14 < right.X_add_number._4_4_ ||\n              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n            resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        paVar3 = local_70;\n        if (paVar6 != local_70) {\nLAB_00023093:\n          iVar9 = iVar16;\n          if ((local_70 == (segT)(iVar16 + 0xc0)) || (paVar6 == (segT)(iVar16 + 0xc0)))\n          goto LAB_00023258;\n          paVar2 = *(segT *)((int)&UINT_00054838 + unaff_EDI + 1);\n          paVar3 = local_70;\n          if (((paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))) &&\n             (paVar3 = local_70, iVar20 != 0x14)) {\n            pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5);\n            as_bad(pcVar10);\n          }\n        }\n      }\n      else if (iVar20 == 0x13) {\n        if (right._16_1_ == '\x02') {\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar4 = bVar4 ^ 1;\nLAB_00023823:\n          resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = resultP->field_0x10;\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        bVar4 = resultP->field_0x11;\n        resultP->field_0x10 = right._16_1_;\n        resultP->X_add_symbol = right.X_add_symbol;\n        resultP->X_op_symbol = right.X_op_symbol;\n        uVar19 = (uint)resultP->X_add_number;\n        uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number);\n        *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n        bVar12 = (bVar4 ^ right._17_1_) >> 1 & 1;\n        if (uVar17 < uVar14 || uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19))\n        {\n          resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd;\n        }\n        else {\n          resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;\n        }\n      }\n      else {\n        if (iVar20 == 0x14) {\n          if (right._16_1_ == '\x03') {\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (right._16_1_ == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar19 = right.X_add_number._4_4_;\n        uVar14 = (uint)right.X_add_number;\n        cVar13 = resultP->field_0x10;\n        if (cVar13 == '\x02') {\n          if (right._16_1_ == '\x02') {\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }\nLAB_0002303c:\n          psVar7 = make_expr_symbol(resultP);\n          resultP->X_add_symbol = psVar7;\n          psVar7 = make_expr_symbol(&right);\n          resultP->X_op_symbol = psVar7;\n          bVar4 = resultP->field_0x11;\n          resultP->field_0x10 = (undefined1)local_84;\n          *(undefined4 *)&resultP->X_add_number = 0;\n          *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n          resultP->field_0x11 = bVar4 & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;\n        if (1 < iVar20 - 0x13U) {\n          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        resultP->field_0x10 = (undefined1)local_84;\n        resultP->X_op_symbol = right.X_add_symbol;\n        if (iVar20 == 0x13) {\n          uVar14 = (uint)resultP->X_add_number;\n          uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        uVar19 = (uint)resultP->X_add_number;\n        *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) =\n             (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n        bVar4 = (byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1;\n        if (uVar14 < right.X_add_number._4_4_ ||\n            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n          bVar4 = bVar4 ^ 1;\n        }\n        resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        if (paVar6 != local_70) goto LAB_00023093;\n        iVar9 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == (segT)(iVar9 + 0x180)) {\nLAB_00023a77:\n          paVar3 = (segT)(iVar9 + 0x180);\n          goto joined_r0x00023268;\n        }\n        if (local_70 != (segT)(iVar9 + 0xc0)) {\n          paVar3 = local_70;\n          if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))\n          goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        paVar3 = (segT)(iVar9 + 0xc0);\n      }" if (parenthesized_expression "(right._16_1_ == '\x06')" ( (binary_expression "right._16_1_ == '\x06'" (field_expression "right._16_1_" identifier . field_identifier) == (char_literal "'\x06'" ' escape_sequence ')) )) (compound_statement "{\n        if ((int)-right.X_add_number._4_4_ < (int)(uint)((uint)right.X_add_number != 0)) {\n          puVar8 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar8 = &UNK_0002f015 + unaff_EDI;\n        }\n        pcVar10 = (char *)dcgettext(0,puVar8,5);\n        as_warn(pcVar10);\n        right._16_1_ = 2;\n        right.X_add_number._0_4_ = 0;\n        right.X_add_number._4_4_ = 0;\n        right.X_add_symbol = (symbolS *)0x0;\n        right.X_op_symbol = (symbolS *)0x0;\n        if (iVar20 == 0x13) {\n          bVar4 = (byte)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1;\nLAB_000237b4:\n          resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        }\n        else {\n          if (iVar20 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n          *(uint *)((int)&resultP->X_add_number + 4) =\n               (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n          bVar4 = resultP->field_0x11;\n          bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n          if (uVar14 < right.X_add_number._4_4_ ||\n              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n            resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        paVar3 = local_70;\n        if (paVar6 != local_70) {\nLAB_00023093:\n          iVar9 = iVar16;\n          if ((local_70 == (segT)(iVar16 + 0xc0)) || (paVar6 == (segT)(iVar16 + 0xc0)))\n          goto LAB_00023258;\n          paVar2 = *(segT *)((int)&UINT_00054838 + unaff_EDI + 1);\n          paVar3 = local_70;\n          if (((paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))) &&\n             (paVar3 = local_70, iVar20 != 0x14)) {\n            pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5);\n            as_bad(pcVar10);\n          }\n        }\n      }" { (if_statement "if ((int)-right.X_add_number._4_4_ < (int)(uint)((uint)right.X_add_number != 0)) {\n          puVar8 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar8 = &UNK_0002f015 + unaff_EDI;\n        }" if (parenthesized_expression "((int)-right.X_add_number._4_4_ < (int)(uint)((uint)right.X_add_number != 0))" ( (binary_expression "(int)-right.X_add_number._4_4_ < (int)(uint)((uint)right.X_add_number != 0)" (cast_expression "(int)-right.X_add_number._4_4_" ( (type_descriptor "int" primitive_type) ) (unary_expression "-right.X_add_number._4_4_" - (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier))) < (cast_expression "(int)(uint)((uint)right.X_add_number != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)((uint)right.X_add_number != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)right.X_add_number != 0)" ( (binary_expression "(uint)right.X_add_number != 0" (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier)) != number_literal) ))))) )) (compound_statement "{\n          puVar8 = (undefined *)(unaff_EDI + 0x2efe5);\n        }" { (expression_statement "puVar8 = (undefined *)(unaff_EDI + 0x2efe5);" (assignment_expression "puVar8 = (undefined *)(unaff_EDI + 0x2efe5)" identifier = (cast_expression "(undefined *)(unaff_EDI + 0x2efe5)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2efe5)" ( (binary_expression "unaff_EDI + 0x2efe5" identifier + number_literal) )))) ;) }) (else_clause "else {\n          puVar8 = &UNK_0002f015 + unaff_EDI;\n        }" else (compound_statement "{\n          puVar8 = &UNK_0002f015 + unaff_EDI;\n        }" { (expression_statement "puVar8 = &UNK_0002f015 + unaff_EDI;" (assignment_expression "puVar8 = &UNK_0002f015 + unaff_EDI" identifier = (binary_expression "&UNK_0002f015 + unaff_EDI" (pointer_expression "&UNK_0002f015" & identifier) + identifier)) ;) }))) (expression_statement "pcVar10 = (char *)dcgettext(0,puVar8,5);" (assignment_expression "pcVar10 = (char *)dcgettext(0,puVar8,5)" identifier = (cast_expression "(char *)dcgettext(0,puVar8,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,puVar8,5)" identifier (argument_list "(0,puVar8,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "as_warn(pcVar10);" (call_expression "as_warn(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) (expression_statement "right._16_1_ = 2;" (assignment_expression "right._16_1_ = 2" (field_expression "right._16_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "right.X_add_number._0_4_ = 0;" (assignment_expression "right.X_add_number._0_4_ = 0" (field_expression "right.X_add_number._0_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "right.X_add_number._4_4_ = 0;" (assignment_expression "right.X_add_number._4_4_ = 0" (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "right.X_add_symbol = (symbolS *)0x0;" (assignment_expression "right.X_add_symbol = (symbolS *)0x0" (field_expression "right.X_add_symbol" identifier . field_identifier) = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "right.X_op_symbol = (symbolS *)0x0;" (assignment_expression "right.X_op_symbol = (symbolS *)0x0" (field_expression "right.X_op_symbol" identifier . field_identifier) = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar20 == 0x13) {\n          bVar4 = (byte)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1;\nLAB_000237b4:\n          resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        }\n        else {\n          if (iVar20 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n          *(uint *)((int)&resultP->X_add_number + 4) =\n               (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n          bVar4 = resultP->field_0x11;\n          bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n          if (uVar14 < right.X_add_number._4_4_ ||\n              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n            resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n          }\n        }" if (parenthesized_expression "(iVar20 == 0x13)" ( (binary_expression "iVar20 == 0x13" identifier == number_literal) )) (compound_statement "{\n          bVar4 = (byte)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1;\nLAB_000237b4:\n          resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        }" { (expression_statement "bVar4 = (byte)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1;" (assignment_expression "bVar4 = (byte)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1" identifier = (binary_expression "(byte)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1" (binary_expression "(byte)(resultP->field_0x11 ^ right._17_1_) >> 1" (call_expression "(byte)(resultP->field_0x11 ^ right._17_1_)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(resultP->field_0x11 ^ right._17_1_)" ( (binary_expression "resultP->field_0x11 ^ right._17_1_" (field_expression "resultP->field_0x11" identifier -> field_identifier) ^ (field_expression "right._17_1_" identifier . field_identifier)) ))) >> number_literal) & number_literal)) ;) (labeled_statement "LAB_000237b4:\n          resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';" statement_identifier : (expression_statement "resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';" (assignment_expression "resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02'" (field_expression "resultP->field_0x11" identifier -> field_identifier) = (binary_expression "resultP->field_0x11 & 0xfd | bVar4 * '\x02'" (binary_expression "resultP->field_0x11 & 0xfd" (field_expression "resultP->field_0x11" identifier -> field_identifier) & number_literal) | (binary_expression "bVar4 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;)) }) (else_clause "else {\n          if (iVar20 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n          *(uint *)((int)&resultP->X_add_number + 4) =\n               (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n          bVar4 = resultP->field_0x11;\n          bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n          if (uVar14 < right.X_add_number._4_4_ ||\n              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n            resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n          }\n        }" else (compound_statement "{\n          if (iVar20 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n          *(uint *)((int)&resultP->X_add_number + 4) =\n               (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n          bVar4 = resultP->field_0x11;\n          bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n          if (uVar14 < right.X_add_number._4_4_ ||\n              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n            resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n          }\n        }" { (if_statement "if (iVar20 != 0x14) goto LAB_0002301a;" if (parenthesized_expression "(iVar20 != 0x14)" ( (binary_expression "iVar20 != 0x14" identifier != number_literal) )) (goto_statement "goto LAB_0002301a;" goto statement_identifier ;)) (labeled_statement "LAB_0002337b:\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);" statement_identifier : (expression_statement "uVar14 = *(uint *)((int)&resultP->X_add_number + 4);" (assignment_expression "uVar14 = *(uint *)((int)&resultP->X_add_number + 4)" identifier = (pointer_expression "*(uint *)((int)&resultP->X_add_number + 4)" * (cast_expression "(uint *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) ))))) ;)) (expression_statement "uVar19 = (uint)resultP->X_add_number;" (assignment_expression "uVar19 = (uint)resultP->X_add_number" identifier = (cast_expression "(uint)resultP->X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "resultP->X_add_number" identifier -> field_identifier))) ;) (expression_statement "*(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;" (assignment_expression "*(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number" (pointer_expression "*(uint *)&resultP->X_add_number" * (cast_expression "(uint *)&resultP->X_add_number" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier)))) = (binary_expression "uVar19 - (uint)right.X_add_number" identifier - (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier)))) ;) (expression_statement "*(uint *)((int)&resultP->X_add_number + 4) =\n               (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);" (assignment_expression "*(uint *)((int)&resultP->X_add_number + 4) =\n               (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number)" (pointer_expression "*(uint *)((int)&resultP->X_add_number + 4)" * (cast_expression "(uint *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "(uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number)" (parenthesized_expression "(uVar14 - right.X_add_number._4_4_)" ( (binary_expression "uVar14 - right.X_add_number._4_4_" identifier - (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier)) )) - (call_expression "(uint)(uVar19 < (uint)right.X_add_number)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < (uint)right.X_add_number)" ( (binary_expression "uVar19 < (uint)right.X_add_number" identifier < (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier))) ))))) ;) (expression_statement "bVar4 = resultP->field_0x11;" (assignment_expression "bVar4 = resultP->field_0x11" identifier = (field_expression "resultP->field_0x11" identifier -> field_identifier)) ;) (expression_statement "bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;" (assignment_expression "bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1" identifier = (binary_expression "(right._17_1_ ^ bVar4) >> 1 & 1" (binary_expression "(right._17_1_ ^ bVar4) >> 1" (parenthesized_expression "(right._17_1_ ^ bVar4)" ( (binary_expression "right._17_1_ ^ bVar4" (field_expression "right._17_1_" identifier . field_identifier) ^ identifier) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar14 < right.X_add_number._4_4_ ||\n              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n            resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n          }" if (parenthesized_expression "(uVar14 < right.X_add_number._4_4_ ||\n              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number))" ( (binary_expression "uVar14 < right.X_add_number._4_4_ ||\n              uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)" (binary_expression "uVar14 < right.X_add_number._4_4_" identifier < (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier)) || (binary_expression "uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)" (binary_expression "uVar14 - right.X_add_number._4_4_" identifier - (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier)) < (call_expression "(uint)(uVar19 < (uint)right.X_add_number)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < (uint)right.X_add_number)" ( (binary_expression "uVar19 < (uint)right.X_add_number" identifier < (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier))) ))))) )) (compound_statement "{\n            resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }" { (expression_statement "resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';" (assignment_expression "resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02'" (field_expression "resultP->field_0x11" identifier -> field_identifier) = (binary_expression "bVar4 & 0xfd | (bVar12 ^ 1) * '\x02'" (binary_expression "bVar4 & 0xfd" identifier & number_literal) | (binary_expression "(bVar12 ^ 1) * '\x02'" (parenthesized_expression "(bVar12 ^ 1)" ( (binary_expression "bVar12 ^ 1" identifier ^ number_literal) )) * (char_literal "'\x02'" ' escape_sequence ')))) ;) }) (else_clause "else {\n            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n          }" else (compound_statement "{\n            resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n          }" { (expression_statement "resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';" (assignment_expression "resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02'" (field_expression "resultP->field_0x11" identifier -> field_identifier) = (binary_expression "bVar4 & 0xfd | bVar12 * '\x02'" (binary_expression "bVar4 & 0xfd" identifier & number_literal) | (binary_expression "bVar12 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;) }))) }))) (labeled_statement "LAB_00023089:\n        paVar3 = local_70;" statement_identifier : (expression_statement "paVar3 = local_70;" (assignment_expression "paVar3 = local_70" identifier = identifier) ;)) (if_statement "if (paVar6 != local_70) {\nLAB_00023093:\n          iVar9 = iVar16;\n          if ((local_70 == (segT)(iVar16 + 0xc0)) || (paVar6 == (segT)(iVar16 + 0xc0)))\n          goto LAB_00023258;\n          paVar2 = *(segT *)((int)&UINT_00054838 + unaff_EDI + 1);\n          paVar3 = local_70;\n          if (((paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))) &&\n             (paVar3 = local_70, iVar20 != 0x14)) {\n            pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5);\n            as_bad(pcVar10);\n          }\n        }" if (parenthesized_expression "(paVar6 != local_70)" ( (binary_expression "paVar6 != local_70" identifier != identifier) )) (compound_statement "{\nLAB_00023093:\n          iVar9 = iVar16;\n          if ((local_70 == (segT)(iVar16 + 0xc0)) || (paVar6 == (segT)(iVar16 + 0xc0)))\n          goto LAB_00023258;\n          paVar2 = *(segT *)((int)&UINT_00054838 + unaff_EDI + 1);\n          paVar3 = local_70;\n          if (((paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))) &&\n             (paVar3 = local_70, iVar20 != 0x14)) {\n            pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5);\n            as_bad(pcVar10);\n          }\n        }" { (labeled_statement "LAB_00023093:\n          iVar9 = iVar16;" statement_identifier : (expression_statement "iVar9 = iVar16;" (assignment_expression "iVar9 = iVar16" identifier = identifier) ;)) (if_statement "if ((local_70 == (segT)(iVar16 + 0xc0)) || (paVar6 == (segT)(iVar16 + 0xc0)))\n          goto LAB_00023258;" if (parenthesized_expression "((local_70 == (segT)(iVar16 + 0xc0)) || (paVar6 == (segT)(iVar16 + 0xc0)))" ( (binary_expression "(local_70 == (segT)(iVar16 + 0xc0)) || (paVar6 == (segT)(iVar16 + 0xc0))" (parenthesized_expression "(local_70 == (segT)(iVar16 + 0xc0))" ( (binary_expression "local_70 == (segT)(iVar16 + 0xc0)" identifier == (call_expression "(segT)(iVar16 + 0xc0)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(iVar16 + 0xc0)" ( (binary_expression "iVar16 + 0xc0" identifier + number_literal) )))) )) || (parenthesized_expression "(paVar6 == (segT)(iVar16 + 0xc0))" ( (binary_expression "paVar6 == (segT)(iVar16 + 0xc0)" identifier == (call_expression "(segT)(iVar16 + 0xc0)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(iVar16 + 0xc0)" ( (binary_expression "iVar16 + 0xc0" identifier + number_literal) )))) ))) )) (goto_statement "goto LAB_00023258;" goto statement_identifier ;)) (expression_statement "paVar2 = *(segT *)((int)&UINT_00054838 + unaff_EDI + 1);" (assignment_expression "paVar2 = *(segT *)((int)&UINT_00054838 + unaff_EDI + 1)" identifier = (pointer_expression "*(segT *)((int)&UINT_00054838 + unaff_EDI + 1)" * (cast_expression "(segT *)((int)&UINT_00054838 + unaff_EDI + 1)" ( (type_descriptor "segT *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&UINT_00054838 + unaff_EDI + 1)" ( (binary_expression "(int)&UINT_00054838 + unaff_EDI + 1" (binary_expression "(int)&UINT_00054838 + unaff_EDI" (cast_expression "(int)&UINT_00054838" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&UINT_00054838" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "paVar3 = local_70;" (assignment_expression "paVar3 = local_70" identifier = identifier) ;) (if_statement "if (((paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))) &&\n             (paVar3 = local_70, iVar20 != 0x14)) {\n            pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5);\n            as_bad(pcVar10);\n          }" if (parenthesized_expression "(((paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))) &&\n             (paVar3 = local_70, iVar20 != 0x14))" ( (binary_expression "((paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))) &&\n             (paVar3 = local_70, iVar20 != 0x14)" (parenthesized_expression "((paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180)))))))" ( (binary_expression "(paVar2 != local_70) &&\n              ((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))" (parenthesized_expression "(paVar2 != local_70)" ( (binary_expression "paVar2 != local_70" identifier != identifier) )) && (parenthesized_expression "((((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))))" ( (parenthesized_expression "(((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180)))))" ( (binary_expression "((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)) &&\n               ((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))" (parenthesized_expression "((paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6))" ( (binary_expression "(paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)) && (paVar3 = paVar6, paVar2 != paVar6)" (parenthesized_expression "(paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70))" ( (comma_expression "paVar3 = paVar6, paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)" (assignment_expression "paVar3 = paVar6" identifier = identifier) , (binary_expression "paVar2 != paVar6 &&\n                 (paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)" (binary_expression "paVar2 != paVar6" identifier != identifier) && (parenthesized_expression "(paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70)" ( (comma_expression "paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1), paVar3 = local_70,\n                 paVar2 != local_70" (assignment_expression "paVar2 = *(segT *)((int)&UINT_000548e8 + unaff_EDI + 1)" identifier = (pointer_expression "*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1)" * (cast_expression "(segT *)((int)&UINT_000548e8 + unaff_EDI + 1)" ( (type_descriptor "segT *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&UINT_000548e8 + unaff_EDI + 1)" ( (binary_expression "(int)&UINT_000548e8 + unaff_EDI + 1" (binary_expression "(int)&UINT_000548e8 + unaff_EDI" (cast_expression "(int)&UINT_000548e8" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&UINT_000548e8" & identifier)) + identifier) + number_literal) ))))) , (comma_expression "paVar3 = local_70,\n                 paVar2 != local_70" (assignment_expression "paVar3 = local_70" identifier = identifier) , (binary_expression "paVar2 != local_70" identifier != identifier))) )))) )) && (parenthesized_expression "(paVar3 = paVar6, paVar2 != paVar6)" ( (comma_expression "paVar3 = paVar6, paVar2 != paVar6" (assignment_expression "paVar3 = paVar6" identifier = identifier) , (binary_expression "paVar2 != paVar6" identifier != identifier)) ))) )) && (parenthesized_expression "((paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))))" ( (parenthesized_expression "(paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180)))" ( (comma_expression "paVar3 = local_70, paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))" (assignment_expression "paVar3 = local_70" identifier = identifier) , (binary_expression "paVar6 != (segT)(iVar16 + 0x180) &&\n                (paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))" (binary_expression "paVar6 != (segT)(iVar16 + 0x180)" identifier != (call_expression "(segT)(iVar16 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(iVar16 + 0x180)" ( (binary_expression "iVar16 + 0x180" identifier + number_literal) )))) && (parenthesized_expression "(paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180))" ( (comma_expression "paVar3 = paVar6, local_70 != (segT)(iVar16 + 0x180)" (assignment_expression "paVar3 = paVar6" identifier = identifier) , (binary_expression "local_70 != (segT)(iVar16 + 0x180)" identifier != (call_expression "(segT)(iVar16 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(iVar16 + 0x180)" ( (binary_expression "iVar16 + 0x180" identifier + number_literal) ))))) )))) )) ))) )) ))) )) && (parenthesized_expression "(paVar3 = local_70, iVar20 != 0x14)" ( (comma_expression "paVar3 = local_70, iVar20 != 0x14" (assignment_expression "paVar3 = local_70" identifier = identifier) , (binary_expression "iVar20 != 0x14" identifier != number_literal)) ))) )) (compound_statement "{\n            pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5);\n            as_bad(pcVar10);\n          }" { (expression_statement "pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5);" (assignment_expression "pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2f041,5)" identifier = (cast_expression "(char *)dcgettext(0,unaff_EDI + 0x2f041,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,unaff_EDI + 0x2f041,5)" identifier (argument_list "(0,unaff_EDI + 0x2f041,5)" ( number_literal , (binary_expression "unaff_EDI + 0x2f041" identifier + number_literal) , number_literal ))))) ;) (expression_statement "as_bad(pcVar10);" (call_expression "as_bad(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) })) })) }) (else_clause "else if (iVar20 == 0x13) {\n        if (right._16_1_ == '\x02') {\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar4 = bVar4 ^ 1;\nLAB_00023823:\n          resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = resultP->field_0x10;\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        bVar4 = resultP->field_0x11;\n        resultP->field_0x10 = right._16_1_;\n        resultP->X_add_symbol = right.X_add_symbol;\n        resultP->X_op_symbol = right.X_op_symbol;\n        uVar19 = (uint)resultP->X_add_number;\n        uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number);\n        *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n        bVar12 = (bVar4 ^ right._17_1_) >> 1 & 1;\n        if (uVar17 < uVar14 || uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19))\n        {\n          resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd;\n        }\n        else {\n          resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;\n        }\n      }\n      else {\n        if (iVar20 == 0x14) {\n          if (right._16_1_ == '\x03') {\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (right._16_1_ == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar19 = right.X_add_number._4_4_;\n        uVar14 = (uint)right.X_add_number;\n        cVar13 = resultP->field_0x10;\n        if (cVar13 == '\x02') {\n          if (right._16_1_ == '\x02') {\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }\nLAB_0002303c:\n          psVar7 = make_expr_symbol(resultP);\n          resultP->X_add_symbol = psVar7;\n          psVar7 = make_expr_symbol(&right);\n          resultP->X_op_symbol = psVar7;\n          bVar4 = resultP->field_0x11;\n          resultP->field_0x10 = (undefined1)local_84;\n          *(undefined4 *)&resultP->X_add_number = 0;\n          *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n          resultP->field_0x11 = bVar4 & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;\n        if (1 < iVar20 - 0x13U) {\n          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        resultP->field_0x10 = (undefined1)local_84;\n        resultP->X_op_symbol = right.X_add_symbol;\n        if (iVar20 == 0x13) {\n          uVar14 = (uint)resultP->X_add_number;\n          uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        uVar19 = (uint)resultP->X_add_number;\n        *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) =\n             (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n        bVar4 = (byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1;\n        if (uVar14 < right.X_add_number._4_4_ ||\n            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n          bVar4 = bVar4 ^ 1;\n        }\n        resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        if (paVar6 != local_70) goto LAB_00023093;\n        iVar9 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == (segT)(iVar9 + 0x180)) {\nLAB_00023a77:\n          paVar3 = (segT)(iVar9 + 0x180);\n          goto joined_r0x00023268;\n        }\n        if (local_70 != (segT)(iVar9 + 0xc0)) {\n          paVar3 = local_70;\n          if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))\n          goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        paVar3 = (segT)(iVar9 + 0xc0);\n      }" else (if_statement "if (iVar20 == 0x13) {\n        if (right._16_1_ == '\x02') {\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar4 = bVar4 ^ 1;\nLAB_00023823:\n          resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = resultP->field_0x10;\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        bVar4 = resultP->field_0x11;\n        resultP->field_0x10 = right._16_1_;\n        resultP->X_add_symbol = right.X_add_symbol;\n        resultP->X_op_symbol = right.X_op_symbol;\n        uVar19 = (uint)resultP->X_add_number;\n        uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number);\n        *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n        bVar12 = (bVar4 ^ right._17_1_) >> 1 & 1;\n        if (uVar17 < uVar14 || uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19))\n        {\n          resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd;\n        }\n        else {\n          resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;\n        }\n      }\n      else {\n        if (iVar20 == 0x14) {\n          if (right._16_1_ == '\x03') {\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (right._16_1_ == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar19 = right.X_add_number._4_4_;\n        uVar14 = (uint)right.X_add_number;\n        cVar13 = resultP->field_0x10;\n        if (cVar13 == '\x02') {\n          if (right._16_1_ == '\x02') {\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }\nLAB_0002303c:\n          psVar7 = make_expr_symbol(resultP);\n          resultP->X_add_symbol = psVar7;\n          psVar7 = make_expr_symbol(&right);\n          resultP->X_op_symbol = psVar7;\n          bVar4 = resultP->field_0x11;\n          resultP->field_0x10 = (undefined1)local_84;\n          *(undefined4 *)&resultP->X_add_number = 0;\n          *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n          resultP->field_0x11 = bVar4 & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;\n        if (1 < iVar20 - 0x13U) {\n          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        resultP->field_0x10 = (undefined1)local_84;\n        resultP->X_op_symbol = right.X_add_symbol;\n        if (iVar20 == 0x13) {\n          uVar14 = (uint)resultP->X_add_number;\n          uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        uVar19 = (uint)resultP->X_add_number;\n        *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) =\n             (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n        bVar4 = (byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1;\n        if (uVar14 < right.X_add_number._4_4_ ||\n            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n          bVar4 = bVar4 ^ 1;\n        }\n        resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        if (paVar6 != local_70) goto LAB_00023093;\n        iVar9 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == (segT)(iVar9 + 0x180)) {\nLAB_00023a77:\n          paVar3 = (segT)(iVar9 + 0x180);\n          goto joined_r0x00023268;\n        }\n        if (local_70 != (segT)(iVar9 + 0xc0)) {\n          paVar3 = local_70;\n          if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))\n          goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        paVar3 = (segT)(iVar9 + 0xc0);\n      }" if (parenthesized_expression "(iVar20 == 0x13)" ( (binary_expression "iVar20 == 0x13" identifier == number_literal) )) (compound_statement "{\n        if (right._16_1_ == '\x02') {\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar4 = bVar4 ^ 1;\nLAB_00023823:\n          resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = resultP->field_0x10;\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        bVar4 = resultP->field_0x11;\n        resultP->field_0x10 = right._16_1_;\n        resultP->X_add_symbol = right.X_add_symbol;\n        resultP->X_op_symbol = right.X_op_symbol;\n        uVar19 = (uint)resultP->X_add_number;\n        uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number);\n        *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n        bVar12 = (bVar4 ^ right._17_1_) >> 1 & 1;\n        if (uVar17 < uVar14 || uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19))\n        {\n          resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd;\n        }\n        else {\n          resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;\n        }\n      }" { (if_statement "if (right._16_1_ == '\x02') {\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar4 = bVar4 ^ 1;\nLAB_00023823:\n          resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';\n          goto LAB_00023089;\n        }" if (parenthesized_expression "(right._16_1_ == '\x02')" ( (binary_expression "right._16_1_ == '\x02'" (field_expression "right._16_1_" identifier . field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar19 = (uint)resultP->X_add_number;\n          uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar4 = bVar4 ^ 1;\nLAB_00023823:\n          resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';\n          goto LAB_00023089;\n        }" { (expression_statement "uVar14 = *(uint *)((int)&resultP->X_add_number + 4);" (assignment_expression "uVar14 = *(uint *)((int)&resultP->X_add_number + 4)" identifier = (pointer_expression "*(uint *)((int)&resultP->X_add_number + 4)" * (cast_expression "(uint *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar19 = (uint)resultP->X_add_number;" (assignment_expression "uVar19 = (uint)resultP->X_add_number" identifier = (cast_expression "(uint)resultP->X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "resultP->X_add_number" identifier -> field_identifier))) ;) (expression_statement "uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)\n          ;" (assignment_expression "uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)" identifier = (binary_expression "uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)" (binary_expression "uVar14 + right.X_add_number._4_4_" identifier + (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier)) + (cast_expression "(uint)CARRY4(uVar19,(uint)right.X_add_number)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar19,(uint)right.X_add_number)" identifier (argument_list "(uVar19,(uint)right.X_add_number)" ( identifier , (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier)) )))))) ;) (expression_statement "*(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;" (assignment_expression "*(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number" (pointer_expression "*(uint *)&resultP->X_add_number" * (cast_expression "(uint *)&resultP->X_add_number" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier)))) = (binary_expression "uVar19 + (uint)right.X_add_number" identifier + (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier)))) ;) (expression_statement "bVar12 = resultP->field_0x11;" (assignment_expression "bVar12 = resultP->field_0x11" identifier = (field_expression "resultP->field_0x11" identifier -> field_identifier)) ;) (expression_statement "*(uint *)((int)&resultP->X_add_number + 4) = uVar17;" (assignment_expression "*(uint *)((int)&resultP->X_add_number + 4) = uVar17" (pointer_expression "*(uint *)((int)&resultP->X_add_number + 4)" * (cast_expression "(uint *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;" (assignment_expression "bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1" identifier = (binary_expression "(right._17_1_ ^ bVar12) >> 1 & 1" (binary_expression "(right._17_1_ ^ bVar12) >> 1" (parenthesized_expression "(right._17_1_ ^ bVar12)" ( (binary_expression "right._17_1_ ^ bVar12" (field_expression "right._17_1_" identifier . field_identifier) ^ identifier) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)\n          goto LAB_000237b4;" if (parenthesized_expression "(uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14)" ( (binary_expression "uVar14 <= uVar17 &&\n              (uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14" (binary_expression "uVar14 <= uVar17" identifier <= identifier) && (binary_expression "(uint)(uVar19 + (uint)right.X_add_number < uVar19) <= uVar17 - uVar14" (call_expression "(uint)(uVar19 + (uint)right.X_add_number < uVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 + (uint)right.X_add_number < uVar19)" ( (binary_expression "uVar19 + (uint)right.X_add_number < uVar19" (binary_expression "uVar19 + (uint)right.X_add_number" identifier + (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier))) < identifier) ))) <= (binary_expression "uVar17 - uVar14" identifier - identifier))) )) (goto_statement "goto LAB_000237b4;" goto statement_identifier ;)) (labeled_statement "LAB_00023820:\n          bVar4 = bVar4 ^ 1;" statement_identifier : (expression_statement "bVar4 = bVar4 ^ 1;" (assignment_expression "bVar4 = bVar4 ^ 1" identifier = (binary_expression "bVar4 ^ 1" identifier ^ number_literal)) ;)) (labeled_statement "LAB_00023823:\n          resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';" statement_identifier : (expression_statement "resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02';" (assignment_expression "resultP->field_0x11 = bVar12 & 0xfd | bVar4 * '\x02'" (field_expression "resultP->field_0x11" identifier -> field_identifier) = (binary_expression "bVar12 & 0xfd | bVar4 * '\x02'" (binary_expression "bVar12 & 0xfd" identifier & number_literal) | (binary_expression "bVar4 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;)) (goto_statement "goto LAB_00023089;" goto statement_identifier ;) })) (expression_statement "cVar13 = resultP->field_0x10;" (assignment_expression "cVar13 = resultP->field_0x10" identifier = (field_expression "resultP->field_0x10" identifier -> field_identifier)) ;) (if_statement "if (cVar13 != '\x02') goto LAB_0002302e;" if (parenthesized_expression "(cVar13 != '\x02')" ( (binary_expression "cVar13 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002302e;" goto statement_identifier ;)) (expression_statement "uVar14 = *(uint *)((int)&resultP->X_add_number + 4);" (assignment_expression "uVar14 = *(uint *)((int)&resultP->X_add_number + 4)" identifier = (pointer_expression "*(uint *)((int)&resultP->X_add_number + 4)" * (cast_expression "(uint *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "bVar4 = resultP->field_0x11;" (assignment_expression "bVar4 = resultP->field_0x11" identifier = (field_expression "resultP->field_0x11" identifier -> field_identifier)) ;) (expression_statement "resultP->field_0x10 = right._16_1_;" (assignment_expression "resultP->field_0x10 = right._16_1_" (field_expression "resultP->field_0x10" identifier -> field_identifier) = (field_expression "right._16_1_" identifier . field_identifier)) ;) (expression_statement "resultP->X_add_symbol = right.X_add_symbol;" (assignment_expression "resultP->X_add_symbol = right.X_add_symbol" (field_expression "resultP->X_add_symbol" identifier -> field_identifier) = (field_expression "right.X_add_symbol" identifier . field_identifier)) ;) (expression_statement "resultP->X_op_symbol = right.X_op_symbol;" (assignment_expression "resultP->X_op_symbol = right.X_op_symbol" (field_expression "resultP->X_op_symbol" identifier -> field_identifier) = (field_expression "right.X_op_symbol" identifier . field_identifier)) ;) (expression_statement "uVar19 = (uint)resultP->X_add_number;" (assignment_expression "uVar19 = (uint)resultP->X_add_number" identifier = (cast_expression "(uint)resultP->X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "resultP->X_add_number" identifier -> field_identifier))) ;) (expression_statement "uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number);" (assignment_expression "uVar17 = uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)" identifier = (binary_expression "uVar14 + right.X_add_number._4_4_ + (uint)CARRY4(uVar19,(uint)right.X_add_number)" (binary_expression "uVar14 + right.X_add_number._4_4_" identifier + (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier)) + (cast_expression "(uint)CARRY4(uVar19,(uint)right.X_add_number)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar19,(uint)right.X_add_number)" identifier (argument_list "(uVar19,(uint)right.X_add_number)" ( identifier , (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier)) )))))) ;) (expression_statement "*(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number;" (assignment_expression "*(uint *)&resultP->X_add_number = uVar19 + (uint)right.X_add_number" (pointer_expression "*(uint *)&resultP->X_add_number" * (cast_expression "(uint *)&resultP->X_add_number" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier)))) = (binary_expression "uVar19 + (uint)right.X_add_number" identifier + (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier)))) ;) (expression_statement "*(uint *)((int)&resultP->X_add_number + 4) = uVar17;" (assignment_expression "*(uint *)((int)&resultP->X_add_number + 4) = uVar17" (pointer_expression "*(uint *)((int)&resultP->X_add_number + 4)" * (cast_expression "(uint *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "bVar12 = (bVar4 ^ right._17_1_) >> 1 & 1;" (assignment_expression "bVar12 = (bVar4 ^ right._17_1_) >> 1 & 1" identifier = (binary_expression "(bVar4 ^ right._17_1_) >> 1 & 1" (binary_expression "(bVar4 ^ right._17_1_) >> 1" (parenthesized_expression "(bVar4 ^ right._17_1_)" ( (binary_expression "bVar4 ^ right._17_1_" identifier ^ (field_expression "right._17_1_" identifier . field_identifier)) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar17 < uVar14 || uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19))\n        {\n          resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd;\n        }\n        else {\n          resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;\n        }" if (parenthesized_expression "(uVar17 < uVar14 || uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19))" ( (binary_expression "uVar17 < uVar14 || uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19)" (binary_expression "uVar17 < uVar14" identifier < identifier) || (binary_expression "uVar17 - uVar14 < (uint)(uVar19 + (uint)right.X_add_number < uVar19)" (binary_expression "uVar17 - uVar14" identifier - identifier) < (call_expression "(uint)(uVar19 + (uint)right.X_add_number < uVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 + (uint)right.X_add_number < uVar19)" ( (binary_expression "uVar19 + (uint)right.X_add_number < uVar19" (binary_expression "uVar19 + (uint)right.X_add_number" identifier + (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier))) < identifier) ))))) )) (compound_statement "{\n          resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd;\n        }" { (expression_statement "resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd;" (assignment_expression "resultP->field_0x11 = (bVar12 ^ 1) * '\x02' | bVar4 & 0xfd" (field_expression "resultP->field_0x11" identifier -> field_identifier) = (binary_expression "(bVar12 ^ 1) * '\x02' | bVar4 & 0xfd" (binary_expression "(bVar12 ^ 1) * '\x02'" (parenthesized_expression "(bVar12 ^ 1)" ( (binary_expression "bVar12 ^ 1" identifier ^ number_literal) )) * (char_literal "'\x02'" ' escape_sequence ')) | (binary_expression "bVar4 & 0xfd" identifier & number_literal))) ;) }) (else_clause "else {\n          resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;\n        }" else (compound_statement "{\n          resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;\n        }" { (expression_statement "resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd;" (assignment_expression "resultP->field_0x11 = bVar12 * '\x02' | bVar4 & 0xfd" (field_expression "resultP->field_0x11" identifier -> field_identifier) = (binary_expression "bVar12 * '\x02' | bVar4 & 0xfd" (binary_expression "bVar12 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')) | (binary_expression "bVar4 & 0xfd" identifier & number_literal))) ;) }))) }) (else_clause "else {\n        if (iVar20 == 0x14) {\n          if (right._16_1_ == '\x03') {\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (right._16_1_ == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar19 = right.X_add_number._4_4_;\n        uVar14 = (uint)right.X_add_number;\n        cVar13 = resultP->field_0x10;\n        if (cVar13 == '\x02') {\n          if (right._16_1_ == '\x02') {\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }\nLAB_0002303c:\n          psVar7 = make_expr_symbol(resultP);\n          resultP->X_add_symbol = psVar7;\n          psVar7 = make_expr_symbol(&right);\n          resultP->X_op_symbol = psVar7;\n          bVar4 = resultP->field_0x11;\n          resultP->field_0x10 = (undefined1)local_84;\n          *(undefined4 *)&resultP->X_add_number = 0;\n          *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n          resultP->field_0x11 = bVar4 & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;\n        if (1 < iVar20 - 0x13U) {\n          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        resultP->field_0x10 = (undefined1)local_84;\n        resultP->X_op_symbol = right.X_add_symbol;\n        if (iVar20 == 0x13) {\n          uVar14 = (uint)resultP->X_add_number;\n          uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        uVar19 = (uint)resultP->X_add_number;\n        *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) =\n             (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n        bVar4 = (byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1;\n        if (uVar14 < right.X_add_number._4_4_ ||\n            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n          bVar4 = bVar4 ^ 1;\n        }\n        resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        if (paVar6 != local_70) goto LAB_00023093;\n        iVar9 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == (segT)(iVar9 + 0x180)) {\nLAB_00023a77:\n          paVar3 = (segT)(iVar9 + 0x180);\n          goto joined_r0x00023268;\n        }\n        if (local_70 != (segT)(iVar9 + 0xc0)) {\n          paVar3 = local_70;\n          if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))\n          goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        paVar3 = (segT)(iVar9 + 0xc0);\n      }" else (compound_statement "{\n        if (iVar20 == 0x14) {\n          if (right._16_1_ == '\x03') {\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (right._16_1_ == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar19 = right.X_add_number._4_4_;\n        uVar14 = (uint)right.X_add_number;\n        cVar13 = resultP->field_0x10;\n        if (cVar13 == '\x02') {\n          if (right._16_1_ == '\x02') {\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }\nLAB_0002303c:\n          psVar7 = make_expr_symbol(resultP);\n          resultP->X_add_symbol = psVar7;\n          psVar7 = make_expr_symbol(&right);\n          resultP->X_op_symbol = psVar7;\n          bVar4 = resultP->field_0x11;\n          resultP->field_0x10 = (undefined1)local_84;\n          *(undefined4 *)&resultP->X_add_number = 0;\n          *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n          resultP->field_0x11 = bVar4 & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;\n        if (1 < iVar20 - 0x13U) {\n          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        resultP->field_0x10 = (undefined1)local_84;\n        resultP->X_op_symbol = right.X_add_symbol;\n        if (iVar20 == 0x13) {\n          uVar14 = (uint)resultP->X_add_number;\n          uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = *(uint *)((int)&resultP->X_add_number + 4);\n        uVar19 = (uint)resultP->X_add_number;\n        *(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;\n        *(uint *)((int)&resultP->X_add_number + 4) =\n             (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);\n        bVar4 = (byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1;\n        if (uVar14 < right.X_add_number._4_4_ ||\n            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n          bVar4 = bVar4 ^ 1;\n        }\n        resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';\n        if (paVar6 != local_70) goto LAB_00023093;\n        iVar9 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == (segT)(iVar9 + 0x180)) {\nLAB_00023a77:\n          paVar3 = (segT)(iVar9 + 0x180);\n          goto joined_r0x00023268;\n        }\n        if (local_70 != (segT)(iVar9 + 0xc0)) {\n          paVar3 = local_70;\n          if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))\n          goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        paVar3 = (segT)(iVar9 + 0xc0);\n      }" { (if_statement "if (iVar20 == 0x14) {\n          if (right._16_1_ == '\x03') {\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (right._16_1_ == '\x02') goto LAB_0002337b;\n        }" if (parenthesized_expression "(iVar20 == 0x14)" ( (binary_expression "iVar20 == 0x14" identifier == number_literal) )) (compound_statement "{\n          if (right._16_1_ == '\x03') {\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (right._16_1_ == '\x02') goto LAB_0002337b;\n        }" { (if_statement "if (right._16_1_ == '\x03') {\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }" if (parenthesized_expression "(right._16_1_ == '\x03')" ( (binary_expression "right._16_1_ == '\x03'" (field_expression "right._16_1_" identifier . field_identifier) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n            if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;\n            psVar7 = resultP->X_add_symbol;\n            if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }\n            frag2 = symbol_get_frag(psVar7);\n            frag1 = symbol_get_frag(resultP->X_add_symbol);\n            bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);\n            if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }\n          }" { (if_statement "if ((resultP->field_0x10 != '\x03') || (paVar6 != local_70)) goto LAB_0002301a;" if (parenthesized_expression "((resultP->field_0x10 != '\x03') || (paVar6 != local_70))" ( (binary_expression "(resultP->field_0x10 != '\x03') || (paVar6 != local_70)" (parenthesized_expression "(resultP->field_0x10 != '\x03')" ( (binary_expression "resultP->field_0x10 != '\x03'" (field_expression "resultP->field_0x10" identifier -> field_identifier) != (char_literal "'\x03'" ' escape_sequence ')) )) || (parenthesized_expression "(paVar6 != local_70)" ( (binary_expression "paVar6 != local_70" identifier != identifier) ))) )) (goto_statement "goto LAB_0002301a;" goto statement_identifier ;)) (expression_statement "psVar7 = resultP->X_add_symbol;" (assignment_expression "psVar7 = resultP->X_add_symbol" identifier = (field_expression "resultP->X_add_symbol" identifier -> field_identifier)) ;) (if_statement "if (((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)) {\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }\n            else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }" if (parenthesized_expression "(((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6))" ( (binary_expression "((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))) ||\n               (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)" (parenthesized_expression "((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6))))" ( (binary_expression "(paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)) ||\n                ((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))" (parenthesized_expression "(paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0))" ( (binary_expression "paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)" identifier == (call_expression "(segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(*(int *)(unaff_EDI + 0x4b1c1) + 0xc0)" ( (binary_expression "*(int *)(unaff_EDI + 0x4b1c1) + 0xc0" (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" * (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b1c1)" ( (binary_expression "unaff_EDI + 0x4b1c1" identifier + number_literal) )))) + number_literal) )))) )) || (parenthesized_expression "((paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)))" ( (parenthesized_expression "(paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6))" ( (binary_expression "paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180) ||\n                 (*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)" (binary_expression "paVar6 == (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180)" identifier == (call_expression "(segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(*(int *)(unaff_EDI + 0x4b1c1) + 0x180)" ( (binary_expression "*(int *)(unaff_EDI + 0x4b1c1) + 0x180" (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" * (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b1c1)" ( (binary_expression "unaff_EDI + 0x4b1c1" identifier + number_literal) )))) + number_literal) )))) || (parenthesized_expression "(*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6)" ( (binary_expression "*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == paVar6" (pointer_expression "*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1)" * (cast_expression "(segT *)((int)&UINT_000548e8 + unaff_EDI + 1)" ( (type_descriptor "segT *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&UINT_000548e8 + unaff_EDI + 1)" ( (binary_expression "(int)&UINT_000548e8 + unaff_EDI + 1" (binary_expression "(int)&UINT_000548e8 + unaff_EDI" (cast_expression "(int)&UINT_000548e8" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&UINT_000548e8" & identifier)) + identifier) + number_literal) )))) == identifier) ))) )) ))) )) || (parenthesized_expression "(*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6)" ( (binary_expression "*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == paVar6" (pointer_expression "*(segT *)((int)&UINT_00054838 + unaff_EDI + 1)" * (cast_expression "(segT *)((int)&UINT_00054838 + unaff_EDI + 1)" ( (type_descriptor "segT *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&UINT_00054838 + unaff_EDI + 1)" ( (binary_expression "(int)&UINT_00054838 + unaff_EDI + 1" (binary_expression "(int)&UINT_00054838 + unaff_EDI" (cast_expression "(int)&UINT_00054838" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&UINT_00054838" & identifier)) + identifier) + number_literal) )))) == identifier) ))) )) (compound_statement "{\nLAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;\n            }" { (labeled_statement "LAB_000236bc:\n              if (right.X_add_symbol != psVar7) goto LAB_000236cb;" statement_identifier : (if_statement "if (right.X_add_symbol != psVar7) goto LAB_000236cb;" if (parenthesized_expression "(right.X_add_symbol != psVar7)" ( (binary_expression "right.X_add_symbol != psVar7" (field_expression "right.X_add_symbol" identifier . field_identifier) != identifier) )) (goto_statement "goto LAB_000236cb;" goto statement_identifier ;))) }) (else_clause "else {\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }" else (compound_statement "{\n              iVar9 = S_FORCE_RELOC(psVar7,0);\n              if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }\n            }" { (expression_statement "iVar9 = S_FORCE_RELOC(psVar7,0);" (assignment_expression "iVar9 = S_FORCE_RELOC(psVar7,0)" identifier = (call_expression "S_FORCE_RELOC(psVar7,0)" identifier (argument_list "(psVar7,0)" ( identifier , number_literal )))) ;) (if_statement "if ((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)) {\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }" if (parenthesized_expression "((iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0))" ( (binary_expression "(iVar9 != 0) ||\n                 (iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0)" ( (comma_expression "iVar9 = S_FORCE_RELOC(right.X_add_symbol,0), psVar7 = right.X_add_symbol,\n                 iVar9 != 0" (assignment_expression "iVar9 = S_FORCE_RELOC(right.X_add_symbol,0)" identifier = (call_expression "S_FORCE_RELOC(right.X_add_symbol,0)" identifier (argument_list "(right.X_add_symbol,0)" ( (field_expression "right.X_add_symbol" identifier . field_identifier) , number_literal )))) , (comma_expression "psVar7 = right.X_add_symbol,\n                 iVar9 != 0" (assignment_expression "psVar7 = right.X_add_symbol" identifier = (field_expression "right.X_add_symbol" identifier . field_identifier)) , (binary_expression "iVar9 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n                psVar7 = resultP->X_add_symbol;\n                goto LAB_000236bc;\n              }" { (expression_statement "psVar7 = resultP->X_add_symbol;" (assignment_expression "psVar7 = resultP->X_add_symbol" identifier = (field_expression "resultP->X_add_symbol" identifier -> field_identifier)) ;) (goto_statement "goto LAB_000236bc;" goto statement_identifier ;) })) }))) (expression_statement "frag2 = symbol_get_frag(psVar7);" (assignment_expression "frag2 = symbol_get_frag(psVar7)" identifier = (call_expression "symbol_get_frag(psVar7)" identifier (argument_list "(psVar7)" ( identifier )))) ;) (expression_statement "frag1 = symbol_get_frag(resultP->X_add_symbol);" (assignment_expression "frag1 = symbol_get_frag(resultP->X_add_symbol)" identifier = (call_expression "symbol_get_frag(resultP->X_add_symbol)" identifier (argument_list "(resultP->X_add_symbol)" ( (field_expression "resultP->X_add_symbol" identifier -> field_identifier) )))) ;) (expression_statement "bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off);" (assignment_expression "bVar11 = frag_offset_fixed_p(frag1,frag2,&frag_off)" identifier = (call_expression "frag_offset_fixed_p(frag1,frag2,&frag_off)" identifier (argument_list "(frag1,frag2,&frag_off)" ( identifier , identifier , (pointer_expression "&frag_off" & identifier) )))) ;) (if_statement "if (bVar11 != 0) {\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (compound_statement "{\n              vVar24 = S_GET_VALUE(resultP->X_add_symbol);\n              vVar25 = S_GET_VALUE(right.X_add_symbol);\n              local_84 = (uint)vVar24;\n              local_80 = (int)(vVar24 >> 0x20);\n              uVar17 = local_84 - (uint)vVar25;\n              iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);\n              uVar14 = (uint)resultP->X_add_number;\n              uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n              uVar18 = uVar14 - (uint)right.X_add_number;\n              uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);\n              *(uint *)&resultP->X_add_number = uVar18;\n              bVar4 = resultP->field_0x11;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar21;\n              bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;\n              if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }\n              resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              uVar14 = uVar18 - (uint)frag_off;\n              uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);\n              *(uint *)&resultP->X_add_number = uVar14;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar19;\n              if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }\n              uVar18 = uVar17 + uVar14;\n              uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);\n              *(uint *)&resultP->X_add_number = uVar18;\n              *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n              bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);\n              if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }\n              resultP->field_0x10 = 2;\n              resultP->X_add_symbol = (symbolS *)0x0;\n              paVar3 = local_70;\n              goto joined_r0x00023268;\n            }" { (expression_statement "vVar24 = S_GET_VALUE(resultP->X_add_symbol);" (assignment_expression "vVar24 = S_GET_VALUE(resultP->X_add_symbol)" identifier = (call_expression "S_GET_VALUE(resultP->X_add_symbol)" identifier (argument_list "(resultP->X_add_symbol)" ( (field_expression "resultP->X_add_symbol" identifier -> field_identifier) )))) ;) (expression_statement "vVar25 = S_GET_VALUE(right.X_add_symbol);" (assignment_expression "vVar25 = S_GET_VALUE(right.X_add_symbol)" identifier = (call_expression "S_GET_VALUE(right.X_add_symbol)" identifier (argument_list "(right.X_add_symbol)" ( (field_expression "right.X_add_symbol" identifier . field_identifier) )))) ;) (expression_statement "local_84 = (uint)vVar24;" (assignment_expression "local_84 = (uint)vVar24" identifier = (cast_expression "(uint)vVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_80 = (int)(vVar24 >> 0x20);" (assignment_expression "local_80 = (int)(vVar24 >> 0x20)" identifier = (cast_expression "(int)(vVar24 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(vVar24 >> 0x20)" ( (binary_expression "vVar24 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar17 = local_84 - (uint)vVar25;" (assignment_expression "uVar17 = local_84 - (uint)vVar25" identifier = (binary_expression "local_84 - (uint)vVar25" identifier - (cast_expression "(uint)vVar25" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25);" (assignment_expression "iVar20 = (local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25)" identifier = (binary_expression "(local_80 - (int)(vVar25 >> 0x20)) - (uint)(local_84 < (uint)vVar25)" (parenthesized_expression "(local_80 - (int)(vVar25 >> 0x20))" ( (binary_expression "local_80 - (int)(vVar25 >> 0x20)" identifier - (cast_expression "(int)(vVar25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(vVar25 >> 0x20)" ( (binary_expression "vVar25 >> 0x20" identifier >> number_literal) )))) )) - (call_expression "(uint)(local_84 < (uint)vVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_84 < (uint)vVar25)" ( (binary_expression "local_84 < (uint)vVar25" identifier < (cast_expression "(uint)vVar25" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) ;) (expression_statement "uVar14 = (uint)resultP->X_add_number;" (assignment_expression "uVar14 = (uint)resultP->X_add_number" identifier = (cast_expression "(uint)resultP->X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "resultP->X_add_number" identifier -> field_identifier))) ;) (expression_statement "uVar19 = *(uint *)((int)&resultP->X_add_number + 4);" (assignment_expression "uVar19 = *(uint *)((int)&resultP->X_add_number + 4)" identifier = (pointer_expression "*(uint *)((int)&resultP->X_add_number + 4)" * (cast_expression "(uint *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar18 = uVar14 - (uint)right.X_add_number;" (assignment_expression "uVar18 = uVar14 - (uint)right.X_add_number" identifier = (binary_expression "uVar14 - (uint)right.X_add_number" identifier - (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier)))) ;) (expression_statement "uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number);" (assignment_expression "uVar21 = (uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number)" identifier = (binary_expression "(uVar19 - right.X_add_number._4_4_) -\n                       (uint)(uVar14 < (uint)right.X_add_number)" (parenthesized_expression "(uVar19 - right.X_add_number._4_4_)" ( (binary_expression "uVar19 - right.X_add_number._4_4_" identifier - (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier)) )) - (call_expression "(uint)(uVar14 < (uint)right.X_add_number)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < (uint)right.X_add_number)" ( (binary_expression "uVar14 < (uint)right.X_add_number" identifier < (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier))) ))))) ;) (expression_statement "*(uint *)&resultP->X_add_number = uVar18;" (assignment_expression "*(uint *)&resultP->X_add_number = uVar18" (pointer_expression "*(uint *)&resultP->X_add_number" * (cast_expression "(uint *)&resultP->X_add_number" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier)))) = identifier) ;) (expression_statement "bVar4 = resultP->field_0x11;" (assignment_expression "bVar4 = resultP->field_0x11" identifier = (field_expression "resultP->field_0x11" identifier -> field_identifier)) ;) (expression_statement "*(uint *)((int)&resultP->X_add_number + 4) = uVar21;" (assignment_expression "*(uint *)((int)&resultP->X_add_number + 4) = uVar21" (pointer_expression "*(uint *)((int)&resultP->X_add_number + 4)" * (cast_expression "(uint *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1;" (assignment_expression "bVar12 = (right._17_1_ ^ bVar4) >> 1 & 1" identifier = (binary_expression "(right._17_1_ ^ bVar4) >> 1 & 1" (binary_expression "(right._17_1_ ^ bVar4) >> 1" (parenthesized_expression "(right._17_1_ ^ bVar4)" ( (binary_expression "right._17_1_ ^ bVar4" (field_expression "right._17_1_" identifier . field_identifier) ^ identifier) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)) {\n                bVar12 = bVar12 ^ 1;\n              }" if (parenthesized_expression "(uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number))" ( (binary_expression "uVar19 < right.X_add_number._4_4_ ||\n                  uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)" (binary_expression "uVar19 < right.X_add_number._4_4_" identifier < (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier)) || (binary_expression "uVar19 - right.X_add_number._4_4_ < (uint)(uVar14 < (uint)right.X_add_number)" (binary_expression "uVar19 - right.X_add_number._4_4_" identifier - (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier)) < (call_expression "(uint)(uVar14 < (uint)right.X_add_number)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < (uint)right.X_add_number)" ( (binary_expression "uVar14 < (uint)right.X_add_number" identifier < (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier))) ))))) )) (compound_statement "{\n                bVar12 = bVar12 ^ 1;\n              }" { (expression_statement "bVar12 = bVar12 ^ 1;" (assignment_expression "bVar12 = bVar12 ^ 1" identifier = (binary_expression "bVar12 ^ 1" identifier ^ number_literal)) ;) })) (expression_statement "resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';" (assignment_expression "resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02'" (field_expression "resultP->field_0x11" identifier -> field_identifier) = (binary_expression "bVar4 & 0xfd | bVar12 * '\x02'" (binary_expression "bVar4 & 0xfd" identifier & number_literal) | (binary_expression "bVar12 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;) (expression_statement "uVar14 = uVar18 - (uint)frag_off;" (assignment_expression "uVar14 = uVar18 - (uint)frag_off" identifier = (binary_expression "uVar18 - (uint)frag_off" identifier - (cast_expression "(uint)frag_off" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off);" (assignment_expression "uVar19 = (uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off)" identifier = (binary_expression "(uVar21 - frag_off._4_4_) - (uint)(uVar18 < (uint)frag_off)" (parenthesized_expression "(uVar21 - frag_off._4_4_)" ( (binary_expression "uVar21 - frag_off._4_4_" identifier - (field_expression "frag_off._4_4_" identifier . field_identifier)) )) - (call_expression "(uint)(uVar18 < (uint)frag_off)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar18 < (uint)frag_off)" ( (binary_expression "uVar18 < (uint)frag_off" identifier < (cast_expression "(uint)frag_off" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) ;) (expression_statement "*(uint *)&resultP->X_add_number = uVar14;" (assignment_expression "*(uint *)&resultP->X_add_number = uVar14" (pointer_expression "*(uint *)&resultP->X_add_number" * (cast_expression "(uint *)&resultP->X_add_number" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&resultP->X_add_number + 4) = uVar19;" (assignment_expression "*(uint *)((int)&resultP->X_add_number + 4) = uVar19" (pointer_expression "*(uint *)((int)&resultP->X_add_number + 4)" * (cast_expression "(uint *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (if_statement "if (uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)) {\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }\n              else {\n                bVar4 = resultP->field_0x11;\n              }" if (parenthesized_expression "(uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off))" ( (binary_expression "uVar21 < frag_off._4_4_ ||\n                  uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)" (binary_expression "uVar21 < frag_off._4_4_" identifier < (field_expression "frag_off._4_4_" identifier . field_identifier)) || (binary_expression "uVar21 - frag_off._4_4_ < (uint)(uVar18 < (uint)frag_off)" (binary_expression "uVar21 - frag_off._4_4_" identifier - (field_expression "frag_off._4_4_" identifier . field_identifier)) < (call_expression "(uint)(uVar18 < (uint)frag_off)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar18 < (uint)frag_off)" ( (binary_expression "uVar18 < (uint)frag_off" identifier < (cast_expression "(uint)frag_off" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\n                bVar12 = bVar12 ^ 1;\n                bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';\n                resultP->field_0x11 = bVar4;\n              }" { (expression_statement "bVar12 = bVar12 ^ 1;" (assignment_expression "bVar12 = bVar12 ^ 1" identifier = (binary_expression "bVar12 ^ 1" identifier ^ number_literal)) ;) (expression_statement "bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02';" (assignment_expression "bVar4 = resultP->field_0x11 & 0xfd | bVar12 * '\x02'" identifier = (binary_expression "resultP->field_0x11 & 0xfd | bVar12 * '\x02'" (binary_expression "resultP->field_0x11 & 0xfd" (field_expression "resultP->field_0x11" identifier -> field_identifier) & number_literal) | (binary_expression "bVar12 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;) (expression_statement "resultP->field_0x11 = bVar4;" (assignment_expression "resultP->field_0x11 = bVar4" (field_expression "resultP->field_0x11" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n                bVar4 = resultP->field_0x11;\n              }" else (compound_statement "{\n                bVar4 = resultP->field_0x11;\n              }" { (expression_statement "bVar4 = resultP->field_0x11;" (assignment_expression "bVar4 = resultP->field_0x11" identifier = (field_expression "resultP->field_0x11" identifier -> field_identifier)) ;) }))) (expression_statement "uVar18 = uVar17 + uVar14;" (assignment_expression "uVar18 = uVar17 + uVar14" identifier = (binary_expression "uVar17 + uVar14" identifier + identifier)) ;) (expression_statement "uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14);" (assignment_expression "uVar17 = iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14)" identifier = (binary_expression "iVar20 + uVar19 + (uint)CARRY4(uVar17,uVar14)" (binary_expression "iVar20 + uVar19" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar17,uVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar17,uVar14)" identifier (argument_list "(uVar17,uVar14)" ( identifier , identifier )))))) ;) (expression_statement "*(uint *)&resultP->X_add_number = uVar18;" (assignment_expression "*(uint *)&resultP->X_add_number = uVar18" (pointer_expression "*(uint *)&resultP->X_add_number" * (cast_expression "(uint *)&resultP->X_add_number" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&resultP->X_add_number + 4) = uVar17;" (assignment_expression "*(uint *)((int)&resultP->X_add_number + 4) = uVar17" (pointer_expression "*(uint *)((int)&resultP->X_add_number + 4)" * (cast_expression "(uint *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f);" (assignment_expression "bVar12 = bVar12 ^ (byte)((uint)iVar20 >> 0x1f)" identifier = (binary_expression "bVar12 ^ (byte)((uint)iVar20 >> 0x1f)" identifier ^ (call_expression "(byte)((uint)iVar20 >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar20 >> 0x1f)" ( (binary_expression "(uint)iVar20 >> 0x1f" (cast_expression "(uint)iVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))))) ;) (if_statement "if (uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)) {\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }\n              else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }" if (parenthesized_expression "(uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14))" ( (binary_expression "uVar17 < uVar19 || uVar17 - uVar19 < (uint)(uVar18 < uVar14)" (binary_expression "uVar17 < uVar19" identifier < identifier) || (binary_expression "uVar17 - uVar19 < (uint)(uVar18 < uVar14)" (binary_expression "uVar17 - uVar19" identifier - identifier) < (call_expression "(uint)(uVar18 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar18 < uVar14)" ( (binary_expression "uVar18 < uVar14" identifier < identifier) ))))) )) (compound_statement "{\n                resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';\n              }" { (expression_statement "resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02';" (assignment_expression "resultP->field_0x11 = bVar4 & 0xfd | (bVar12 ^ 1) * '\x02'" (field_expression "resultP->field_0x11" identifier -> field_identifier) = (binary_expression "bVar4 & 0xfd | (bVar12 ^ 1) * '\x02'" (binary_expression "bVar4 & 0xfd" identifier & number_literal) | (binary_expression "(bVar12 ^ 1) * '\x02'" (parenthesized_expression "(bVar12 ^ 1)" ( (binary_expression "bVar12 ^ 1" identifier ^ number_literal) )) * (char_literal "'\x02'" ' escape_sequence ')))) ;) }) (else_clause "else {\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }" else (compound_statement "{\n                resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';\n              }" { (expression_statement "resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02';" (assignment_expression "resultP->field_0x11 = bVar4 & 0xfd | bVar12 * '\x02'" (field_expression "resultP->field_0x11" identifier -> field_identifier) = (binary_expression "bVar4 & 0xfd | bVar12 * '\x02'" (binary_expression "bVar4 & 0xfd" identifier & number_literal) | (binary_expression "bVar12 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;) }))) (expression_statement "resultP->field_0x10 = 2;" (assignment_expression "resultP->field_0x10 = 2" (field_expression "resultP->field_0x10" identifier -> field_identifier) = number_literal) ;) (expression_statement "resultP->X_add_symbol = (symbolS *)0x0;" (assignment_expression "resultP->X_add_symbol = (symbolS *)0x0" (field_expression "resultP->X_add_symbol" identifier -> field_identifier) = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "paVar3 = local_70;" (assignment_expression "paVar3 = local_70" identifier = identifier) ;) (goto_statement "goto joined_r0x00023268;" goto statement_identifier ;) })) })) (labeled_statement "LAB_000236cb:\n          if (right._16_1_ == '\x02') goto LAB_0002337b;" statement_identifier : (if_statement "if (right._16_1_ == '\x02') goto LAB_0002337b;" if (parenthesized_expression "(right._16_1_ == '\x02')" ( (binary_expression "right._16_1_ == '\x02'" (field_expression "right._16_1_" identifier . field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002337b;" goto statement_identifier ;))) })) (labeled_statement "LAB_0002301a:\n        uVar19 = right.X_add_number._4_4_;" statement_identifier : (expression_statement "uVar19 = right.X_add_number._4_4_;" (assignment_expression "uVar19 = right.X_add_number._4_4_" identifier = (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier)) ;)) (expression_statement "uVar14 = (uint)right.X_add_number;" (assignment_expression "uVar14 = (uint)right.X_add_number" identifier = (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier))) ;) (expression_statement "cVar13 = resultP->field_0x10;" (assignment_expression "cVar13 = resultP->field_0x10" identifier = (field_expression "resultP->field_0x10" identifier -> field_identifier)) ;) (if_statement "if (cVar13 == '\x02') {\n          if (right._16_1_ == '\x02') {\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }\nLAB_0002303c:\n          psVar7 = make_expr_symbol(resultP);\n          resultP->X_add_symbol = psVar7;\n          psVar7 = make_expr_symbol(&right);\n          resultP->X_op_symbol = psVar7;\n          bVar4 = resultP->field_0x11;\n          resultP->field_0x10 = (undefined1)local_84;\n          *(undefined4 *)&resultP->X_add_number = 0;\n          *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n          resultP->field_0x11 = bVar4 & 0xfc | 1;\n          goto LAB_00023089;\n        }" if (parenthesized_expression "(cVar13 == '\x02')" ( (binary_expression "cVar13 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          if (right._16_1_ == '\x02') {\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }\nLAB_0002303c:\n          psVar7 = make_expr_symbol(resultP);\n          resultP->X_add_symbol = psVar7;\n          psVar7 = make_expr_symbol(&right);\n          resultP->X_op_symbol = psVar7;\n          bVar4 = resultP->field_0x11;\n          resultP->field_0x10 = (undefined1)local_84;\n          *(undefined4 *)&resultP->X_add_number = 0;\n          *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n          resultP->field_0x11 = bVar4 & 0xfc | 1;\n          goto LAB_00023089;\n        }" { (if_statement "if (right._16_1_ == '\x02') {\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }" if (parenthesized_expression "(right._16_1_ == '\x02')" ( (binary_expression "right._16_1_ == '\x02'" (field_expression "right._16_1_" identifier . field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n            if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }\n            if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }\n          }" { (if_statement "if (right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0) {\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }\n            else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }" if (parenthesized_expression "(right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0)" ( (binary_expression "right.X_add_number._4_4_ == 0 && (uint)right.X_add_number == 0" (binary_expression "right.X_add_number._4_4_ == 0" (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier) == number_literal) && (binary_expression "(uint)right.X_add_number == 0" (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier)) == number_literal)) )) (compound_statement "{\n              if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }\n            }" { (if_statement "if (iVar20 - 0xbU < 2) {\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }" if (parenthesized_expression "(iVar20 - 0xbU < 2)" ( (binary_expression "iVar20 - 0xbU < 2" (binary_expression "iVar20 - 0xbU" identifier - number_literal) < number_literal) )) (compound_statement "{\n                pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                as_warn(pcVar10);\n              }" { (expression_statement "pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);" (assignment_expression "pcVar10 = (char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5)" identifier = (cast_expression "(char *)dcgettext(0,&UNK_0002ee06 + unaff_EDI,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,&UNK_0002ee06 + unaff_EDI,5)" identifier (argument_list "(0,&UNK_0002ee06 + unaff_EDI,5)" ( number_literal , (binary_expression "&UNK_0002ee06 + unaff_EDI" (pointer_expression "&UNK_0002ee06" & identifier) + identifier) , number_literal ))))) ;) (expression_statement "as_warn(pcVar10);" (call_expression "as_warn(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) })) }) (else_clause "else if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }" else (if_statement "if ((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)) {\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }" if (parenthesized_expression "((right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2))" ( (binary_expression "(right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)) &&\n                    (iVar20 - 0xdU < 2)" (parenthesized_expression "(right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number))" ( (binary_expression "right.X_add_number._4_4_ != 0 ||\n                      -right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)" (binary_expression "right.X_add_number._4_4_ != 0" (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier) != number_literal) || (binary_expression "-right.X_add_number._4_4_ < (uint)(0x3f < (uint)right.X_add_number)" (unary_expression "-right.X_add_number._4_4_" - (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier)) < (call_expression "(uint)(0x3f < (uint)right.X_add_number)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x3f < (uint)right.X_add_number)" ( (binary_expression "0x3f < (uint)right.X_add_number" number_literal < (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier))) ))))) )) && (parenthesized_expression "(iVar20 - 0xdU < 2)" ( (binary_expression "iVar20 - 0xdU < 2" (binary_expression "iVar20 - 0xdU" identifier - number_literal) < number_literal) ))) )) (compound_statement "{\n              pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);\n              as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);\n              *(undefined4 *)&resultP->X_add_number = 0;\n              *(undefined4 *)((int)&resultP->X_add_number + 4) = 0;\n            }" { (expression_statement "pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5);" (assignment_expression "pcVar10 = (char *)dcgettext(0,unaff_EDI + 0x2ee17,5)" identifier = (cast_expression "(char *)dcgettext(0,unaff_EDI + 0x2ee17,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,unaff_EDI + 0x2ee17,5)" identifier (argument_list "(0,unaff_EDI + 0x2ee17,5)" ( number_literal , (binary_expression "unaff_EDI + 0x2ee17" identifier + number_literal) , number_literal ))))) ;) (expression_statement "as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0);" (call_expression "as_warn_value_out_of_range(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0)" identifier (argument_list "(pcVar10,CONCAT44(uVar19,uVar14),0,0x3f,(char *)0x0,0)" ( identifier , (call_expression "CONCAT44(uVar19,uVar14)" identifier (argument_list "(uVar19,uVar14)" ( identifier , identifier ))) , number_literal , number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;) (expression_statement "*(undefined4 *)&resultP->X_add_number = 0;" (assignment_expression "*(undefined4 *)&resultP->X_add_number = 0" (pointer_expression "*(undefined4 *)&resultP->X_add_number" * (cast_expression "(undefined4 *)&resultP->X_add_number" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&resultP->X_add_number + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&resultP->X_add_number + 4) = 0" (pointer_expression "*(undefined4 *)((int)&resultP->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) })))) (if_statement "if (iVar20 - 10U < 0x13) {\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }" if (parenthesized_expression "(iVar20 - 10U < 0x13)" ( (binary_expression "iVar20 - 10U < 0x13" (binary_expression "iVar20 - 10U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();\n              return paVar6;\n            }" { comment comment (expression_statement "paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))();" (assignment_expression "paVar6 = (segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))()" identifier = (call_expression "(segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))()" (call_expression "(segT)(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219))" ( (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219)" * (cast_expression "(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219)" ( (binary_expression "*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI + 0x4b219" (binary_expression "*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4) +\n                                       unaff_EDI" (pointer_expression "*(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4)" * (cast_expression "(int *)(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4)" ( (binary_expression "unaff_EDI + 0x2f3d1 + (iVar20 - 10U) * 4" (binary_expression "unaff_EDI + 0x2f3d1" identifier + number_literal) + (binary_expression "(iVar20 - 10U) * 4" (parenthesized_expression "(iVar20 - 10U)" ( (binary_expression "iVar20 - 10U" identifier - number_literal) )) * number_literal)) )))) + identifier) + number_literal) )))) ))) (argument_list "()" ( )))) ;) (return_statement "return paVar6;" return identifier ;) })) })) (labeled_statement "LAB_0002303c:\n          psVar7 = make_expr_symbol(resultP);" statement_identifier : (expression_statement "psVar7 = make_expr_symbol(resultP);" (assignment_expression "psVar7 = make_expr_symbol(resultP)" identifier = (call_expression "make_expr_symbol(resultP)" identifier (argument_list "(resultP)" ( identifier )))) ;)) (expression_statement "resultP->X_add_symbol = psVar7;" (assignment_expression "resultP->X_add_symbol = psVar7" (field_expression "resultP->X_add_symbol" identifier -> field_identifier) = identifier) ;) (expression_statement "psVar7 = make_expr_symbol(&right);" (assignment_expression "psVar7 = make_expr_symbol(&right)" identifier = (call_expression "make_expr_symbol(&right)" identifier (argument_list "(&right)" ( (pointer_expression "&right" & identifier) )))) ;) (expression_statement "resultP->X_op_symbol = psVar7;" (assignment_expression "resultP->X_op_symbol = psVar7" (field_expression "resultP->X_op_symbol" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar4 = resultP->field_0x11;" (assignment_expression "bVar4 = resultP->field_0x11" identifier = (field_expression "resultP->field_0x11" identifier -> field_identifier)) ;) (expression_statement "resultP->field_0x10 = (undefined1)local_84;" (assignment_expression "resultP->field_0x10 = (undefined1)local_84" (field_expression "resultP->field_0x10" identifier -> field_identifier) = (cast_expression "(undefined1)local_84" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)&resultP->X_add_number = 0;" (assignment_expression "*(undefined4 *)&resultP->X_add_number = 0" (pointer_expression "*(undefined4 *)&resultP->X_add_number" * (cast_expression "(undefined4 *)&resultP->X_add_number" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&resultP->X_add_number + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&resultP->X_add_number + 4) = 0" (pointer_expression "*(undefined4 *)((int)&resultP->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "resultP->field_0x11 = bVar4 & 0xfc | 1;" (assignment_expression "resultP->field_0x11 = bVar4 & 0xfc | 1" (field_expression "resultP->field_0x11" identifier -> field_identifier) = (binary_expression "bVar4 & 0xfc | 1" (binary_expression "bVar4 & 0xfc" identifier & number_literal) | number_literal)) ;) (goto_statement "goto LAB_00023089;" goto statement_identifier ;) })) (labeled_statement "LAB_0002302e:\n        if ((cVar13 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;" statement_identifier : (if_statement "if ((cVar13 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;" if (parenthesized_expression "((cVar13 != '\x03') || (right._16_1_ != '\x03'))" ( (binary_expression "(cVar13 != '\x03') || (right._16_1_ != '\x03')" (parenthesized_expression "(cVar13 != '\x03')" ( (binary_expression "cVar13 != '\x03'" identifier != (char_literal "'\x03'" ' escape_sequence ')) )) || (parenthesized_expression "(right._16_1_ != '\x03')" ( (binary_expression "right._16_1_ != '\x03'" (field_expression "right._16_1_" identifier . field_identifier) != (char_literal "'\x03'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0002303c;" goto statement_identifier ;))) (if_statement "if (1 < iVar20 - 0x13U) {\n          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }" if (parenthesized_expression "(1 < iVar20 - 0x13U)" ( (binary_expression "1 < iVar20 - 0x13U" number_literal < (binary_expression "iVar20 - 0x13U" identifier - number_literal)) )) (compound_statement "{\n          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }" { (if_statement "if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)) {\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }" if (parenthesized_expression "((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0))" ( (binary_expression "(*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&\n              ((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)" (parenthesized_expression "(*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0)" ( (binary_expression "*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0" (binary_expression "*(int *)((int)&resultP->X_add_number + 4) == 0" (pointer_expression "*(int *)((int)&resultP->X_add_number + 4)" * (cast_expression "(int *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) )))) == number_literal) && (binary_expression "right.X_add_number._4_4_ == 0" (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier) == number_literal)) )) && (parenthesized_expression "((int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0)" ( (binary_expression "(int)resultP->X_add_number == 0 && (uint)right.X_add_number == 0" (binary_expression "(int)resultP->X_add_number == 0" (cast_expression "(int)resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (field_expression "resultP->X_add_number" identifier -> field_identifier)) == number_literal) && (binary_expression "(uint)right.X_add_number == 0" (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier)) == number_literal)) ))) )) (compound_statement "{\n            resultP->field_0x10 = (undefined1)local_84;\n            resultP->X_op_symbol = right.X_add_symbol;\n            goto LAB_00023089;\n          }" { (expression_statement "resultP->field_0x10 = (undefined1)local_84;" (assignment_expression "resultP->field_0x10 = (undefined1)local_84" (field_expression "resultP->field_0x10" identifier -> field_identifier) = (cast_expression "(undefined1)local_84" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "resultP->X_op_symbol = right.X_add_symbol;" (assignment_expression "resultP->X_op_symbol = right.X_add_symbol" (field_expression "resultP->X_op_symbol" identifier -> field_identifier) = (field_expression "right.X_add_symbol" identifier . field_identifier)) ;) (goto_statement "goto LAB_00023089;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002303c;" goto statement_identifier ;) })) (expression_statement "resultP->field_0x10 = (undefined1)local_84;" (assignment_expression "resultP->field_0x10 = (undefined1)local_84" (field_expression "resultP->field_0x10" identifier -> field_identifier) = (cast_expression "(undefined1)local_84" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "resultP->X_op_symbol = right.X_add_symbol;" (assignment_expression "resultP->X_op_symbol = right.X_add_symbol" (field_expression "resultP->X_op_symbol" identifier -> field_identifier) = (field_expression "right.X_add_symbol" identifier . field_identifier)) ;) (if_statement "if (iVar20 == 0x13) {\n          uVar14 = (uint)resultP->X_add_number;\n          uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }" if (parenthesized_expression "(iVar20 == 0x13)" ( (binary_expression "iVar20 == 0x13" identifier == number_literal) )) (compound_statement "{\n          uVar14 = (uint)resultP->X_add_number;\n          uVar19 = *(uint *)((int)&resultP->X_add_number + 4);\n          uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)\n          ;\n          *(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;\n          bVar12 = resultP->field_0x11;\n          *(uint *)((int)&resultP->X_add_number + 4) = uVar17;\n          bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;\n          if (uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }" { (expression_statement "uVar14 = (uint)resultP->X_add_number;" (assignment_expression "uVar14 = (uint)resultP->X_add_number" identifier = (cast_expression "(uint)resultP->X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "resultP->X_add_number" identifier -> field_identifier))) ;) (expression_statement "uVar19 = *(uint *)((int)&resultP->X_add_number + 4);" (assignment_expression "uVar19 = *(uint *)((int)&resultP->X_add_number + 4)" identifier = (pointer_expression "*(uint *)((int)&resultP->X_add_number + 4)" * (cast_expression "(uint *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)\n          ;" (assignment_expression "uVar17 = uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)" identifier = (binary_expression "uVar19 + right.X_add_number._4_4_ + (uint)CARRY4(uVar14,(uint)right.X_add_number)" (binary_expression "uVar19 + right.X_add_number._4_4_" identifier + (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier)) + (cast_expression "(uint)CARRY4(uVar14,(uint)right.X_add_number)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,(uint)right.X_add_number)" identifier (argument_list "(uVar14,(uint)right.X_add_number)" ( identifier , (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier)) )))))) ;) (expression_statement "*(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number;" (assignment_expression "*(uint *)&resultP->X_add_number = uVar14 + (uint)right.X_add_number" (pointer_expression "*(uint *)&resultP->X_add_number" * (cast_expression "(uint *)&resultP->X_add_number" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier)))) = (binary_expression "uVar14 + (uint)right.X_add_number" identifier + (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier)))) ;) (expression_statement "bVar12 = resultP->field_0x11;" (assignment_expression "bVar12 = resultP->field_0x11" identifier = (field_expression "resultP->field_0x11" identifier -> field_identifier)) ;) (expression_statement "*(uint *)((int)&resultP->X_add_number + 4) = uVar17;" (assignment_expression "*(uint *)((int)&resultP->X_add_number + 4) = uVar17" (pointer_expression "*(uint *)((int)&resultP->X_add_number + 4)" * (cast_expression "(uint *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1;" (assignment_expression "bVar4 = (right._17_1_ ^ bVar12) >> 1 & 1" identifier = (binary_expression "(right._17_1_ ^ bVar12) >> 1 & 1" (binary_expression "(right._17_1_ ^ bVar12) >> 1" (parenthesized_expression "(right._17_1_ ^ bVar12)" ( (binary_expression "right._17_1_ ^ bVar12" (field_expression "right._17_1_" identifier . field_identifier) ^ identifier) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))\n          goto LAB_00023820;" if (parenthesized_expression "(uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14))" ( (binary_expression "uVar17 < uVar19 ||\n              uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14)" (binary_expression "uVar17 < uVar19" identifier < identifier) || (binary_expression "uVar17 - uVar19 < (uint)(uVar14 + (uint)right.X_add_number < uVar14)" (binary_expression "uVar17 - uVar19" identifier - identifier) < (call_expression "(uint)(uVar14 + (uint)right.X_add_number < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 + (uint)right.X_add_number < uVar14)" ( (binary_expression "uVar14 + (uint)right.X_add_number < uVar14" (binary_expression "uVar14 + (uint)right.X_add_number" identifier + (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier))) < identifier) ))))) )) (goto_statement "goto LAB_00023820;" goto statement_identifier ;)) (goto_statement "goto LAB_00023823;" goto statement_identifier ;) })) (expression_statement "uVar14 = *(uint *)((int)&resultP->X_add_number + 4);" (assignment_expression "uVar14 = *(uint *)((int)&resultP->X_add_number + 4)" identifier = (pointer_expression "*(uint *)((int)&resultP->X_add_number + 4)" * (cast_expression "(uint *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar19 = (uint)resultP->X_add_number;" (assignment_expression "uVar19 = (uint)resultP->X_add_number" identifier = (cast_expression "(uint)resultP->X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "resultP->X_add_number" identifier -> field_identifier))) ;) (expression_statement "*(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number;" (assignment_expression "*(uint *)&resultP->X_add_number = uVar19 - (uint)right.X_add_number" (pointer_expression "*(uint *)&resultP->X_add_number" * (cast_expression "(uint *)&resultP->X_add_number" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier)))) = (binary_expression "uVar19 - (uint)right.X_add_number" identifier - (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier)))) ;) (expression_statement "*(uint *)((int)&resultP->X_add_number + 4) =\n             (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number);" (assignment_expression "*(uint *)((int)&resultP->X_add_number + 4) =\n             (uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number)" (pointer_expression "*(uint *)((int)&resultP->X_add_number + 4)" * (cast_expression "(uint *)((int)&resultP->X_add_number + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&resultP->X_add_number + 4)" ( (binary_expression "(int)&resultP->X_add_number + 4" (cast_expression "(int)&resultP->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&resultP->X_add_number" & (field_expression "resultP->X_add_number" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "(uVar14 - right.X_add_number._4_4_) - (uint)(uVar19 < (uint)right.X_add_number)" (parenthesized_expression "(uVar14 - right.X_add_number._4_4_)" ( (binary_expression "uVar14 - right.X_add_number._4_4_" identifier - (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier)) )) - (call_expression "(uint)(uVar19 < (uint)right.X_add_number)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < (uint)right.X_add_number)" ( (binary_expression "uVar19 < (uint)right.X_add_number" identifier < (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier))) ))))) ;) (expression_statement "bVar4 = (byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1;" (assignment_expression "bVar4 = (byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1" identifier = (binary_expression "(byte)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1" (binary_expression "(byte)(right._17_1_ ^ resultP->field_0x11) >> 1" (call_expression "(byte)(right._17_1_ ^ resultP->field_0x11)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(right._17_1_ ^ resultP->field_0x11)" ( (binary_expression "right._17_1_ ^ resultP->field_0x11" (field_expression "right._17_1_" identifier . field_identifier) ^ (field_expression "resultP->field_0x11" identifier -> field_identifier)) ))) >> number_literal) & number_literal)) ;) (if_statement "if (uVar14 < right.X_add_number._4_4_ ||\n            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)) {\n          bVar4 = bVar4 ^ 1;\n        }" if (parenthesized_expression "(uVar14 < right.X_add_number._4_4_ ||\n            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number))" ( (binary_expression "uVar14 < right.X_add_number._4_4_ ||\n            uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)" (binary_expression "uVar14 < right.X_add_number._4_4_" identifier < (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier)) || (binary_expression "uVar14 - right.X_add_number._4_4_ < (uint)(uVar19 < (uint)right.X_add_number)" (binary_expression "uVar14 - right.X_add_number._4_4_" identifier - (field_expression "right.X_add_number._4_4_" (field_expression "right.X_add_number" identifier . field_identifier) . field_identifier)) < (call_expression "(uint)(uVar19 < (uint)right.X_add_number)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < (uint)right.X_add_number)" ( (binary_expression "uVar19 < (uint)right.X_add_number" identifier < (cast_expression "(uint)right.X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "right.X_add_number" identifier . field_identifier))) ))))) )) (compound_statement "{\n          bVar4 = bVar4 ^ 1;\n        }" { (expression_statement "bVar4 = bVar4 ^ 1;" (assignment_expression "bVar4 = bVar4 ^ 1" identifier = (binary_expression "bVar4 ^ 1" identifier ^ number_literal)) ;) })) (expression_statement "resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02';" (assignment_expression "resultP->field_0x11 = resultP->field_0x11 & 0xfd | bVar4 * '\x02'" (field_expression "resultP->field_0x11" identifier -> field_identifier) = (binary_expression "resultP->field_0x11 & 0xfd | bVar4 * '\x02'" (binary_expression "resultP->field_0x11 & 0xfd" (field_expression "resultP->field_0x11" identifier -> field_identifier) & number_literal) | (binary_expression "bVar4 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;) (if_statement "if (paVar6 != local_70) goto LAB_00023093;" if (parenthesized_expression "(paVar6 != local_70)" ( (binary_expression "paVar6 != local_70" identifier != identifier) )) (goto_statement "goto LAB_00023093;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)(unaff_EDI + 0x4b1c1);" (assignment_expression "iVar9 = *(int *)(unaff_EDI + 0x4b1c1)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" * (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b1c1)" ( (binary_expression "unaff_EDI + 0x4b1c1" identifier + number_literal) ))))) ;) (if_statement "if (local_70 == (segT)(iVar9 + 0x180)) {\nLAB_00023a77:\n          paVar3 = (segT)(iVar9 + 0x180);\n          goto joined_r0x00023268;\n        }" if (parenthesized_expression "(local_70 == (segT)(iVar9 + 0x180))" ( (binary_expression "local_70 == (segT)(iVar9 + 0x180)" identifier == (call_expression "(segT)(iVar9 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(iVar9 + 0x180)" ( (binary_expression "iVar9 + 0x180" identifier + number_literal) )))) )) (compound_statement "{\nLAB_00023a77:\n          paVar3 = (segT)(iVar9 + 0x180);\n          goto joined_r0x00023268;\n        }" { (labeled_statement "LAB_00023a77:\n          paVar3 = (segT)(iVar9 + 0x180);" statement_identifier : (expression_statement "paVar3 = (segT)(iVar9 + 0x180);" (assignment_expression "paVar3 = (segT)(iVar9 + 0x180)" identifier = (call_expression "(segT)(iVar9 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(iVar9 + 0x180)" ( (binary_expression "iVar9 + 0x180" identifier + number_literal) )))) ;)) (goto_statement "goto joined_r0x00023268;" goto statement_identifier ;) })) (if_statement "if (local_70 != (segT)(iVar9 + 0xc0)) {\n          paVar3 = local_70;\n          if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))\n          goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }" if (parenthesized_expression "(local_70 != (segT)(iVar9 + 0xc0))" ( (binary_expression "local_70 != (segT)(iVar9 + 0xc0)" identifier != (call_expression "(segT)(iVar9 + 0xc0)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(iVar9 + 0xc0)" ( (binary_expression "iVar9 + 0xc0" identifier + number_literal) )))) )) (compound_statement "{\n          paVar3 = local_70;\n          if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))\n          goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }" { (expression_statement "paVar3 = local_70;" (assignment_expression "paVar3 = local_70" identifier = identifier) ;) (if_statement "if (((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))\n          goto joined_r0x00023268;" if (parenthesized_expression "(((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))))" ( (binary_expression "((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)) ||\n             ((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0)))" (parenthesized_expression "((*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70))" ( (binary_expression "(*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70) ||\n              (*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)" (parenthesized_expression "(*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70)" ( (binary_expression "*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1) == local_70" (pointer_expression "*(segT *)((int)&UINT_000548e8 + unaff_EDI + 1)" * (cast_expression "(segT *)((int)&UINT_000548e8 + unaff_EDI + 1)" ( (type_descriptor "segT *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&UINT_000548e8 + unaff_EDI + 1)" ( (binary_expression "(int)&UINT_000548e8 + unaff_EDI + 1" (binary_expression "(int)&UINT_000548e8 + unaff_EDI" (cast_expression "(int)&UINT_000548e8" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&UINT_000548e8" & identifier)) + identifier) + number_literal) )))) == identifier) )) || (parenthesized_expression "(*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70)" ( (binary_expression "*(segT *)((int)&UINT_00054838 + unaff_EDI + 1) == local_70" (pointer_expression "*(segT *)((int)&UINT_00054838 + unaff_EDI + 1)" * (cast_expression "(segT *)((int)&UINT_00054838 + unaff_EDI + 1)" ( (type_descriptor "segT *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&UINT_00054838 + unaff_EDI + 1)" ( (binary_expression "(int)&UINT_00054838 + unaff_EDI + 1" (binary_expression "(int)&UINT_00054838 + unaff_EDI" (cast_expression "(int)&UINT_00054838" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&UINT_00054838" & identifier)) + identifier) + number_literal) )))) == identifier) ))) )) || (parenthesized_expression "((iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0)))" ( (parenthesized_expression "(iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0))" ( (comma_expression "iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0), iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0)" (assignment_expression "iVar20 = S_FORCE_RELOC(resultP->X_add_symbol,0)" identifier = (call_expression "S_FORCE_RELOC(resultP->X_add_symbol,0)" identifier (argument_list "(resultP->X_add_symbol,0)" ( (field_expression "resultP->X_add_symbol" identifier -> field_identifier) , number_literal )))) , (binary_expression "iVar20 != 0 ||\n              (iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0)" (binary_expression "iVar20 != 0" identifier != number_literal) || (parenthesized_expression "(iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0)" ( (comma_expression "iVar20 = S_FORCE_RELOC(right.X_add_symbol,0), iVar20 != 0" (assignment_expression "iVar20 = S_FORCE_RELOC(right.X_add_symbol,0)" identifier = (call_expression "S_FORCE_RELOC(right.X_add_symbol,0)" identifier (argument_list "(right.X_add_symbol,0)" ( (field_expression "right.X_add_symbol" identifier . field_identifier) , number_literal )))) , (binary_expression "iVar20 != 0" identifier != number_literal)) )))) )) ))) )) (goto_statement "goto joined_r0x00023268;" goto statement_identifier ;)) (goto_statement "goto LAB_00023a77;" goto statement_identifier ;) })) (labeled_statement "LAB_00023258:\n        paVar3 = (segT)(iVar9 + 0xc0);" statement_identifier : (expression_statement "paVar3 = (segT)(iVar9 + 0xc0);" (assignment_expression "paVar3 = (segT)(iVar9 + 0xc0)" identifier = (call_expression "(segT)(iVar9 + 0xc0)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(iVar9 + 0xc0)" ( (binary_expression "iVar9 + 0xc0" identifier + number_literal) )))) ;)) }))))) (labeled_statement "joined_r0x00023268:\n      local_70 = paVar3;" statement_identifier : (expression_statement "local_70 = paVar3;" (assignment_expression "local_70 = paVar3" identifier = identifier) ;)) (if_statement "if ((local_78 == 0) ||\n         (cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78), cVar13 <= (char)rankarg)) break;" if (parenthesized_expression "((local_78 == 0) ||\n         (cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78), cVar13 <= (char)rankarg))" ( (binary_expression "(local_78 == 0) ||\n         (cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78), cVar13 <= (char)rankarg)" (parenthesized_expression "(local_78 == 0)" ( (binary_expression "local_78 == 0" identifier == number_literal) )) || (parenthesized_expression "(cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78), cVar13 <= (char)rankarg)" ( (comma_expression "cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78), cVar13 <= (char)rankarg" (assignment_expression "cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78)" identifier = (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + local_78)" * (cast_expression "(char *)(unaff_EDI + 0x4b459 + local_78)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b459 + local_78)" ( (binary_expression "unaff_EDI + 0x4b459 + local_78" (binary_expression "unaff_EDI + 0x4b459" identifier + number_literal) + identifier) ))))) , (binary_expression "cVar13 <= (char)rankarg" identifier <= (cast_expression "(char)rankarg" ( (type_descriptor "char" primitive_type) ) identifier))) ))) )) (break_statement "break;" break ;)) (expression_statement "pbVar5 = (byte *)*piVar1;" (assignment_expression "pbVar5 = (byte *)*piVar1" identifier = (cast_expression "(byte *)*piVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (expression_statement "iVar20 = local_78;" (assignment_expression "iVar20 = local_78" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_00023277:\n  if (resultP->X_add_symbol != (symbolS *)0x0) {\n    symbol_mark_used(resultP->X_add_symbol);\n  }" statement_identifier : (if_statement "if (resultP->X_add_symbol != (symbolS *)0x0) {\n    symbol_mark_used(resultP->X_add_symbol);\n  }" if (parenthesized_expression "(resultP->X_add_symbol != (symbolS *)0x0)" ( (binary_expression "resultP->X_add_symbol != (symbolS *)0x0" (field_expression "resultP->X_add_symbol" identifier -> field_identifier) != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    symbol_mark_used(resultP->X_add_symbol);\n  }" { (expression_statement "symbol_mark_used(resultP->X_add_symbol);" (call_expression "symbol_mark_used(resultP->X_add_symbol)" identifier (argument_list "(resultP->X_add_symbol)" ( (field_expression "resultP->X_add_symbol" identifier -> field_identifier) ))) ;) }))) (if_statement "if (((char)rankarg == '\0') && (mode == expr_evaluate)) {\n    resolve_expression(resultP);\n  }" if (parenthesized_expression "(((char)rankarg == '\0') && (mode == expr_evaluate))" ( (binary_expression "((char)rankarg == '\0') && (mode == expr_evaluate)" (parenthesized_expression "((char)rankarg == '\0')" ( (binary_expression "(char)rankarg == '\0'" (cast_expression "(char)rankarg" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(mode == expr_evaluate)" ( (binary_expression "mode == expr_evaluate" identifier == identifier) ))) )) (compound_statement "{\n    resolve_expression(resultP);\n  }" { (expression_statement "resolve_expression(resultP);" (call_expression "resolve_expression(resultP)" identifier (argument_list "(resultP)" ( identifier ))) ;) })) (if_statement "if (resultP->field_0x10 == '\x02') {\n    local_70 = (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180);\n  }" if (parenthesized_expression "(resultP->field_0x10 == '\x02')" ( (binary_expression "resultP->field_0x10 == '\x02'" (field_expression "resultP->field_0x10" identifier -> field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    local_70 = (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180);\n  }" { (expression_statement "local_70 = (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180);" (assignment_expression "local_70 = (segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180)" identifier = (call_expression "(segT)(*(int *)(unaff_EDI + 0x4b1c1) + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(*(int *)(unaff_EDI + 0x4b1c1) + 0x180)" ( (binary_expression "*(int *)(unaff_EDI + 0x4b1c1) + 0x180" (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" * (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b1c1)" ( (binary_expression "unaff_EDI + 0x4b1c1" identifier + number_literal) )))) + number_literal) )))) ;) })) (return_statement "return local_70;" return identifier ;) })))
(translation_unit "int FUN_00022de0(int param_1,int *param_2,int param_3)\n\n{\n  int *piVar1;\n  longlong lVar2;\n  byte bVar3;\n  byte *pbVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte bVar12;\n  char cVar13;\n  uint uVar14;\n  byte *pbVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  int unaff_EDI;\n  bool bVar19;\n  undefined8 uVar20;\n  longlong lVar21;\n  longlong lVar22;\n  int local_84;\n  int local_78;\n  int local_70;\n  int local_64;\n  uint local_3c;\n  uint local_38;\n  int local_30;\n  int local_2c;\n  uint local_28;\n  uint local_24;\n  char local_20;\n  byte local_1f;\n  undefined2 local_1e;\n  \n  FUN_0001d60d();\n  if (param_1 < 0) {\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);\n  }\n  if ((char)param_1 == '\0') {\n    uVar20 = FUN_00024d50();\n    *(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);\n  }\n  local_70 = FUN_00022310();\n  piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);\n  pbVar4 = (byte *)*piVar1;\n  uVar14 = (uint)*pbVar4;\n  if (*pbVar4 == 0x20) {\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);\n  }\n  if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;\n  if (uVar14 == 0x2d) {\nLAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;\n  }\n  else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }\n  iVar8 = *(int *)(unaff_EDI + 0x4b1c1);\n  cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84);\n  if ((char)param_1 < cVar13) {\n    do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );\n  }\nLAB_00023277:\n  if (*param_2 != 0) {\n    FUN_0003b280(*param_2);\n  }\n  if (((char)param_1 == '\0') && (param_3 == 0)) {\n    FUN_00021760(param_2);\n  }\n  if ((char)param_2[4] == '\x02') {\n    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;\n  }\n  return local_70;\n}\n\n" (function_definition "int FUN_00022de0(int param_1,int *param_2,int param_3)\n\n{\n  int *piVar1;\n  longlong lVar2;\n  byte bVar3;\n  byte *pbVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte bVar12;\n  char cVar13;\n  uint uVar14;\n  byte *pbVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  int unaff_EDI;\n  bool bVar19;\n  undefined8 uVar20;\n  longlong lVar21;\n  longlong lVar22;\n  int local_84;\n  int local_78;\n  int local_70;\n  int local_64;\n  uint local_3c;\n  uint local_38;\n  int local_30;\n  int local_2c;\n  uint local_28;\n  uint local_24;\n  char local_20;\n  byte local_1f;\n  undefined2 local_1e;\n  \n  FUN_0001d60d();\n  if (param_1 < 0) {\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);\n  }\n  if ((char)param_1 == '\0') {\n    uVar20 = FUN_00024d50();\n    *(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);\n  }\n  local_70 = FUN_00022310();\n  piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);\n  pbVar4 = (byte *)*piVar1;\n  uVar14 = (uint)*pbVar4;\n  if (*pbVar4 == 0x20) {\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);\n  }\n  if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;\n  if (uVar14 == 0x2d) {\nLAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;\n  }\n  else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }\n  iVar8 = *(int *)(unaff_EDI + 0x4b1c1);\n  cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84);\n  if ((char)param_1 < cVar13) {\n    do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );\n  }\nLAB_00023277:\n  if (*param_2 != 0) {\n    FUN_0003b280(*param_2);\n  }\n  if (((char)param_1 == '\0') && (param_3 == 0)) {\n    FUN_00021760(param_2);\n  }\n  if ((char)param_2[4] == '\x02') {\n    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;\n  }\n  return local_70;\n}" primitive_type (function_declarator "FUN_00022de0(int param_1,int *param_2,int param_3)" identifier (parameter_list "(int param_1,int *param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  longlong lVar2;\n  byte bVar3;\n  byte *pbVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte bVar12;\n  char cVar13;\n  uint uVar14;\n  byte *pbVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  int unaff_EDI;\n  bool bVar19;\n  undefined8 uVar20;\n  longlong lVar21;\n  longlong lVar22;\n  int local_84;\n  int local_78;\n  int local_70;\n  int local_64;\n  uint local_3c;\n  uint local_38;\n  int local_30;\n  int local_2c;\n  uint local_28;\n  uint local_24;\n  char local_20;\n  byte local_1f;\n  undefined2 local_1e;\n  \n  FUN_0001d60d();\n  if (param_1 < 0) {\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);\n  }\n  if ((char)param_1 == '\0') {\n    uVar20 = FUN_00024d50();\n    *(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);\n  }\n  local_70 = FUN_00022310();\n  piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);\n  pbVar4 = (byte *)*piVar1;\n  uVar14 = (uint)*pbVar4;\n  if (*pbVar4 == 0x20) {\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);\n  }\n  if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;\n  if (uVar14 == 0x2d) {\nLAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;\n  }\n  else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }\n  iVar8 = *(int *)(unaff_EDI + 0x4b1c1);\n  cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84);\n  if ((char)param_1 < cVar13) {\n    do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );\n  }\nLAB_00023277:\n  if (*param_2 != 0) {\n    FUN_0003b280(*param_2);\n  }\n  if (((char)param_1 == '\0') && (param_3 == 0)) {\n    FUN_00021760(param_2);\n  }\n  if ((char)param_2[4] == '\x02') {\n    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;\n  }\n  return local_70;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "char cVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (declaration "undefined8 uVar20;" type_identifier identifier ;) (declaration "longlong lVar21;" type_identifier identifier ;) (declaration "longlong lVar22;" type_identifier identifier ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "char local_20;" primitive_type identifier ;) (declaration "byte local_1f;" type_identifier identifier ;) (declaration "undefined2 local_1e;" type_identifier identifier ;) (expression_statement "FUN_0001d60d();" (call_expression "FUN_0001d60d()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_1 < 0) {\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);\n  }" if (parenthesized_expression "(param_1 < 0)" ( (binary_expression "param_1 < 0" identifier < number_literal) )) (compound_statement "{\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);\n  }" { (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1)" identifier (argument_list "(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) , identifier ))) ;) })) (if_statement "if ((char)param_1 == '\0') {\n    uVar20 = FUN_00024d50();\n    *(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);\n  }" if (parenthesized_expression "((char)param_1 == '\0')" ( (binary_expression "(char)param_1 == '\0'" (cast_expression "(char)param_1" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar20 = FUN_00024d50();\n    *(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);\n  }" { (expression_statement "uVar20 = FUN_00024d50();" (assignment_expression "uVar20 = FUN_00024d50()" identifier = (call_expression "FUN_00024d50()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;" (assignment_expression "*(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20" (pointer_expression "*(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1)" * (cast_expression "(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1)" ( (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1" (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI" (string_literal "".stab%c: description field \'%x\' too big, try a different debug format"" " string_content escape_sequence string_content escape_sequence string_content ") + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);" (assignment_expression "*(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI)" (pointer_expression "*(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)" * (cast_expression "(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)" ( (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11" (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI" (string_literal "".stab%c: description field \'%x\' too big, try a different debug format"" " string_content escape_sequence string_content escape_sequence string_content ") + identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(&DAT_0005497d + unaff_EDI)" * (cast_expression "(undefined4 *)(&DAT_0005497d + unaff_EDI)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0005497d + unaff_EDI)" ( (binary_expression "&DAT_0005497d + unaff_EDI" (pointer_expression "&DAT_0005497d" & identifier) + identifier) ))))) ;) })) (expression_statement "local_70 = FUN_00022310();" (assignment_expression "local_70 = FUN_00022310()" identifier = (call_expression "FUN_00022310()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);" (assignment_expression "piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19)" identifier = (cast_expression "(int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "("demand_empty_rest_of_line" + unaff_EDI + 0x19)" ( (binary_expression ""demand_empty_rest_of_line" + unaff_EDI + 0x19" (binary_expression ""demand_empty_rest_of_line" + unaff_EDI" (string_literal ""demand_empty_rest_of_line"" " string_content ") + identifier) + number_literal) )))) ;) (expression_statement "pbVar4 = (byte *)*piVar1;" (assignment_expression "pbVar4 = (byte *)*piVar1" identifier = (cast_expression "(byte *)*piVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (expression_statement "uVar14 = (uint)*pbVar4;" (assignment_expression "uVar14 = (uint)*pbVar4" identifier = (binary_expression "(uint)*pbVar4" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (*pbVar4 == 0x20) {\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);\n  }" if (parenthesized_expression "(*pbVar4 == 0x20)" ( (binary_expression "*pbVar4 == 0x20" (pointer_expression "*pbVar4" * identifier) == number_literal) )) (compound_statement "{\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);\n  }" { (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4)" identifier (argument_list "(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) , identifier ))) ;) })) (if_statement "if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14)" * (cast_expression "(char *)(unaff_EDI + 0x4b4f9 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b4f9 + uVar14)" ( (binary_expression "unaff_EDI + 0x4b4f9 + uVar14" (binary_expression "unaff_EDI + 0x4b4f9" identifier + number_literal) + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00023277;" goto statement_identifier ;)) (if_statement "if (uVar14 == 0x2d) {\nLAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;\n  }\n  else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" if (parenthesized_expression "(uVar14 == 0x2d)" ( (binary_expression "uVar14 == 0x2d" identifier == number_literal) )) (compound_statement "{\nLAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;\n  }" { (labeled_statement "LAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" statement_identifier : (expression_statement "local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" (assignment_expression "local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f459 + uVar14 * 4)" ( (binary_expression "unaff_EDI + 0x2f459 + uVar14 * 4" (binary_expression "unaff_EDI + 0x2f459" identifier + number_literal) + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;)) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;" statement_identifier : (if_statement "if (local_84 == 0) goto LAB_00023277;" if (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00023277;" goto statement_identifier ;))) }) (else_clause "else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" else (if_statement "if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" if (parenthesized_expression "(uVar14 < 0x2e)" ( (binary_expression "uVar14 < 0x2e" identifier < number_literal) )) (compound_statement "{\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }" { (if_statement "if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }" if (parenthesized_expression "(uVar14 == 0x26)" ( (binary_expression "uVar14 == 0x26" identifier == number_literal) )) (compound_statement "{\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }" { (expression_statement "local_64 = (pbVar4[1] == 0x26) + 1;" (assignment_expression "local_64 = (pbVar4[1] == 0x26) + 1" identifier = (binary_expression "(pbVar4[1] == 0x26) + 1" (parenthesized_expression "(pbVar4[1] == 0x26)" ( (binary_expression "pbVar4[1] == 0x26" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal) )) + number_literal)) ;) (expression_statement "local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;" (assignment_expression "local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12" identifier = (binary_expression "(uint)(pbVar4[1] == 0x26) * 9 + 0x12" (binary_expression "(uint)(pbVar4[1] == 0x26) * 9" (call_expression "(uint)(pbVar4[1] == 0x26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar4[1] == 0x26)" ( (binary_expression "pbVar4[1] == 0x26" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal) ))) * number_literal) + number_literal)) ;) }) (else_clause "else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }" else (compound_statement "{\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }" { (if_statement "if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;" if (parenthesized_expression "((uVar14 == 0x2b) || (uVar14 != 0x21))" ( (binary_expression "(uVar14 == 0x2b) || (uVar14 != 0x21)" (parenthesized_expression "(uVar14 == 0x2b)" ( (binary_expression "uVar14 == 0x2b" identifier == number_literal) )) || (parenthesized_expression "(uVar14 != 0x21)" ( (binary_expression "uVar14 != 0x21" identifier != number_literal) ))) )) (goto_statement "goto LAB_00023af0;" goto statement_identifier ;)) (if_statement "if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }" if (parenthesized_expression "(pbVar4[1] == 0x21)" ( (binary_expression "pbVar4[1] == 0x21" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        local_64 = 2;\n        local_84 = 0x11;\n      }" { (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_84 = 0x11;" (assignment_expression "local_84 = 0x11" identifier = number_literal) ;) }) (else_clause "else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }" else (compound_statement "{\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }" { (expression_statement "iVar8 = 0x16;" (assignment_expression "iVar8 = 0x16" identifier = number_literal) ;) (expression_statement "bVar19 = pbVar4[1] == 0x3d;" (assignment_expression "bVar19 = pbVar4[1] == 0x3d" identifier = (binary_expression "pbVar4[1] == 0x3d" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal)) ;) (expression_statement "local_84 = 0x10;" (assignment_expression "local_84 = 0x10" identifier = number_literal) ;) (labeled_statement "LAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }" statement_identifier : (if_statement "if (bVar19) {\n          local_84 = iVar8;\n        }" if (parenthesized_expression "(bVar19)" ( identifier )) (compound_statement "{\n          local_84 = iVar8;\n        }" { (expression_statement "local_84 = iVar8;" (assignment_expression "local_84 = iVar8" identifier = identifier) ;) }))) (expression_statement "local_64 = bVar19 + 1;" (assignment_expression "local_64 = bVar19 + 1" identifier = (binary_expression "bVar19 + 1" identifier + number_literal)) ;) }))) }))) }) (else_clause "else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" else (if_statement "if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" if (parenthesized_expression "(uVar14 == 0x3d)" ( (binary_expression "uVar14 == 0x3d" identifier == number_literal) )) (compound_statement "{\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }" { (if_statement "if (pbVar4[1] != 0x3d) goto LAB_00023277;" if (parenthesized_expression "(pbVar4[1] != 0x3d)" ( (binary_expression "pbVar4[1] != 0x3d" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00023277;" goto statement_identifier ;)) (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_84 = 0x15;" (assignment_expression "local_84 = 0x15" identifier = number_literal) ;) }) (else_clause "else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" else (if_statement "if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" if (parenthesized_expression "(uVar14 < 0x3e)" ( (binary_expression "uVar14 < 0x3e" identifier < number_literal) )) (compound_statement "{\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }" { (if_statement "if (uVar14 != 0x3c) goto LAB_00023af0;" if (parenthesized_expression "(uVar14 != 0x3c)" ( (binary_expression "uVar14 != 0x3c" identifier != number_literal) )) (goto_statement "goto LAB_00023af0;" goto statement_identifier ;)) (if_statement "if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }" if (parenthesized_expression "((byte)(pbVar4[1] - 0x3c) < 3)" ( (binary_expression "(byte)(pbVar4[1] - 0x3c) < 3" (call_expression "(byte)(pbVar4[1] - 0x3c)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pbVar4[1] - 0x3c)" ( (binary_expression "pbVar4[1] - 0x3c" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) - number_literal) ))) < number_literal) )) (compound_statement "{\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }" { (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);" (assignment_expression "local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4)" * (cast_expression "(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4)" ( (binary_expression "unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4" (binary_expression "unaff_EDI + 0x2f41d" identifier + number_literal) + (binary_expression "(uint)(byte)(pbVar4[1] - 0x3c) * 4" (call_expression "(uint)(byte)(pbVar4[1] - 0x3c)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(pbVar4[1] - 0x3c)" ( (binary_expression "pbVar4[1] - 0x3c" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) - number_literal) ))) * number_literal)) ))))) ;) (goto_statement "goto LAB_00023b03;" goto statement_identifier ;) })) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (expression_statement "local_84 = 0x17;" (assignment_expression "local_84 = 0x17" identifier = number_literal) ;) }) (else_clause "else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" else (if_statement "if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" if (parenthesized_expression "(uVar14 == 0x3e)" ( (binary_expression "uVar14 == 0x3e" identifier == number_literal) )) (compound_statement "{\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }" { (if_statement "if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }" if (parenthesized_expression "(pbVar4[1] != 0x3d)" ( (binary_expression "pbVar4[1] != 0x3d" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }" { (expression_statement "iVar8 = 0xe;" (assignment_expression "iVar8 = 0xe" identifier = number_literal) ;) (expression_statement "bVar19 = pbVar4[1] == 0x3e;" (assignment_expression "bVar19 = pbVar4[1] == 0x3e" identifier = (binary_expression "pbVar4[1] == 0x3e" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal)) ;) (expression_statement "local_84 = 0x1a;" (assignment_expression "local_84 = 0x1a" identifier = number_literal) ;) (goto_statement "goto LAB_00023175;" goto statement_identifier ;) })) (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_84 = 0x19;" (assignment_expression "local_84 = 0x19" identifier = number_literal) ;) }) (else_clause "else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" else (compound_statement "{\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" { (if_statement "if (uVar14 != 0x7c) goto LAB_00023af0;" if (parenthesized_expression "(uVar14 != 0x7c)" ( (binary_expression "uVar14 != 0x7c" identifier != number_literal) )) (goto_statement "goto LAB_00023af0;" goto statement_identifier ;)) (expression_statement "local_84 = 0xf;" (assignment_expression "local_84 = 0xf" identifier = number_literal) ;) (if_statement "if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }" if (parenthesized_expression "(pbVar4[1] == 0x7c)" ( (binary_expression "pbVar4[1] == 0x7c" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      local_84 = 0x1c;\n    }" { (expression_statement "local_84 = 0x1c;" (assignment_expression "local_84 = 0x1c" identifier = number_literal) ;) })) (expression_statement "local_64 = (pbVar4[1] == 0x7c) + 1;" (assignment_expression "local_64 = (pbVar4[1] == 0x7c) + 1" identifier = (binary_expression "(pbVar4[1] == 0x7c) + 1" (parenthesized_expression "(pbVar4[1] == 0x7c)" ( (binary_expression "pbVar4[1] == 0x7c" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal) )) + number_literal)) ;) }))))))))))) (expression_statement "iVar8 = *(int *)(unaff_EDI + 0x4b1c1);" (assignment_expression "iVar8 = *(int *)(unaff_EDI + 0x4b1c1)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" * (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b1c1)" ( (binary_expression "unaff_EDI + 0x4b1c1" identifier + number_literal) ))))) ;) (expression_statement "cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84);" (assignment_expression "cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84)" identifier = (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + local_84)" * (cast_expression "(char *)(unaff_EDI + 0x4b459 + local_84)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b459 + local_84)" ( (binary_expression "unaff_EDI + 0x4b459 + local_84" (binary_expression "unaff_EDI + 0x4b459" identifier + number_literal) + identifier) ))))) ;) (if_statement "if ((char)param_1 < cVar13) {\n    do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );\n  }" if (parenthesized_expression "((char)param_1 < cVar13)" ( (binary_expression "(char)param_1 < cVar13" (cast_expression "(char)param_1" ( (type_descriptor "char" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n    do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );\n  }" { (do_statement "do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );" do (compound_statement "{\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    }" { (expression_statement "*piVar1 = (int)(pbVar4 + local_64);" (assignment_expression "*piVar1 = (int)(pbVar4 + local_64)" (pointer_expression "*piVar1" * identifier) = (cast_expression "(int)(pbVar4 + local_64)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar4 + local_64)" ( (binary_expression "pbVar4 + local_64" identifier + identifier) )))) ;) (expression_statement "local_1e = 0;" (assignment_expression "local_1e = 0" identifier = number_literal) ;) (expression_statement "iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);" (assignment_expression "iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3)" identifier = (call_expression "FUN_00022de0((int)cVar13,&local_30,param_3)" identifier (argument_list "((int)cVar13,&local_30,param_3)" ( (cast_expression "(int)cVar13" ( (type_descriptor "int" primitive_type) ) identifier) , (pointer_expression "&local_30" & identifier) , identifier )))) ;) (if_statement "if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }" if (parenthesized_expression "(local_20 == '\x01')" ( (binary_expression "local_20 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }" { (expression_statement "uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);" (assignment_expression "uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5)" identifier = (call_expression "dcgettext(0,unaff_EDI + 0x2edd2,5)" identifier (argument_list "(0,unaff_EDI + 0x2edd2,5)" ( number_literal , (binary_expression "unaff_EDI + 0x2edd2" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bc10(uVar9);" (call_expression "FUN_0002bc10(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (expression_statement "local_20 = '\x02';" (assignment_expression "local_20 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) })) (expression_statement "pbVar4 = (byte *)*piVar1;" (assignment_expression "pbVar4 = (byte *)*piVar1" identifier = (cast_expression "(byte *)*piVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (expression_statement "bVar3 = *pbVar4;" (assignment_expression "bVar3 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) (expression_statement "uVar14 = (uint)bVar3;" (assignment_expression "uVar14 = (uint)bVar3" identifier = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar3 == 0x20) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }" if (parenthesized_expression "(bVar3 == 0x20)" ( (binary_expression "bVar3 == 0x20" identifier == number_literal) )) (compound_statement "{\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }" { (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d)" identifier (argument_list "(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) ))) ;) })) (expression_statement "pbVar15 = pbVar4;" (assignment_expression "pbVar15 = pbVar4" identifier = identifier) ;) (if_statement "if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }" if (parenthesized_expression "(local_84 == 0x1d)" ( (binary_expression "local_84 == 0x1d" identifier == number_literal) )) (compound_statement "{\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }" { (if_statement "if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }" if (parenthesized_expression "(bVar3 == 0x5d)" ( (binary_expression "bVar3 == 0x5d" identifier == number_literal) )) (compound_statement "{\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }" { (expression_statement "pbVar15 = pbVar4 + 1;" (assignment_expression "pbVar15 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "*piVar1 = (int)pbVar15;" (assignment_expression "*piVar1 = (int)pbVar15" (pointer_expression "*piVar1" * identifier) = (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar14 = (uint)pbVar4[1];" (assignment_expression "uVar14 = (uint)pbVar4[1]" identifier = (cast_expression "(uint)pbVar4[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar4[1]" identifier [ number_literal ]))) ;) (if_statement "if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }" if (parenthesized_expression "(pbVar4[1] == 0x20)" ( (binary_expression "pbVar4[1] == 0x20" (subscript_expression "pbVar4[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }" { (expression_statement "pbVar15 = pbVar4 + 2;" (assignment_expression "pbVar15 = pbVar4 + 2" identifier = (binary_expression "pbVar4 + 2" identifier + number_literal)) ;) (expression_statement "*piVar1 = (int)pbVar15;" (assignment_expression "*piVar1 = (int)pbVar15" (pointer_expression "*piVar1" * identifier) = (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar14 = (uint)pbVar4[2];" (assignment_expression "uVar14 = (uint)pbVar4[2]" identifier = (cast_expression "(uint)pbVar4[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar4[2]" identifier [ number_literal ]))) ;) })) }) (else_clause "else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }" else (compound_statement "{\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }" { (expression_statement "FUN_0002bcf0(unaff_EDI + 0x2edf0);" (call_expression "FUN_0002bcf0(unaff_EDI + 0x2edf0)" identifier (argument_list "(unaff_EDI + 0x2edf0)" ( (binary_expression "unaff_EDI + 0x2edf0" identifier + number_literal) ))) ;) (expression_statement "pbVar15 = (byte *)*piVar1;" (assignment_expression "pbVar15 = (byte *)*piVar1" identifier = (cast_expression "(byte *)*piVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) (expression_statement "uVar14 = (uint)*pbVar15;" (assignment_expression "uVar14 = (uint)*pbVar15" identifier = (binary_expression "(uint)*pbVar15" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }))) })) (if_statement "if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }" if (parenthesized_expression "(*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0')" ( (binary_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14)" * (cast_expression "(char *)(unaff_EDI + 0x4b4f9 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b4f9 + uVar14)" ( (binary_expression "unaff_EDI + 0x4b4f9 + uVar14" (binary_expression "unaff_EDI + 0x4b4f9" identifier + number_literal) + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }" { (if_statement "if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" if (parenthesized_expression "(uVar14 == 0x2d)" ( (binary_expression "uVar14 == 0x2d" identifier == number_literal) )) (compound_statement "{\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }" { (labeled_statement "LAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" statement_identifier : (expression_statement "local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" (assignment_expression "local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f459 + uVar14 * 4)" ( (binary_expression "unaff_EDI + 0x2f459 + uVar14 * 4" (binary_expression "unaff_EDI + 0x2f459" identifier + number_literal) + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;)) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (expression_statement "bVar19 = local_78 != 0;" (assignment_expression "bVar19 = local_78 != 0" identifier = (binary_expression "local_78 != 0" identifier != number_literal)) ;) }) (else_clause "else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" else (if_statement "if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" if (parenthesized_expression "(uVar14 < 0x2e)" ( (binary_expression "uVar14 < 0x2e" identifier < number_literal) )) (compound_statement "{\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }" { (if_statement "if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }" if (parenthesized_expression "(uVar14 == 0x26)" ( (binary_expression "uVar14 == 0x26" identifier == number_literal) )) (compound_statement "{\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }" { (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" identifier = true) ;) (expression_statement "local_64 = (pbVar15[1] == 0x26) + 1;" (assignment_expression "local_64 = (pbVar15[1] == 0x26) + 1" identifier = (binary_expression "(pbVar15[1] == 0x26) + 1" (parenthesized_expression "(pbVar15[1] == 0x26)" ( (binary_expression "pbVar15[1] == 0x26" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) == number_literal) )) + number_literal)) ;) (expression_statement "local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;" (assignment_expression "local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12" identifier = (binary_expression "(uint)(pbVar15[1] == 0x26) * 9 + 0x12" (binary_expression "(uint)(pbVar15[1] == 0x26) * 9" (call_expression "(uint)(pbVar15[1] == 0x26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar15[1] == 0x26)" ( (binary_expression "pbVar15[1] == 0x26" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) == number_literal) ))) * number_literal) + number_literal)) ;) }) (else_clause "else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }" else (compound_statement "{\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }" { (if_statement "if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;" if (parenthesized_expression "((uVar14 == 0x2b) || (uVar14 != 0x21))" ( (binary_expression "(uVar14 == 0x2b) || (uVar14 != 0x21)" (parenthesized_expression "(uVar14 == 0x2b)" ( (binary_expression "uVar14 == 0x2b" identifier == number_literal) )) || (parenthesized_expression "(uVar14 != 0x21)" ( (binary_expression "uVar14 != 0x21" identifier != number_literal) ))) )) (goto_statement "goto LAB_000235f0;" goto statement_identifier ;)) (expression_statement "bVar3 = pbVar15[1];" (assignment_expression "bVar3 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" identifier = true) ;) (if_statement "if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }" if (parenthesized_expression "(bVar3 == 0x21)" ( (binary_expression "bVar3 == 0x21" identifier == number_literal) )) (compound_statement "{\n              local_64 = 2;\n              local_78 = 0x11;\n            }" { (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_78 = 0x11;" (assignment_expression "local_78 = 0x11" identifier = number_literal) ;) }) (else_clause "else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }" else (compound_statement "{\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }" { (expression_statement "local_64 = (bVar3 == 0x3d) + 1;" (assignment_expression "local_64 = (bVar3 == 0x3d) + 1" identifier = (binary_expression "(bVar3 == 0x3d) + 1" (parenthesized_expression "(bVar3 == 0x3d)" ( (binary_expression "bVar3 == 0x3d" identifier == number_literal) )) + number_literal)) ;) (expression_statement "local_78 = 0x10;" (assignment_expression "local_78 = 0x10" identifier = number_literal) ;) (if_statement "if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }" if (parenthesized_expression "(bVar3 == 0x3d)" ( (binary_expression "bVar3 == 0x3d" identifier == number_literal) )) (compound_statement "{\n                local_78 = 0x16;\n              }" { (expression_statement "local_78 = 0x16;" (assignment_expression "local_78 = 0x16" identifier = number_literal) ;) })) }))) }))) }) (else_clause "else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" else (if_statement "if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" if (parenthesized_expression "(uVar14 == 0x3d)" ( (binary_expression "uVar14 == 0x3d" identifier == number_literal) )) (compound_statement "{\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }" { (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (if_statement "if (pbVar15[1] != 0x3d) goto LAB_00022fd4;" if (parenthesized_expression "(pbVar15[1] != 0x3d)" ( (binary_expression "pbVar15[1] != 0x3d" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00022fd4;" goto statement_identifier ;)) (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" identifier = true) ;) (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_78 = 0x15;" (assignment_expression "local_78 = 0x15" identifier = number_literal) ;) }) (else_clause "else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" else (if_statement "if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" if (parenthesized_expression "(uVar14 < 0x3e)" ( (binary_expression "uVar14 < 0x3e" identifier < number_literal) )) (compound_statement "{\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }" { (if_statement "if (uVar14 != 0x3c) goto LAB_000235f0;" if (parenthesized_expression "(uVar14 != 0x3c)" ( (binary_expression "uVar14 != 0x3c" identifier != number_literal) )) (goto_statement "goto LAB_000235f0;" goto statement_identifier ;)) (if_statement "if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }" if (parenthesized_expression "((byte)(pbVar15[1] - 0x3c) < 3)" ( (binary_expression "(byte)(pbVar15[1] - 0x3c) < 3" (call_expression "(byte)(pbVar15[1] - 0x3c)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pbVar15[1] - 0x3c)" ( (binary_expression "pbVar15[1] - 0x3c" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) - number_literal) ))) < number_literal) )) (compound_statement "{\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }" { (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);" (assignment_expression "local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" * (cast_expression "(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" ( (binary_expression "unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4" (binary_expression "unaff_EDI + 0x2f41d" identifier + number_literal) + (binary_expression "(uint)(byte)(pbVar15[1] - 0x3c) * 4" (call_expression "(uint)(byte)(pbVar15[1] - 0x3c)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(pbVar15[1] - 0x3c)" ( (binary_expression "pbVar15[1] - 0x3c" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) - number_literal) ))) * number_literal)) ))))) ;) (expression_statement "bVar19 = local_78 != 0;" (assignment_expression "bVar19 = local_78 != 0" identifier = (binary_expression "local_78 != 0" identifier != number_literal)) ;) }) (else_clause "else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }" else (compound_statement "{\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }" { (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" identifier = true) ;) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (expression_statement "local_78 = 0x17;" (assignment_expression "local_78 = 0x17" identifier = number_literal) ;) }))) }) (else_clause "else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" else (if_statement "if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" if (parenthesized_expression "(uVar14 == 0x3e)" ( (binary_expression "uVar14 == 0x3e" identifier == number_literal) )) (compound_statement "{\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }" { (expression_statement "bVar3 = pbVar15[1];" (assignment_expression "bVar3 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" identifier = true) ;) (if_statement "if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }" if (parenthesized_expression "(bVar3 == 0x3d)" ( (binary_expression "bVar3 == 0x3d" identifier == number_literal) )) (compound_statement "{\n            local_64 = 2;\n            local_78 = 0x19;\n          }" { (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" identifier = number_literal) ;) (expression_statement "local_78 = 0x19;" (assignment_expression "local_78 = 0x19" identifier = number_literal) ;) }) (else_clause "else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }" else (compound_statement "{\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }" { (expression_statement "local_64 = (bVar3 == 0x3e) + 1;" (assignment_expression "local_64 = (bVar3 == 0x3e) + 1" identifier = (binary_expression "(bVar3 == 0x3e) + 1" (parenthesized_expression "(bVar3 == 0x3e)" ( (binary_expression "bVar3 == 0x3e" identifier == number_literal) )) + number_literal)) ;) (expression_statement "local_78 = 0x1a;" (assignment_expression "local_78 = 0x1a" identifier = number_literal) ;) (if_statement "if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }" if (parenthesized_expression "(bVar3 == 0x3e)" ( (binary_expression "bVar3 == 0x3e" identifier == number_literal) )) (compound_statement "{\n              local_78 = 0xe;\n            }" { (expression_statement "local_78 = 0xe;" (assignment_expression "local_78 = 0xe" identifier = number_literal) ;) })) }))) }) (else_clause "else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" else (compound_statement "{\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" { (if_statement "if (uVar14 != 0x7c) goto LAB_000235f0;" if (parenthesized_expression "(uVar14 != 0x7c)" ( (binary_expression "uVar14 != 0x7c" identifier != number_literal) )) (goto_statement "goto LAB_000235f0;" goto statement_identifier ;)) (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" identifier = true) ;) (expression_statement "local_64 = (pbVar15[1] == 0x7c) + 1;" (assignment_expression "local_64 = (pbVar15[1] == 0x7c) + 1" identifier = (binary_expression "(pbVar15[1] == 0x7c) + 1" (parenthesized_expression "(pbVar15[1] == 0x7c)" ( (binary_expression "pbVar15[1] == 0x7c" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) == number_literal) )) + number_literal)) ;) (expression_statement "local_78 = 0xf;" (assignment_expression "local_78 = 0xf" identifier = number_literal) ;) (if_statement "if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }" if (parenthesized_expression "(pbVar15[1] == 0x7c)" ( (binary_expression "pbVar15[1] == 0x7c" (subscript_expression "pbVar15[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            local_78 = 0x1c;\n          }" { (expression_statement "local_78 = 0x1c;" (assignment_expression "local_78 = 0x1c" identifier = number_literal) ;) })) }))))))))))) (if_statement "if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }" if (parenthesized_expression "(((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))" ( (binary_expression "((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78))" (parenthesized_expression "((local_84 != 0x1d) && (bVar19))" ( (binary_expression "(local_84 != 0x1d) && (bVar19)" (parenthesized_expression "(local_84 != 0x1d)" ( (binary_expression "local_84 != 0x1d" identifier != number_literal) )) && (parenthesized_expression "(bVar19)" ( identifier ))) )) && (parenthesized_expression "(*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78))" ( (binary_expression "*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)" (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + local_84)" * (cast_expression "(char *)(unaff_EDI + 0x4b459 + local_84)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b459 + local_84)" ( (binary_expression "unaff_EDI + 0x4b459 + local_84" (binary_expression "unaff_EDI + 0x4b459" identifier + number_literal) + identifier) )))) < (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + local_78)" * (cast_expression "(char *)(unaff_EDI + 0x4b459 + local_78)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b459 + local_78)" ( (binary_expression "unaff_EDI + 0x4b459 + local_78" (binary_expression "unaff_EDI + 0x4b459" identifier + number_literal) + identifier) ))))) ))) )) (compound_statement "{\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }" { (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d)" identifier (argument_list "(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) ))) ;) })) }) (else_clause "else {\n        local_64 = 1;\n        local_78 = 0;\n      }" else (compound_statement "{\n        local_64 = 1;\n        local_78 = 0;\n      }" { (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" identifier = number_literal) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00022fd4:\n      if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }" statement_identifier : (if_statement "if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }" if (parenthesized_expression "(local_84 < 10)" ( (binary_expression "local_84 < 10" identifier < number_literal) )) (compound_statement "{\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }" { (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d)" identifier (argument_list "(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) ))) ;) }))) (if_statement "if (0x1d < local_84) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }" if (parenthesized_expression "(0x1d < local_84)" ( (binary_expression "0x1d < local_84" number_literal < identifier) )) (compound_statement "{\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }" { (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d)" identifier (argument_list "(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d)" ( (binary_expression "unaff_EDI + 0x2ed1d" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x2f43d" identifier + number_literal) ))) ;) })) (if_statement "if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }" if (parenthesized_expression "((char)param_2[4] == '\x06')" ( (binary_expression "(char)param_2[4] == '\x06'" (cast_expression "(char)param_2[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[4]" identifier [ number_literal ])) == (char_literal "'\x06'" ' escape_sequence ')) )) (compound_statement "{\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }" { (if_statement "if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }" if (parenthesized_expression "(-param_2[3] < (int)(uint)(param_2[2] != 0))" ( (binary_expression "-param_2[3] < (int)(uint)(param_2[2] != 0)" (unary_expression "-param_2[3]" - (subscript_expression "param_2[3]" identifier [ number_literal ])) < (cast_expression "(int)(uint)(param_2[2] != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(param_2[2] != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2[2] != 0)" ( (binary_expression "param_2[2] != 0" (subscript_expression "param_2[2]" identifier [ number_literal ]) != number_literal) ))))) )) (compound_statement "{\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }" { (expression_statement "iVar6 = unaff_EDI + 0x2ef8d;" (assignment_expression "iVar6 = unaff_EDI + 0x2ef8d" identifier = (binary_expression "unaff_EDI + 0x2ef8d" identifier + number_literal)) ;) }) (else_clause "else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }" else (compound_statement "{\n          iVar6 = unaff_EDI + 0x2efb9;\n        }" { (expression_statement "iVar6 = unaff_EDI + 0x2efb9;" (assignment_expression "iVar6 = unaff_EDI + 0x2efb9" identifier = (binary_expression "unaff_EDI + 0x2efb9" identifier + number_literal)) ;) }))) (expression_statement "uVar9 = dcgettext(0,iVar6,5);" (assignment_expression "uVar9 = dcgettext(0,iVar6,5)" identifier = (call_expression "dcgettext(0,iVar6,5)" identifier (argument_list "(0,iVar6,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0002bc10(uVar9);" (call_expression "FUN_0002bc10(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (expression_statement "*(undefined1 *)(param_2 + 4) = 2;" (assignment_expression "*(undefined1 *)(param_2 + 4) = 2" (pointer_expression "*(undefined1 *)(param_2 + 4)" * (cast_expression "(undefined1 *)(param_2 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_2[2] = 0;" (assignment_expression "param_2[2] = 0" (subscript_expression "param_2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[3] = 0;" (assignment_expression "param_2[3] = 0" (subscript_expression "param_2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "param_2[1] = 0;" (assignment_expression "param_2[1] = 0" (subscript_expression "param_2[1]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar6 = iVar5;" (assignment_expression "iVar6 = iVar5" identifier = identifier) ;) (if_statement "if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }" if (parenthesized_expression "(local_20 == '\x06')" ( (binary_expression "local_20 == '\x06'" identifier == (char_literal "'\x06'" ' escape_sequence ')) )) (compound_statement "{\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }" { (if_statement "if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }" if (parenthesized_expression "((int)-local_24 < (int)(uint)(local_28 != 0))" ( (binary_expression "(int)-local_24 < (int)(uint)(local_28 != 0)" (cast_expression "(int)-local_24" ( (type_descriptor "int" primitive_type) ) (unary_expression "-local_24" - identifier)) < (cast_expression "(int)(uint)(local_28 != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(local_28 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_28 != 0)" ( (binary_expression "local_28 != 0" identifier != number_literal) ))))) )) (compound_statement "{\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }" { (expression_statement "puVar7 = (undefined *)(unaff_EDI + 0x2efe5);" (assignment_expression "puVar7 = (undefined *)(unaff_EDI + 0x2efe5)" identifier = (cast_expression "(undefined *)(unaff_EDI + 0x2efe5)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2efe5)" ( (binary_expression "unaff_EDI + 0x2efe5" identifier + number_literal) )))) ;) }) (else_clause "else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }" else (compound_statement "{\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }" { (expression_statement "puVar7 = &UNK_0002f015 + unaff_EDI;" (assignment_expression "puVar7 = &UNK_0002f015 + unaff_EDI" identifier = (binary_expression "&UNK_0002f015 + unaff_EDI" (pointer_expression "&UNK_0002f015" & identifier) + identifier)) ;) }))) (expression_statement "uVar9 = dcgettext(0,puVar7,5);" (assignment_expression "uVar9 = dcgettext(0,puVar7,5)" identifier = (call_expression "dcgettext(0,puVar7,5)" identifier (argument_list "(0,puVar7,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0002bc10(uVar9);" (call_expression "FUN_0002bc10(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (expression_statement "local_20 = '\x02';" (assignment_expression "local_20 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (if_statement "if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }" if (parenthesized_expression "(local_84 == 0x13)" ( (binary_expression "local_84 == 0x13" identifier == number_literal) )) (compound_statement "{\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }" { (expression_statement "bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;" (assignment_expression "bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1" identifier = (binary_expression "(*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1" (binary_expression "(*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1" (parenthesized_expression "(*(byte *)((int)param_2 + 0x11) ^ local_1f)" ( (binary_expression "*(byte *)((int)param_2 + 0x11) ^ local_1f" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ^ identifier) )) >> number_literal) & number_literal)) ;) (labeled_statement "LAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';" statement_identifier : (expression_statement "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "bVar3 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;)) }) (else_clause "else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }" else (compound_statement "{\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }" { (if_statement "if (local_84 != 0x14) goto LAB_0002301a;" if (parenthesized_expression "(local_84 != 0x14)" ( (binary_expression "local_84 != 0x14" identifier != number_literal) )) (goto_statement "goto LAB_0002301a;" goto statement_identifier ;)) (labeled_statement "LAB_0002337b:\n          uVar14 = param_2[3];" statement_identifier : (expression_statement "uVar14 = param_2[3];" (assignment_expression "uVar14 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;)) (expression_statement "uVar17 = param_2[2];" (assignment_expression "uVar17 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "param_2[2] = uVar17 - local_28;" (assignment_expression "param_2[2] = uVar17 - local_28" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar17 - local_28" identifier - identifier)) ;) (expression_statement "param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);" (assignment_expression "param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28)" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "(uVar14 - local_24) - (uint)(uVar17 < local_28)" (parenthesized_expression "(uVar14 - local_24)" ( (binary_expression "uVar14 - local_24" identifier - identifier) )) - (call_expression "(uint)(uVar17 < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < local_28)" ( (binary_expression "uVar17 < local_28" identifier < identifier) ))))) ;) (expression_statement "bVar3 = *(byte *)((int)param_2 + 0x11);" (assignment_expression "bVar3 = *(byte *)((int)param_2 + 0x11)" identifier = (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar12 = (local_1f ^ bVar3) >> 1 & 1;" (assignment_expression "bVar12 = (local_1f ^ bVar3) >> 1 & 1" identifier = (binary_expression "(local_1f ^ bVar3) >> 1 & 1" (binary_expression "(local_1f ^ bVar3) >> 1" (parenthesized_expression "(local_1f ^ bVar3)" ( (binary_expression "local_1f ^ bVar3" identifier ^ identifier) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }" if (parenthesized_expression "(uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28))" ( (binary_expression "uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)" (binary_expression "uVar14 < local_24" identifier < identifier) || (binary_expression "uVar14 - local_24 < (uint)(uVar17 < local_28)" (binary_expression "uVar14 - local_24" identifier - identifier) < (call_expression "(uint)(uVar17 < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < local_28)" ( (binary_expression "uVar17 < local_28" identifier < identifier) ))))) )) (compound_statement "{\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }" { (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar3 & 0xfd | (bVar12 ^ 1) * '\x02'" (binary_expression "bVar3 & 0xfd" identifier & number_literal) | (binary_expression "(bVar12 ^ 1) * '\x02'" (parenthesized_expression "(bVar12 ^ 1)" ( (binary_expression "bVar12 ^ 1" identifier ^ number_literal) )) * (char_literal "'\x02'" ' escape_sequence ')))) ;) }) (else_clause "else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }" else (compound_statement "{\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }" { (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar3 & 0xfd | bVar12 * '\x02'" (binary_expression "bVar3 & 0xfd" identifier & number_literal) | (binary_expression "bVar12 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;) }))) }))) (labeled_statement "LAB_00023089:\n        iVar6 = local_70;" statement_identifier : (expression_statement "iVar6 = local_70;" (assignment_expression "iVar6 = local_70" identifier = identifier) ;)) (if_statement "if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }" if (parenthesized_expression "(iVar5 != local_70)" ( (binary_expression "iVar5 != local_70" identifier != identifier) )) (compound_statement "{\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }" { (labeled_statement "LAB_00023093:\n          iVar10 = iVar8;" statement_identifier : (expression_statement "iVar10 = iVar8;" (assignment_expression "iVar10 = iVar8" identifier = identifier) ;)) (if_statement "if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;" if (parenthesized_expression "((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0))" ( (binary_expression "(local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)" (parenthesized_expression "(local_70 == iVar8 + 0xc0)" ( (binary_expression "local_70 == iVar8 + 0xc0" identifier == (binary_expression "iVar8 + 0xc0" identifier + number_literal)) )) || (parenthesized_expression "(iVar5 == iVar8 + 0xc0)" ( (binary_expression "iVar5 == iVar8 + 0xc0" identifier == (binary_expression "iVar8 + 0xc0" identifier + number_literal)) ))) )) (goto_statement "goto LAB_00023258;" goto statement_identifier ;)) (expression_statement "iVar6 = local_70;" (assignment_expression "iVar6 = local_70" identifier = identifier) ;) (if_statement "if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }" if (parenthesized_expression "(((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14))" ( (binary_expression "((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)" (parenthesized_expression "((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180))))))" ( (binary_expression "(*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))" (parenthesized_expression "(*(int *)(&DAT_00054839 + unaff_EDI) != local_70)" ( (binary_expression "*(int *)(&DAT_00054839 + unaff_EDI) != local_70" (pointer_expression "*(int *)(&DAT_00054839 + unaff_EDI)" * (cast_expression "(int *)(&DAT_00054839 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00054839 + unaff_EDI)" ( (binary_expression "&DAT_00054839 + unaff_EDI" (pointer_expression "&DAT_00054839" & identifier) + identifier) )))) != identifier) )) && (parenthesized_expression "((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))" ( (parenthesized_expression "(((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180))))" ( (binary_expression "((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))" (parenthesized_expression "((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5))" ( (binary_expression "(iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)" (parenthesized_expression "(iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70))" ( (comma_expression "iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)" (assignment_expression "iVar6 = iVar5" identifier = identifier) , (binary_expression "*(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)" (binary_expression "*(int *)(&DAT_00054839 + unaff_EDI) != iVar5" (pointer_expression "*(int *)(&DAT_00054839 + unaff_EDI)" * (cast_expression "(int *)(&DAT_00054839 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00054839 + unaff_EDI)" ( (binary_expression "&DAT_00054839 + unaff_EDI" (pointer_expression "&DAT_00054839" & identifier) + identifier) )))) != identifier) && (parenthesized_expression "(iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)" ( (comma_expression "iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70" (assignment_expression "iVar6 = local_70" identifier = identifier) , (binary_expression "*(int *)(&DAT_000548e9 + unaff_EDI) != local_70" (pointer_expression "*(int *)(&DAT_000548e9 + unaff_EDI)" * (cast_expression "(int *)(&DAT_000548e9 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000548e9 + unaff_EDI)" ( (binary_expression "&DAT_000548e9 + unaff_EDI" (pointer_expression "&DAT_000548e9" & identifier) + identifier) )))) != identifier)) )))) )) && (parenthesized_expression "(iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)" ( (comma_expression "iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5" (assignment_expression "iVar6 = iVar5" identifier = identifier) , (binary_expression "*(int *)(&DAT_000548e9 + unaff_EDI) != iVar5" (pointer_expression "*(int *)(&DAT_000548e9 + unaff_EDI)" * (cast_expression "(int *)(&DAT_000548e9 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000548e9 + unaff_EDI)" ( (binary_expression "&DAT_000548e9 + unaff_EDI" (pointer_expression "&DAT_000548e9" & identifier) + identifier) )))) != identifier)) ))) )) && (parenthesized_expression "((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))" ( (parenthesized_expression "(iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180))" ( (comma_expression "iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)" (assignment_expression "iVar6 = local_70" identifier = identifier) , (binary_expression "iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)" (binary_expression "iVar5 != iVar8 + 0x180" identifier != (binary_expression "iVar8 + 0x180" identifier + number_literal)) && (parenthesized_expression "(iVar6 = iVar5, local_70 != iVar8 + 0x180)" ( (comma_expression "iVar6 = iVar5, local_70 != iVar8 + 0x180" (assignment_expression "iVar6 = iVar5" identifier = identifier) , (binary_expression "local_70 != iVar8 + 0x180" identifier != (binary_expression "iVar8 + 0x180" identifier + number_literal))) )))) )) ))) )) ))) )) && (parenthesized_expression "(iVar6 = local_70, local_84 != 0x14)" ( (comma_expression "iVar6 = local_70, local_84 != 0x14" (assignment_expression "iVar6 = local_70" identifier = identifier) , (binary_expression "local_84 != 0x14" identifier != number_literal)) ))) )) (compound_statement "{\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }" { (expression_statement "uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);" (assignment_expression "uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5)" identifier = (call_expression "dcgettext(0,unaff_EDI + 0x2f041,5)" identifier (argument_list "(0,unaff_EDI + 0x2f041,5)" ( number_literal , (binary_expression "unaff_EDI + 0x2f041" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002bcf0(uVar9);" (call_expression "FUN_0002bcf0(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) })) }) (else_clause "else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }" else (if_statement "if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }" if (parenthesized_expression "(local_84 == 0x13)" ( (binary_expression "local_84 == 0x13" identifier == number_literal) )) (compound_statement "{\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }" { (if_statement "if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }" if (parenthesized_expression "(local_20 == '\x02')" ( (binary_expression "local_20 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }" { (expression_statement "uVar14 = param_2[3];" (assignment_expression "uVar14 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = param_2[2];" (assignment_expression "uVar17 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);" (assignment_expression "uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28)" identifier = (binary_expression "uVar14 + local_24 + (uint)CARRY4(uVar17,local_28)" (binary_expression "uVar14 + local_24" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar17,local_28)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar17,local_28)" identifier (argument_list "(uVar17,local_28)" ( identifier , identifier )))))) ;) (expression_statement "param_2[2] = uVar17 + local_28;" (assignment_expression "param_2[2] = uVar17 + local_28" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar17 + local_28" identifier + identifier)) ;) (expression_statement "bVar12 = *(byte *)((int)param_2 + 0x11);" (assignment_expression "bVar12 = *(byte *)((int)param_2 + 0x11)" identifier = (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "param_2[3] = uVar16;" (assignment_expression "param_2[3] = uVar16" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar3 = (local_1f ^ bVar12) >> 1 & 1;" (assignment_expression "bVar3 = (local_1f ^ bVar12) >> 1 & 1" identifier = (binary_expression "(local_1f ^ bVar12) >> 1 & 1" (binary_expression "(local_1f ^ bVar12) >> 1" (parenthesized_expression "(local_1f ^ bVar12)" ( (binary_expression "local_1f ^ bVar12" identifier ^ identifier) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;" if (parenthesized_expression "(uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)" ( (binary_expression "uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14" (binary_expression "uVar14 <= uVar16" identifier <= identifier) && (binary_expression "(uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14" (call_expression "(uint)(uVar17 + local_28 < uVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 + local_28 < uVar17)" ( (binary_expression "uVar17 + local_28 < uVar17" (binary_expression "uVar17 + local_28" identifier + identifier) < identifier) ))) <= (binary_expression "uVar16 - uVar14" identifier - identifier))) )) (goto_statement "goto LAB_000237b4;" goto statement_identifier ;)) (labeled_statement "LAB_00023820:\n          bVar3 = bVar3 ^ 1;" statement_identifier : (expression_statement "bVar3 = bVar3 ^ 1;" (assignment_expression "bVar3 = bVar3 ^ 1" identifier = (binary_expression "bVar3 ^ 1" identifier ^ number_literal)) ;)) (labeled_statement "LAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';" statement_identifier : (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar12 & 0xfd | bVar3 * '\x02'" (binary_expression "bVar12 & 0xfd" identifier & number_literal) | (binary_expression "bVar3 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;)) (goto_statement "goto LAB_00023089;" goto statement_identifier ;) })) (expression_statement "cVar13 = (char)param_2[4];" (assignment_expression "cVar13 = (char)param_2[4]" identifier = (cast_expression "(char)param_2[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[4]" identifier [ number_literal ]))) ;) (if_statement "if (cVar13 != '\x02') goto LAB_0002302e;" if (parenthesized_expression "(cVar13 != '\x02')" ( (binary_expression "cVar13 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002302e;" goto statement_identifier ;)) (expression_statement "uVar14 = param_2[3];" (assignment_expression "uVar14 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "bVar3 = *(byte *)((int)param_2 + 0x11);" (assignment_expression "bVar3 = *(byte *)((int)param_2 + 0x11)" identifier = (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)(param_2 + 4) = local_20;" (assignment_expression "*(char *)(param_2 + 4) = local_20" (pointer_expression "*(char *)(param_2 + 4)" * (cast_expression "(char *)(param_2 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_2 = local_30;" (assignment_expression "*param_2 = local_30" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "param_2[1] = local_2c;" (assignment_expression "param_2[1] = local_2c" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar17 = param_2[2];" (assignment_expression "uVar17 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);" (assignment_expression "uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28)" identifier = (binary_expression "uVar14 + local_24 + (uint)CARRY4(uVar17,local_28)" (binary_expression "uVar14 + local_24" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar17,local_28)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar17,local_28)" identifier (argument_list "(uVar17,local_28)" ( identifier , identifier )))))) ;) (expression_statement "param_2[2] = uVar17 + local_28;" (assignment_expression "param_2[2] = uVar17 + local_28" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar17 + local_28" identifier + identifier)) ;) (expression_statement "param_2[3] = uVar16;" (assignment_expression "param_2[3] = uVar16" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar12 = (bVar3 ^ local_1f) >> 1 & 1;" (assignment_expression "bVar12 = (bVar3 ^ local_1f) >> 1 & 1" identifier = (binary_expression "(bVar3 ^ local_1f) >> 1 & 1" (binary_expression "(bVar3 ^ local_1f) >> 1" (parenthesized_expression "(bVar3 ^ local_1f)" ( (binary_expression "bVar3 ^ local_1f" identifier ^ identifier) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }" if (parenthesized_expression "(uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17))" ( (binary_expression "uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)" (binary_expression "uVar16 < uVar14" identifier < identifier) || (binary_expression "uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)" (binary_expression "uVar16 - uVar14" identifier - identifier) < (call_expression "(uint)(uVar17 + local_28 < uVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 + local_28 < uVar17)" ( (binary_expression "uVar17 + local_28 < uVar17" (binary_expression "uVar17 + local_28" identifier + identifier) < identifier) ))))) )) (compound_statement "{\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }" { (expression_statement "*(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;" (assignment_expression "*(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(bVar12 ^ 1) * '\x02' | bVar3 & 0xfd" (binary_expression "(bVar12 ^ 1) * '\x02'" (parenthesized_expression "(bVar12 ^ 1)" ( (binary_expression "bVar12 ^ 1" identifier ^ number_literal) )) * (char_literal "'\x02'" ' escape_sequence ')) | (binary_expression "bVar3 & 0xfd" identifier & number_literal))) ;) }) (else_clause "else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }" else (compound_statement "{\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }" { (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar12 * '\x02' | bVar3 & 0xfd" (binary_expression "bVar12 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')) | (binary_expression "bVar3 & 0xfd" identifier & number_literal))) ;) }))) }) (else_clause "else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }" else (compound_statement "{\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }" { (if_statement "if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }" if (parenthesized_expression "(local_84 == 0x14)" ( (binary_expression "local_84 == 0x14" identifier == number_literal) )) (compound_statement "{\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }" { (if_statement "if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }" if (parenthesized_expression "(local_20 == '\x03')" ( (binary_expression "local_20 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }" { (if_statement "if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;" if (parenthesized_expression "(((char)param_2[4] != '\x03') || (iVar5 != local_70))" ( (binary_expression "((char)param_2[4] != '\x03') || (iVar5 != local_70)" (parenthesized_expression "((char)param_2[4] != '\x03')" ( (binary_expression "(char)param_2[4] != '\x03'" (cast_expression "(char)param_2[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[4]" identifier [ number_literal ])) != (char_literal "'\x03'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar5 != local_70)" ( (binary_expression "iVar5 != local_70" identifier != identifier) ))) )) (goto_statement "goto LAB_0002301a;" goto statement_identifier ;)) (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }" if (parenthesized_expression "(((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5))" ( (binary_expression "((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)" (parenthesized_expression "((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5))))" ( (binary_expression "(iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))" (parenthesized_expression "(iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0)" ( (binary_expression "iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0" identifier == (binary_expression "*(int *)(unaff_EDI + 0x4b1c1) + 0xc0" (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" * (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b1c1)" ( (binary_expression "unaff_EDI + 0x4b1c1" identifier + number_literal) )))) + number_literal)) )) || (parenthesized_expression "((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))" ( (parenthesized_expression "(iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5))" ( (binary_expression "iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)" (binary_expression "iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180" identifier == (binary_expression "*(int *)(unaff_EDI + 0x4b1c1) + 0x180" (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" * (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b1c1)" ( (binary_expression "unaff_EDI + 0x4b1c1" identifier + number_literal) )))) + number_literal)) || (parenthesized_expression "(*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)" ( (binary_expression "*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5" (pointer_expression "*(int *)(&DAT_000548e9 + unaff_EDI)" * (cast_expression "(int *)(&DAT_000548e9 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000548e9 + unaff_EDI)" ( (binary_expression "&DAT_000548e9 + unaff_EDI" (pointer_expression "&DAT_000548e9" & identifier) + identifier) )))) == identifier) ))) )) ))) )) || (parenthesized_expression "(*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)" ( (binary_expression "*(int *)(&DAT_00054839 + unaff_EDI) == iVar5" (pointer_expression "*(int *)(&DAT_00054839 + unaff_EDI)" * (cast_expression "(int *)(&DAT_00054839 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00054839 + unaff_EDI)" ( (binary_expression "&DAT_00054839 + unaff_EDI" (pointer_expression "&DAT_00054839" & identifier) + identifier) )))) == identifier) ))) )) (compound_statement "{\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }" { (labeled_statement "LAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;" statement_identifier : (if_statement "if (local_30 != iVar6) goto LAB_000236cb;" if (parenthesized_expression "(local_30 != iVar6)" ( (binary_expression "local_30 != iVar6" identifier != identifier) )) (goto_statement "goto LAB_000236cb;" goto statement_identifier ;))) }) (else_clause "else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }" else (compound_statement "{\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }" { (expression_statement "iVar6 = FUN_00038140(iVar6,0);" (assignment_expression "iVar6 = FUN_00038140(iVar6,0)" identifier = (call_expression "FUN_00038140(iVar6,0)" identifier (argument_list "(iVar6,0)" ( identifier , number_literal )))) ;) (if_statement "if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }" if (parenthesized_expression "((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 )" ( (binary_expression "(iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)" ( (comma_expression "iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0" (assignment_expression "iVar10 = FUN_00038140(local_30,0)" identifier = (call_expression "FUN_00038140(local_30,0)" identifier (argument_list "(local_30,0)" ( identifier , number_literal )))) , (comma_expression "iVar6 = local_30, iVar10 != 0" (assignment_expression "iVar6 = local_30" identifier = identifier) , (binary_expression "iVar10 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }" { (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (goto_statement "goto LAB_000236bc;" goto statement_identifier ;) })) }))) (expression_statement "uVar9 = FUN_0003b250(iVar6);" (assignment_expression "uVar9 = FUN_0003b250(iVar6)" identifier = (call_expression "FUN_0003b250(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "uVar11 = FUN_0003b250(*param_2);" (assignment_expression "uVar11 = FUN_0003b250(*param_2)" identifier = (call_expression "FUN_0003b250(*param_2)" identifier (argument_list "(*param_2)" ( (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);" (assignment_expression "iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c)" identifier = (call_expression "FUN_00024e60(uVar11,uVar9,&local_3c)" identifier (argument_list "(uVar11,uVar9,&local_3c)" ( identifier , identifier , (pointer_expression "&local_3c" & identifier) )))) ;) (if_statement "if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }" { (expression_statement "lVar21 = FUN_00039de0(*param_2);" (assignment_expression "lVar21 = FUN_00039de0(*param_2)" identifier = (call_expression "FUN_00039de0(*param_2)" identifier (argument_list "(*param_2)" ( (pointer_expression "*param_2" * identifier) )))) ;) (expression_statement "lVar22 = FUN_00039de0(local_30);" (assignment_expression "lVar22 = FUN_00039de0(local_30)" identifier = (call_expression "FUN_00039de0(local_30)" identifier (argument_list "(local_30)" ( identifier )))) ;) (expression_statement "uVar14 = param_2[2];" (assignment_expression "uVar14 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = param_2[3];" (assignment_expression "uVar17 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar14 - local_28;" (assignment_expression "uVar16 = uVar14 - local_28" identifier = (binary_expression "uVar14 - local_28" identifier - identifier)) ;) (expression_statement "uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);" (assignment_expression "uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28)" identifier = (binary_expression "(uVar17 - local_24) - (uint)(uVar14 < local_28)" (parenthesized_expression "(uVar17 - local_24)" ( (binary_expression "uVar17 - local_24" identifier - identifier) )) - (call_expression "(uint)(uVar14 < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < local_28)" ( (binary_expression "uVar14 < local_28" identifier < identifier) ))))) ;) (expression_statement "param_2[2] = uVar16;" (assignment_expression "param_2[2] = uVar16" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[3] = uVar18;" (assignment_expression "param_2[3] = uVar18" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;" (assignment_expression "bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1" identifier = (binary_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1" (binary_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1" (parenthesized_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11))" ( (binary_expression "local_1f ^ *(byte *)((int)param_2 + 0x11)" identifier ^ (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }" if (parenthesized_expression "(uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28))" ( (binary_expression "uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)" (binary_expression "uVar17 < local_24" identifier < identifier) || (binary_expression "uVar17 - local_24 < (uint)(uVar14 < local_28)" (binary_expression "uVar17 - local_24" identifier - identifier) < (call_expression "(uint)(uVar14 < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < local_28)" ( (binary_expression "uVar14 < local_28" identifier < identifier) ))))) )) (compound_statement "{\n                bVar3 = bVar3 ^ 1;\n              }" { (expression_statement "bVar3 = bVar3 ^ 1;" (assignment_expression "bVar3 = bVar3 ^ 1" identifier = (binary_expression "bVar3 ^ 1" identifier ^ number_literal)) ;) })) (expression_statement "*(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "bVar3 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;) (expression_statement "uVar14 = uVar16 - local_3c;" (assignment_expression "uVar14 = uVar16 - local_3c" identifier = (binary_expression "uVar16 - local_3c" identifier - identifier)) ;) (expression_statement "uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);" (assignment_expression "uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c)" identifier = (binary_expression "(uVar18 - local_38) - (uint)(uVar16 < local_3c)" (parenthesized_expression "(uVar18 - local_38)" ( (binary_expression "uVar18 - local_38" identifier - identifier) )) - (call_expression "(uint)(uVar16 < local_3c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < local_3c)" ( (binary_expression "uVar16 < local_3c" identifier < identifier) ))))) ;) (expression_statement "param_2[2] = uVar14;" (assignment_expression "param_2[2] = uVar14" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[3] = uVar17;" (assignment_expression "param_2[3] = uVar17" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }" if (parenthesized_expression "(uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c))" ( (binary_expression "uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)" (binary_expression "uVar18 < local_38" identifier < identifier) || (binary_expression "uVar18 - local_38 < (uint)(uVar16 < local_3c)" (binary_expression "uVar18 - local_38" identifier - identifier) < (call_expression "(uint)(uVar16 < local_3c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < local_3c)" ( (binary_expression "uVar16 < local_3c" identifier < identifier) ))))) )) (compound_statement "{\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }" { (expression_statement "bVar3 = bVar3 ^ 1;" (assignment_expression "bVar3 = bVar3 ^ 1" identifier = (binary_expression "bVar3 ^ 1" identifier ^ number_literal)) ;) (expression_statement "bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';" (assignment_expression "bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" identifier = (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "bVar3 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;) (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar12;" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar12" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }" else (compound_statement "{\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }" { (expression_statement "bVar12 = *(byte *)((int)param_2 + 0x11);" (assignment_expression "bVar12 = *(byte *)((int)param_2 + 0x11)" identifier = (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);" (assignment_expression "lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14)" identifier = (binary_expression "(lVar21 - lVar22) + CONCAT44(uVar17,uVar14)" (parenthesized_expression "(lVar21 - lVar22)" ( (binary_expression "lVar21 - lVar22" identifier - identifier) )) + (call_expression "CONCAT44(uVar17,uVar14)" identifier (argument_list "(uVar17,uVar14)" ( identifier , identifier ))))) ;) (expression_statement "uVar16 = (uint)((ulonglong)lVar2 >> 0x20);" (assignment_expression "uVar16 = (uint)((ulonglong)lVar2 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(longlong *)(param_2 + 2) = lVar2;" (assignment_expression "*(longlong *)(param_2 + 2) = lVar2" (pointer_expression "*(longlong *)(param_2 + 2)" * (cast_expression "(longlong *)(param_2 + 2)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 2)" ( (binary_expression "param_2 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);" (assignment_expression "bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f)" identifier = (binary_expression "bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f)" identifier ^ (call_expression "(byte)((ulonglong)(lVar21 - lVar22) >> 0x3f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)(lVar21 - lVar22) >> 0x3f)" ( (binary_expression "(ulonglong)(lVar21 - lVar22) >> 0x3f" (call_expression "(ulonglong)(lVar21 - lVar22)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar21 - lVar22)" ( (binary_expression "lVar21 - lVar22" identifier - identifier) ))) >> number_literal) ))))) ;) (if_statement "if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }" if (parenthesized_expression "(uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14))" ( (binary_expression "uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)" (binary_expression "uVar16 < uVar17" identifier < identifier) || (binary_expression "uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)" (binary_expression "uVar16 - uVar17" identifier - identifier) < (call_expression "(uint)((uint)lVar2 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)lVar2 < uVar14)" ( (binary_expression "(uint)lVar2 < uVar14" (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))))) )) (compound_statement "{\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }" { (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar12 & 0xfd | (bVar3 ^ 1) * '\x02'" (binary_expression "bVar12 & 0xfd" identifier & number_literal) | (binary_expression "(bVar3 ^ 1) * '\x02'" (parenthesized_expression "(bVar3 ^ 1)" ( (binary_expression "bVar3 ^ 1" identifier ^ number_literal) )) * (char_literal "'\x02'" ' escape_sequence ')))) ;) }) (else_clause "else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }" else (compound_statement "{\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }" { (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "bVar12 & 0xfd | bVar3 * '\x02'" (binary_expression "bVar12 & 0xfd" identifier & number_literal) | (binary_expression "bVar3 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;) }))) (expression_statement "*(undefined1 *)(param_2 + 4) = 2;" (assignment_expression "*(undefined1 *)(param_2 + 4) = 2" (pointer_expression "*(undefined1 *)(param_2 + 4)" * (cast_expression "(undefined1 *)(param_2 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "iVar6 = local_70;" (assignment_expression "iVar6 = local_70" identifier = identifier) ;) (goto_statement "goto joined_r0x00023268;" goto statement_identifier ;) })) })) (labeled_statement "LAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;" statement_identifier : (if_statement "if (local_20 == '\x02') goto LAB_0002337b;" if (parenthesized_expression "(local_20 == '\x02')" ( (binary_expression "local_20 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002337b;" goto statement_identifier ;))) })) (labeled_statement "LAB_0002301a:\n        uVar17 = local_24;" statement_identifier : (expression_statement "uVar17 = local_24;" (assignment_expression "uVar17 = local_24" identifier = identifier) ;)) (expression_statement "uVar14 = local_28;" (assignment_expression "uVar14 = local_28" identifier = identifier) ;) (expression_statement "cVar13 = (char)param_2[4];" (assignment_expression "cVar13 = (char)param_2[4]" identifier = (cast_expression "(char)param_2[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[4]" identifier [ number_literal ]))) ;) (if_statement "if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }" if (parenthesized_expression "(cVar13 == '\x02')" ( (binary_expression "cVar13 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }" { (if_statement "if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }" if (parenthesized_expression "(local_20 == '\x02')" ( (binary_expression "local_20 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }" { (if_statement "if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }" if (parenthesized_expression "(local_24 == 0 && local_28 == 0)" ( (binary_expression "local_24 == 0 && local_28 == 0" (binary_expression "local_24 == 0" identifier == number_literal) && (binary_expression "local_28 == 0" identifier == number_literal)) )) (compound_statement "{\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }" { (if_statement "if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }" if (parenthesized_expression "(local_84 - 0xbU < 2)" ( (binary_expression "local_84 - 0xbU < 2" (binary_expression "local_84 - 0xbU" identifier - number_literal) < number_literal) )) (compound_statement "{\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }" { (expression_statement "uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);" (assignment_expression "uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5)" identifier = (call_expression "dcgettext(0,&UNK_0002ee06 + unaff_EDI,5)" identifier (argument_list "(0,&UNK_0002ee06 + unaff_EDI,5)" ( number_literal , (binary_expression "&UNK_0002ee06 + unaff_EDI" (pointer_expression "&UNK_0002ee06" & identifier) + identifier) , number_literal )))) ;) (expression_statement "FUN_0002bc10(uVar9);" (call_expression "FUN_0002bc10(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) }) (else_clause "else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }" else (if_statement "if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }" if (parenthesized_expression "((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    )" ( (binary_expression "(local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)" (parenthesized_expression "(local_24 != 0 || -local_24 < (uint)(0x3f < local_28))" ( (binary_expression "local_24 != 0 || -local_24 < (uint)(0x3f < local_28)" (binary_expression "local_24 != 0" identifier != number_literal) || (binary_expression "-local_24 < (uint)(0x3f < local_28)" (unary_expression "-local_24" - identifier) < (call_expression "(uint)(0x3f < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x3f < local_28)" ( (binary_expression "0x3f < local_28" number_literal < identifier) ))))) )) && (parenthesized_expression "(local_84 - 0xdU < 2)" ( (binary_expression "local_84 - 0xdU < 2" (binary_expression "local_84 - 0xdU" identifier - number_literal) < number_literal) ))) )) (compound_statement "{\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }" { (expression_statement "uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);" (assignment_expression "uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5)" identifier = (call_expression "dcgettext(0,unaff_EDI + 0x2ee17,5)" identifier (argument_list "(0,unaff_EDI + 0x2ee17,5)" ( number_literal , (binary_expression "unaff_EDI + 0x2ee17" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);" (call_expression "FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0)" identifier (argument_list "(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0)" ( identifier , identifier , identifier , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal ))) ;) (expression_statement "param_2[2] = 0;" (assignment_expression "param_2[2] = 0" (subscript_expression "param_2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[3] = 0;" (assignment_expression "param_2[3] = 0" (subscript_expression "param_2[3]" identifier [ number_literal ]) = number_literal) ;) })))) (if_statement "if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }" if (parenthesized_expression "(local_84 - 10U < 0x13)" ( (binary_expression "local_84 - 10U < 0x13" (binary_expression "local_84 - 10U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }" { (expression_statement "iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();" (assignment_expression "iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))()" identifier = (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))" ( (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219)" * (cast_expression "(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219)" ( (binary_expression "*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219" (binary_expression "*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI" (pointer_expression "*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4)" * (cast_expression "(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4)" ( (binary_expression "unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4" (binary_expression "unaff_EDI + 0x2f3d1" identifier + number_literal) + (binary_expression "(local_84 - 10U) * 4" (parenthesized_expression "(local_84 - 10U)" ( (binary_expression "local_84 - 10U" identifier - number_literal) )) * number_literal)) )))) + identifier) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar8;" return identifier ;) })) })) (labeled_statement "LAB_0002303c:\n          iVar6 = FUN_00021360(param_2);" statement_identifier : (expression_statement "iVar6 = FUN_00021360(param_2);" (assignment_expression "iVar6 = FUN_00021360(param_2)" identifier = (call_expression "FUN_00021360(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;)) (expression_statement "*param_2 = iVar6;" (assignment_expression "*param_2 = iVar6" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "iVar6 = FUN_00021360(&local_30);" (assignment_expression "iVar6 = FUN_00021360(&local_30)" identifier = (call_expression "FUN_00021360(&local_30)" identifier (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) )))) ;) (expression_statement "param_2[1] = iVar6;" (assignment_expression "param_2[1] = iVar6" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(param_2 + 4) = (undefined1)local_84;" (assignment_expression "*(undefined1 *)(param_2 + 4) = (undefined1)local_84" (pointer_expression "*(undefined1 *)(param_2 + 4)" * (cast_expression "(undefined1 *)(param_2 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = (cast_expression "(undefined1)local_84" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "param_2[2] = 0;" (assignment_expression "param_2[2] = 0" (subscript_expression "param_2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[3] = 0;" (assignment_expression "param_2[3] = 0" (subscript_expression "param_2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;" (assignment_expression "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfc | 1" (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfc" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | number_literal)) ;) (goto_statement "goto LAB_00023089;" goto statement_identifier ;) })) (labeled_statement "LAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;" statement_identifier : (if_statement "if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;" if (parenthesized_expression "((cVar13 != '\x03') || (local_20 != '\x03'))" ( (binary_expression "(cVar13 != '\x03') || (local_20 != '\x03')" (parenthesized_expression "(cVar13 != '\x03')" ( (binary_expression "cVar13 != '\x03'" identifier != (char_literal "'\x03'" ' escape_sequence ')) )) || (parenthesized_expression "(local_20 != '\x03')" ( (binary_expression "local_20 != '\x03'" identifier != (char_literal "'\x03'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0002303c;" goto statement_identifier ;))) (if_statement "if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }" if (parenthesized_expression "(1 < local_84 - 0x13U)" ( (binary_expression "1 < local_84 - 0x13U" number_literal < (binary_expression "local_84 - 0x13U" identifier - number_literal)) )) (compound_statement "{\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }" { (if_statement "if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }" if (parenthesized_expression "((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0))" ( (binary_expression "(param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)" (parenthesized_expression "(param_2[3] == 0 && local_24 == 0)" ( (binary_expression "param_2[3] == 0 && local_24 == 0" (binary_expression "param_2[3] == 0" (subscript_expression "param_2[3]" identifier [ number_literal ]) == number_literal) && (binary_expression "local_24 == 0" identifier == number_literal)) )) && (parenthesized_expression "(param_2[2] == 0 && local_28 == 0)" ( (binary_expression "param_2[2] == 0 && local_28 == 0" (binary_expression "param_2[2] == 0" (subscript_expression "param_2[2]" identifier [ number_literal ]) == number_literal) && (binary_expression "local_28 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }" { (expression_statement "*(undefined1 *)(param_2 + 4) = (undefined1)local_84;" (assignment_expression "*(undefined1 *)(param_2 + 4) = (undefined1)local_84" (pointer_expression "*(undefined1 *)(param_2 + 4)" * (cast_expression "(undefined1 *)(param_2 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = (cast_expression "(undefined1)local_84" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "param_2[1] = local_30;" (assignment_expression "param_2[1] = local_30" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_00023089;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002303c;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)(param_2 + 4) = (undefined1)local_84;" (assignment_expression "*(undefined1 *)(param_2 + 4) = (undefined1)local_84" (pointer_expression "*(undefined1 *)(param_2 + 4)" * (cast_expression "(undefined1 *)(param_2 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) = (cast_expression "(undefined1)local_84" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "param_2[1] = local_30;" (assignment_expression "param_2[1] = local_30" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }" if (parenthesized_expression "(local_84 == 0x13)" ( (binary_expression "local_84 == 0x13" identifier == number_literal) )) (compound_statement "{\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }" { (expression_statement "uVar14 = param_2[2];" (assignment_expression "uVar14 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = param_2[3];" (assignment_expression "uVar17 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);" (assignment_expression "uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28)" identifier = (binary_expression "uVar17 + local_24 + (uint)CARRY4(uVar14,local_28)" (binary_expression "uVar17 + local_24" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar14,local_28)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,local_28)" identifier (argument_list "(uVar14,local_28)" ( identifier , identifier )))))) ;) (expression_statement "param_2[2] = uVar14 + local_28;" (assignment_expression "param_2[2] = uVar14 + local_28" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar14 + local_28" identifier + identifier)) ;) (expression_statement "bVar12 = *(byte *)((int)param_2 + 0x11);" (assignment_expression "bVar12 = *(byte *)((int)param_2 + 0x11)" identifier = (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "param_2[3] = uVar16;" (assignment_expression "param_2[3] = uVar16" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar3 = (local_1f ^ bVar12) >> 1 & 1;" (assignment_expression "bVar3 = (local_1f ^ bVar12) >> 1 & 1" identifier = (binary_expression "(local_1f ^ bVar12) >> 1 & 1" (binary_expression "(local_1f ^ bVar12) >> 1" (parenthesized_expression "(local_1f ^ bVar12)" ( (binary_expression "local_1f ^ bVar12" identifier ^ identifier) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;" if (parenthesized_expression "(uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))" ( (binary_expression "uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14)" (binary_expression "uVar16 < uVar17" identifier < identifier) || (binary_expression "uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14)" (binary_expression "uVar16 - uVar17" identifier - identifier) < (call_expression "(uint)(uVar14 + local_28 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 + local_28 < uVar14)" ( (binary_expression "uVar14 + local_28 < uVar14" (binary_expression "uVar14 + local_28" identifier + identifier) < identifier) ))))) )) (goto_statement "goto LAB_00023820;" goto statement_identifier ;)) (goto_statement "goto LAB_00023823;" goto statement_identifier ;) })) (expression_statement "uVar14 = param_2[3];" (assignment_expression "uVar14 = param_2[3]" identifier = (subscript_expression "param_2[3]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = param_2[2];" (assignment_expression "uVar17 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "param_2[2] = uVar17 - local_28;" (assignment_expression "param_2[2] = uVar17 - local_28" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar17 - local_28" identifier - identifier)) ;) (expression_statement "param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);" (assignment_expression "param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28)" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "(uVar14 - local_24) - (uint)(uVar17 < local_28)" (parenthesized_expression "(uVar14 - local_24)" ( (binary_expression "uVar14 - local_24" identifier - identifier) )) - (call_expression "(uint)(uVar17 < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < local_28)" ( (binary_expression "uVar17 < local_28" identifier < identifier) ))))) ;) (expression_statement "bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;" (assignment_expression "bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1" identifier = (binary_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1" (binary_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1" (parenthesized_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11))" ( (binary_expression "local_1f ^ *(byte *)((int)param_2 + 0x11)" identifier ^ (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) >> number_literal) & number_literal)) ;) (if_statement "if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }" if (parenthesized_expression "(uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28))" ( (binary_expression "uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)" (binary_expression "uVar14 < local_24" identifier < identifier) || (binary_expression "uVar14 - local_24 < (uint)(uVar17 < local_28)" (binary_expression "uVar14 - local_24" identifier - identifier) < (call_expression "(uint)(uVar17 < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < local_28)" ( (binary_expression "uVar17 < local_28" identifier < identifier) ))))) )) (compound_statement "{\n          bVar3 = bVar3 ^ 1;\n        }" { (expression_statement "bVar3 = bVar3 ^ 1;" (assignment_expression "bVar3 = bVar3 ^ 1" identifier = (binary_expression "bVar3 ^ 1" identifier ^ number_literal)) ;) })) (expression_statement "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" * (cast_expression "(byte *)((int)param_2 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x11)" ( (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | (binary_expression "bVar3 * '\x02'" identifier * (char_literal "'\x02'" ' escape_sequence ')))) ;) (if_statement "if (iVar5 != local_70) goto LAB_00023093;" if (parenthesized_expression "(iVar5 != local_70)" ( (binary_expression "iVar5 != local_70" identifier != identifier) )) (goto_statement "goto LAB_00023093;" goto statement_identifier ;)) (expression_statement "iVar10 = *(int *)(unaff_EDI + 0x4b1c1);" (assignment_expression "iVar10 = *(int *)(unaff_EDI + 0x4b1c1)" identifier = (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" * (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b1c1)" ( (binary_expression "unaff_EDI + 0x4b1c1" identifier + number_literal) ))))) ;) (if_statement "if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }" if (parenthesized_expression "(local_70 == iVar10 + 0x180)" ( (binary_expression "local_70 == iVar10 + 0x180" identifier == (binary_expression "iVar10 + 0x180" identifier + number_literal)) )) (compound_statement "{\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }" { (labeled_statement "LAB_00023a77:\n          iVar6 = iVar10 + 0x180;" statement_identifier : (expression_statement "iVar6 = iVar10 + 0x180;" (assignment_expression "iVar6 = iVar10 + 0x180" identifier = (binary_expression "iVar10 + 0x180" identifier + number_literal)) ;)) (goto_statement "goto joined_r0x00023268;" goto statement_identifier ;) })) (if_statement "if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }" if (parenthesized_expression "(local_70 != iVar10 + 0xc0)" ( (binary_expression "local_70 != iVar10 + 0xc0" identifier != (binary_expression "iVar10 + 0xc0" identifier + number_literal)) )) (compound_statement "{\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }" { (expression_statement "iVar6 = local_70;" (assignment_expression "iVar6 = local_70" identifier = identifier) ;) (if_statement "if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;" if (parenthesized_expression "(((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0))))" ( (binary_expression "((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))" (parenthesized_expression "((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70))" ( (binary_expression "(*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)" (parenthesized_expression "(*(int *)(&DAT_000548e9 + unaff_EDI) == local_70)" ( (binary_expression "*(int *)(&DAT_000548e9 + unaff_EDI) == local_70" (pointer_expression "*(int *)(&DAT_000548e9 + unaff_EDI)" * (cast_expression "(int *)(&DAT_000548e9 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000548e9 + unaff_EDI)" ( (binary_expression "&DAT_000548e9 + unaff_EDI" (pointer_expression "&DAT_000548e9" & identifier) + identifier) )))) == identifier) )) || (parenthesized_expression "(*(int *)(&DAT_00054839 + unaff_EDI) == local_70)" ( (binary_expression "*(int *)(&DAT_00054839 + unaff_EDI) == local_70" (pointer_expression "*(int *)(&DAT_00054839 + unaff_EDI)" * (cast_expression "(int *)(&DAT_00054839 + unaff_EDI)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00054839 + unaff_EDI)" ( (binary_expression "&DAT_00054839 + unaff_EDI" (pointer_expression "&DAT_00054839" & identifier) + identifier) )))) == identifier) ))) )) || (parenthesized_expression "((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))" ( (parenthesized_expression "(iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0))" ( (comma_expression "iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)" (assignment_expression "iVar5 = FUN_00038140(*param_2,0)" identifier = (call_expression "FUN_00038140(*param_2,0)" identifier (argument_list "(*param_2,0)" ( (pointer_expression "*param_2" * identifier) , number_literal )))) , (binary_expression "iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)" (binary_expression "iVar5 != 0" identifier != number_literal) || (parenthesized_expression "(iVar5 = FUN_00038140(local_30,0), iVar5 != 0)" ( (comma_expression "iVar5 = FUN_00038140(local_30,0), iVar5 != 0" (assignment_expression "iVar5 = FUN_00038140(local_30,0)" identifier = (call_expression "FUN_00038140(local_30,0)" identifier (argument_list "(local_30,0)" ( identifier , number_literal )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) )))) )) ))) )) (goto_statement "goto joined_r0x00023268;" goto statement_identifier ;)) (goto_statement "goto LAB_00023a77;" goto statement_identifier ;) })) (labeled_statement "LAB_00023258:\n        iVar6 = iVar10 + 0xc0;" statement_identifier : (expression_statement "iVar6 = iVar10 + 0xc0;" (assignment_expression "iVar6 = iVar10 + 0xc0" identifier = (binary_expression "iVar10 + 0xc0" identifier + number_literal)) ;)) }))))) (labeled_statement "joined_r0x00023268:\n      local_70 = iVar6;" statement_identifier : (expression_statement "local_70 = iVar6;" (assignment_expression "local_70 = iVar6" identifier = identifier) ;)) (if_statement "if (local_78 == 0) break;" if (parenthesized_expression "(local_78 == 0)" ( (binary_expression "local_78 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_84 = local_78;" (assignment_expression "local_84 = local_78" identifier = identifier) ;) (expression_statement "cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);" (assignment_expression "cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78)" identifier = (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + local_78)" * (cast_expression "(char *)(unaff_EDI + 0x4b459 + local_78)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b459 + local_78)" ( (binary_expression "unaff_EDI + 0x4b459 + local_78" (binary_expression "unaff_EDI + 0x4b459" identifier + number_literal) + identifier) ))))) ;) (if_statement "if (cVar13 <= (char)param_1) break;" if (parenthesized_expression "(cVar13 <= (char)param_1)" ( (binary_expression "cVar13 <= (char)param_1" identifier <= (cast_expression "(char)param_1" ( (type_descriptor "char" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "pbVar4 = (byte *)*piVar1;" (assignment_expression "pbVar4 = (byte *)*piVar1" identifier = (cast_expression "(byte *)*piVar1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_00023277:\n  if (*param_2 != 0) {\n    FUN_0003b280(*param_2);\n  }" statement_identifier : (if_statement "if (*param_2 != 0) {\n    FUN_0003b280(*param_2);\n  }" if (parenthesized_expression "(*param_2 != 0)" ( (binary_expression "*param_2 != 0" (pointer_expression "*param_2" * identifier) != number_literal) )) (compound_statement "{\n    FUN_0003b280(*param_2);\n  }" { (expression_statement "FUN_0003b280(*param_2);" (call_expression "FUN_0003b280(*param_2)" identifier (argument_list "(*param_2)" ( (pointer_expression "*param_2" * identifier) ))) ;) }))) (if_statement "if (((char)param_1 == '\0') && (param_3 == 0)) {\n    FUN_00021760(param_2);\n  }" if (parenthesized_expression "(((char)param_1 == '\0') && (param_3 == 0))" ( (binary_expression "((char)param_1 == '\0') && (param_3 == 0)" (parenthesized_expression "((char)param_1 == '\0')" ( (binary_expression "(char)param_1 == '\0'" (cast_expression "(char)param_1" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    FUN_00021760(param_2);\n  }" { (expression_statement "FUN_00021760(param_2);" (call_expression "FUN_00021760(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) })) (if_statement "if ((char)param_2[4] == '\x02') {\n    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;\n  }" if (parenthesized_expression "((char)param_2[4] == '\x02')" ( (binary_expression "(char)param_2[4] == '\x02'" (cast_expression "(char)param_2[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[4]" identifier [ number_literal ])) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;\n  }" { (expression_statement "local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;" (assignment_expression "local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180" identifier = (binary_expression "*(int *)(unaff_EDI + 0x4b1c1) + 0x180" (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" * (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x4b1c1)" ( (binary_expression "unaff_EDI + 0x4b1c1" identifier + number_literal) )))) + number_literal)) ;) })) (return_statement "return local_70;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (string_literal " string_content escape_sequence string_content escape_sequence string_content ") + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (string_literal " string_content escape_sequence string_content escape_sequence string_content ") + IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (string_literal " string_content ") + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (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 (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) * LIT) + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) ))) * LIT)) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) + LIT)) ;) }))))))))))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) }) (else_clause else (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 = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) * LIT) + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) ))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))))))))))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( IDENT ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (unary_expression - (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (unary_expression - IDENT)) < (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ^ IDENT) )) >> LIT) & LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) | (binary_expression IDENT * (char_literal ' escape_sequence ')))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) >> LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ LIT) )) * (char_literal ' escape_sequence ')))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | (binary_expression IDENT * (char_literal ' escape_sequence ')))) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == (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 (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) != IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) != IDENT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) != IDENT)) )))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) != IDENT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT != (binary_expression IDENT + LIT)) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (binary_expression IDENT + LIT))) )))) )) ))) )) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) >> LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) ))) <= (binary_expression IDENT - IDENT))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ LIT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | (binary_expression IDENT * (char_literal ' escape_sequence ')))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) >> LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ LIT) )) * (char_literal ' escape_sequence ')) | (binary_expression IDENT & LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression IDENT * (char_literal ' escape_sequence ')) | (binary_expression IDENT & LIT))) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (pointer_expression & IDENT) + IDENT) )))) == IDENT) ))) )) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) == IDENT) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & 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) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) >> LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) | (binary_expression IDENT * (char_literal ' escape_sequence ')))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) | (binary_expression IDENT * (char_literal ' escape_sequence ')))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - IDENT) ))) >> LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ LIT) )) * (char_literal ' escape_sequence ')))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | (binary_expression IDENT * (char_literal ' escape_sequence ')))) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression (pointer_expression & IDENT) + IDENT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression (unary_expression - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , LIT , LIT , LIT , LIT , LIT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) )))) + IDENT) + LIT) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) | LIT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (binary_expression IDENT == LIT)) )) && (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) >> LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) ))))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) >> LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) | (binary_expression IDENT * (char_literal ' escape_sequence ')))) ;) (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 IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) == IDENT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) == IDENT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , LIT )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) , (binary_expression IDENT != LIT)) )))) )) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }))))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (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 (binary_expression IDENT + LIT) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (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)) ;) })) (return_statement return IDENT ;) })))
(function_definition "int FUN_00022de0(int param_1,int *param_2,int param_3)\n\n{\n  int *piVar1;\n  longlong lVar2;\n  byte bVar3;\n  byte *pbVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte bVar12;\n  char cVar13;\n  uint uVar14;\n  byte *pbVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  int unaff_EDI;\n  bool bVar19;\n  undefined8 uVar20;\n  longlong lVar21;\n  longlong lVar22;\n  int local_84;\n  int local_78;\n  int local_70;\n  int local_64;\n  uint local_3c;\n  uint local_38;\n  int local_30;\n  int local_2c;\n  uint local_28;\n  uint local_24;\n  char local_20;\n  byte local_1f;\n  undefined2 local_1e;\n  \n  FUN_0001d60d();\n  if (param_1 < 0) {\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);\n  }\n  if ((char)param_1 == '\0') {\n    uVar20 = FUN_00024d50();\n    *(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);\n  }\n  local_70 = FUN_00022310();\n  piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);\n  pbVar4 = (byte *)*piVar1;\n  uVar14 = (uint)*pbVar4;\n  if (*pbVar4 == 0x20) {\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);\n  }\n  if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;\n  if (uVar14 == 0x2d) {\nLAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;\n  }\n  else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }\n  iVar8 = *(int *)(unaff_EDI + 0x4b1c1);\n  cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84);\n  if ((char)param_1 < cVar13) {\n    do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );\n  }\nLAB_00023277:\n  if (*param_2 != 0) {\n    FUN_0003b280(*param_2);\n  }\n  if (((char)param_1 == '\0') && (param_3 == 0)) {\n    FUN_00021760(param_2);\n  }\n  if ((char)param_2[4] == '\x02') {\n    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;\n  }\n  return local_70;\n}" (primitive_type "int") (function_declarator "FUN_00022de0(int param_1,int *param_2,int param_3)" (identifier "FUN_00022de0") (parameter_list "(int param_1,int *param_2,int param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  int *piVar1;\n  longlong lVar2;\n  byte bVar3;\n  byte *pbVar4;\n  int iVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte bVar12;\n  char cVar13;\n  uint uVar14;\n  byte *pbVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  int unaff_EDI;\n  bool bVar19;\n  undefined8 uVar20;\n  longlong lVar21;\n  longlong lVar22;\n  int local_84;\n  int local_78;\n  int local_70;\n  int local_64;\n  uint local_3c;\n  uint local_38;\n  int local_30;\n  int local_2c;\n  uint local_28;\n  uint local_24;\n  char local_20;\n  byte local_1f;\n  undefined2 local_1e;\n  \n  FUN_0001d60d();\n  if (param_1 < 0) {\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);\n  }\n  if ((char)param_1 == '\0') {\n    uVar20 = FUN_00024d50();\n    *(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);\n  }\n  local_70 = FUN_00022310();\n  piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);\n  pbVar4 = (byte *)*piVar1;\n  uVar14 = (uint)*pbVar4;\n  if (*pbVar4 == 0x20) {\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);\n  }\n  if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;\n  if (uVar14 == 0x2d) {\nLAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;\n  }\n  else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }\n  iVar8 = *(int *)(unaff_EDI + 0x4b1c1);\n  cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84);\n  if ((char)param_1 < cVar13) {\n    do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );\n  }\nLAB_00023277:\n  if (*param_2 != 0) {\n    FUN_0003b280(*param_2);\n  }\n  if (((char)param_1 == '\0') && (param_3 == 0)) {\n    FUN_00021760(param_2);\n  }\n  if ((char)param_2[4] == '\x02') {\n    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;\n  }\n  return local_70;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "longlong lVar2;" (type_identifier "longlong") (identifier "lVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "byte bVar12;" (type_identifier "byte") (identifier "bVar12") (; ";")) (declaration "char cVar13;" (primitive_type "char") (identifier "cVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "bool bVar19;" (primitive_type "bool") (identifier "bVar19") (; ";")) (declaration "undefined8 uVar20;" (type_identifier "undefined8") (identifier "uVar20") (; ";")) (declaration "longlong lVar21;" (type_identifier "longlong") (identifier "lVar21") (; ";")) (declaration "longlong lVar22;" (type_identifier "longlong") (identifier "lVar22") (; ";")) (declaration "int local_84;" (primitive_type "int") (identifier "local_84") (; ";")) (declaration "int local_78;" (primitive_type "int") (identifier "local_78") (; ";")) (declaration "int local_70;" (primitive_type "int") (identifier "local_70") (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (declaration "uint local_24;" (type_identifier "uint") (identifier "local_24") (; ";")) (declaration "char local_20;" (primitive_type "char") (identifier "local_20") (; ";")) (declaration "byte local_1f;" (type_identifier "byte") (identifier "local_1f") (; ";")) (declaration "undefined2 local_1e;" (type_identifier "undefined2") (identifier "local_1e") (; ";")) (expression_statement "FUN_0001d60d();" (call_expression "FUN_0001d60d()" (identifier "FUN_0001d60d") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (param_1 < 0) {\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);\n  }" (if "if") (parenthesized_expression "(param_1 < 0)" (( "(") (binary_expression "param_1 < 0" (identifier "param_1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);\n  }" ({ "{") (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1)" (identifier "FUN_0002be10") (argument_list "(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1)" (( "(") (binary_expression "unaff_EDI + 0x2ed1d" (identifier "unaff_EDI") (+ "+") (number_literal "0x2ed1d")) (, ",") (number_literal "0x6dc") (, ",") (binary_expression "unaff_EDI + 0x2f43d" (identifier "unaff_EDI") (+ "+") (number_literal "0x2f43d")) (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (if_statement "if ((char)param_1 == '\0') {\n    uVar20 = FUN_00024d50();\n    *(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);\n  }" (if "if") (parenthesized_expression "((char)param_1 == '\0')" (( "(") (binary_expression "(char)param_1 == '\0'" (cast_expression "(char)param_1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_1")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    uVar20 = FUN_00024d50();\n    *(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;\n    *(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);\n  }" ({ "{") (expression_statement "uVar20 = FUN_00024d50();" (assignment_expression "uVar20 = FUN_00024d50()" (identifier "uVar20") (= "=") (call_expression "FUN_00024d50()" (identifier "FUN_00024d50") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20;" (assignment_expression "*(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =\n         uVar20" (pointer_expression "*(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1)" (* "*") (cast_expression "(undefined8 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1)" (( "(") (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1" (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI" (string_literal "".stab%c: description field \'%x\' too big, try a different debug format"" (" """) (string_content ".stab%c: description field ") (escape_sequence "\'") (string_content "%x") (escape_sequence "\'") (string_content " too big, try a different debug format") (" """)) (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "1")) () ")")))) (= "=") (identifier "uVar20")) (; ";")) (expression_statement "*(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);" (assignment_expression "*(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)\n         = *(undefined4 *)(&DAT_0005497d + unaff_EDI)" (pointer_expression "*(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)" (* "*") (cast_expression "(undefined4 *)\n     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)" (( "(") (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11" (binary_expression "".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI" (string_literal "".stab%c: description field \'%x\' too big, try a different debug format"" (" """) (string_content ".stab%c: description field ") (escape_sequence "\'") (string_content "%x") (escape_sequence "\'") (string_content " too big, try a different debug format") (" """)) (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(&DAT_0005497d + unaff_EDI)" (* "*") (cast_expression "(undefined4 *)(&DAT_0005497d + unaff_EDI)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0005497d + unaff_EDI)" (( "(") (binary_expression "&DAT_0005497d + unaff_EDI" (pointer_expression "&DAT_0005497d" (& "&") (identifier "DAT_0005497d")) (+ "+") (identifier "unaff_EDI")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_70 = FUN_00022310();" (assignment_expression "local_70 = FUN_00022310()" (identifier "local_70") (= "=") (call_expression "FUN_00022310()" (identifier "FUN_00022310") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);" (assignment_expression "piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19)" (identifier "piVar1") (= "=") (cast_expression "(int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "("demand_empty_rest_of_line" + unaff_EDI + 0x19)" (( "(") (binary_expression ""demand_empty_rest_of_line" + unaff_EDI + 0x19" (binary_expression ""demand_empty_rest_of_line" + unaff_EDI" (string_literal ""demand_empty_rest_of_line"" (" """) (string_content "demand_empty_rest_of_line") (" """)) (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0x19")) () ")")))) (; ";")) (expression_statement "pbVar4 = (byte *)*piVar1;" (assignment_expression "pbVar4 = (byte *)*piVar1" (identifier "pbVar4") (= "=") (cast_expression "(byte *)*piVar1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (expression_statement "uVar14 = (uint)*pbVar4;" (assignment_expression "uVar14 = (uint)*pbVar4" (identifier "uVar14") (= "=") (binary_expression "(uint)*pbVar4" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar4"))) (; ";")) (if_statement "if (*pbVar4 == 0x20) {\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);\n  }" (if "if") (parenthesized_expression "(*pbVar4 == 0x20)" (( "(") (binary_expression "*pbVar4 == 0x20" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n                    \n    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);\n  }" ({ "{") (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4)" (identifier "FUN_0002be10") (argument_list "(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4)" (( "(") (binary_expression "unaff_EDI + 0x2ed1d" (identifier "unaff_EDI") (+ "+") (number_literal "0x2ed1d")) (, ",") (number_literal "0x6e8") (, ",") (binary_expression "unaff_EDI + 0x2f43d" (identifier "unaff_EDI") (+ "+") (number_literal "0x2f43d")) (, ",") (identifier "pbVar4") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;" (if "if") (parenthesized_expression "(*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0')" (( "(") (binary_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14)" (* "*") (cast_expression "(char *)(unaff_EDI + 0x4b4f9 + uVar14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x4b4f9 + uVar14)" (( "(") (binary_expression "unaff_EDI + 0x4b4f9 + uVar14" (binary_expression "unaff_EDI + 0x4b4f9" (identifier "unaff_EDI") (+ "+") (number_literal "0x4b4f9")) (+ "+") (identifier "uVar14")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00023277;" (goto "goto") (statement_identifier "LAB_00023277") (; ";"))) (if_statement "if (uVar14 == 0x2d) {\nLAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;\n  }\n  else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" (if "if") (parenthesized_expression "(uVar14 == 0x2d)" (( "(") (binary_expression "uVar14 == 0x2d" (identifier "uVar14") (== "==") (number_literal "0x2d")) () ")")) (compound_statement "{\nLAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n    local_64 = 1;\nLAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;\n  }" ({ "{") (labeled_statement "LAB_00023af0:\n    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" (statement_identifier "LAB_00023af0") (: ":") (expression_statement "local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" (assignment_expression "local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" (identifier "local_84") (= "=") (pointer_expression "*(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x2f459 + uVar14 * 4)" (( "(") (binary_expression "unaff_EDI + 0x2f459 + uVar14 * 4" (binary_expression "unaff_EDI + 0x2f459" (identifier "unaff_EDI") (+ "+") (number_literal "0x2f459")) (+ "+") (binary_expression "uVar14 * 4" (identifier "uVar14") (* "*") (number_literal "4"))) () ")"))))) (; ";"))) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" (identifier "local_64") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00023b03:\n    if (local_84 == 0) goto LAB_00023277;" (statement_identifier "LAB_00023b03") (: ":") (if_statement "if (local_84 == 0) goto LAB_00023277;" (if "if") (parenthesized_expression "(local_84 == 0)" (( "(") (binary_expression "local_84 == 0" (identifier "local_84") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00023277;" (goto "goto") (statement_identifier "LAB_00023277") (; ";")))) (} "}")) (else_clause "else if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" (else "else") (if_statement "if (uVar14 < 0x2e) {\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }\n  else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" (if "if") (parenthesized_expression "(uVar14 < 0x2e)" (( "(") (binary_expression "uVar14 < 0x2e" (identifier "uVar14") (< "<") (number_literal "0x2e")) () ")")) (compound_statement "{\n    if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }\n  }" ({ "{") (if_statement "if (uVar14 == 0x26) {\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }\n    else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }" (if "if") (parenthesized_expression "(uVar14 == 0x26)" (( "(") (binary_expression "uVar14 == 0x26" (identifier "uVar14") (== "==") (number_literal "0x26")) () ")")) (compound_statement "{\n      local_64 = (pbVar4[1] == 0x26) + 1;\n      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;\n    }" ({ "{") (expression_statement "local_64 = (pbVar4[1] == 0x26) + 1;" (assignment_expression "local_64 = (pbVar4[1] == 0x26) + 1" (identifier "local_64") (= "=") (binary_expression "(pbVar4[1] == 0x26) + 1" (parenthesized_expression "(pbVar4[1] == 0x26)" (( "(") (binary_expression "pbVar4[1] == 0x26" (subscript_expression "pbVar4[1]" (identifier "pbVar4") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x26")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;" (assignment_expression "local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12" (identifier "local_84") (= "=") (binary_expression "(uint)(pbVar4[1] == 0x26) * 9 + 0x12" (binary_expression "(uint)(pbVar4[1] == 0x26) * 9" (call_expression "(uint)(pbVar4[1] == 0x26)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar4[1] == 0x26)" (( "(") (binary_expression "pbVar4[1] == 0x26" (subscript_expression "pbVar4[1]" (identifier "pbVar4") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x26")) () ")"))) (* "*") (number_literal "9")) (+ "+") (number_literal "0x12"))) (; ";")) (} "}")) (else_clause "else {\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }" (else "else") (compound_statement "{\n      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;\n      if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }\n    }" ({ "{") (if_statement "if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;" (if "if") (parenthesized_expression "((uVar14 == 0x2b) || (uVar14 != 0x21))" (( "(") (binary_expression "(uVar14 == 0x2b) || (uVar14 != 0x21)" (parenthesized_expression "(uVar14 == 0x2b)" (( "(") (binary_expression "uVar14 == 0x2b" (identifier "uVar14") (== "==") (number_literal "0x2b")) () ")")) (|| "||") (parenthesized_expression "(uVar14 != 0x21)" (( "(") (binary_expression "uVar14 != 0x21" (identifier "uVar14") (!= "!=") (number_literal "0x21")) () ")"))) () ")")) (goto_statement "goto LAB_00023af0;" (goto "goto") (statement_identifier "LAB_00023af0") (; ";"))) (if_statement "if (pbVar4[1] == 0x21) {\n        local_64 = 2;\n        local_84 = 0x11;\n      }\n      else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }" (if "if") (parenthesized_expression "(pbVar4[1] == 0x21)" (( "(") (binary_expression "pbVar4[1] == 0x21" (subscript_expression "pbVar4[1]" (identifier "pbVar4") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x21")) () ")")) (compound_statement "{\n        local_64 = 2;\n        local_84 = 0x11;\n      }" ({ "{") (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" (identifier "local_64") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_84 = 0x11;" (assignment_expression "local_84 = 0x11" (identifier "local_84") (= "=") (number_literal "0x11")) (; ";")) (} "}")) (else_clause "else {\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }" (else "else") (compound_statement "{\n        iVar8 = 0x16;\n        bVar19 = pbVar4[1] == 0x3d;\n        local_84 = 0x10;\nLAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }\n        local_64 = bVar19 + 1;\n      }" ({ "{") (expression_statement "iVar8 = 0x16;" (assignment_expression "iVar8 = 0x16" (identifier "iVar8") (= "=") (number_literal "0x16")) (; ";")) (expression_statement "bVar19 = pbVar4[1] == 0x3d;" (assignment_expression "bVar19 = pbVar4[1] == 0x3d" (identifier "bVar19") (= "=") (binary_expression "pbVar4[1] == 0x3d" (subscript_expression "pbVar4[1]" (identifier "pbVar4") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x3d"))) (; ";")) (expression_statement "local_84 = 0x10;" (assignment_expression "local_84 = 0x10" (identifier "local_84") (= "=") (number_literal "0x10")) (; ";")) (labeled_statement "LAB_00023175:\n        if (bVar19) {\n          local_84 = iVar8;\n        }" (statement_identifier "LAB_00023175") (: ":") (if_statement "if (bVar19) {\n          local_84 = iVar8;\n        }" (if "if") (parenthesized_expression "(bVar19)" (( "(") (identifier "bVar19") () ")")) (compound_statement "{\n          local_84 = iVar8;\n        }" ({ "{") (expression_statement "local_84 = iVar8;" (assignment_expression "local_84 = iVar8" (identifier "local_84") (= "=") (identifier "iVar8")) (; ";")) (} "}")))) (expression_statement "local_64 = bVar19 + 1;" (assignment_expression "local_64 = bVar19 + 1" (identifier "local_64") (= "=") (binary_expression "bVar19 + 1" (identifier "bVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" (else "else") (if_statement "if (uVar14 == 0x3d) {\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }\n  else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" (if "if") (parenthesized_expression "(uVar14 == 0x3d)" (( "(") (binary_expression "uVar14 == 0x3d" (identifier "uVar14") (== "==") (number_literal "0x3d")) () ")")) (compound_statement "{\n    if (pbVar4[1] != 0x3d) goto LAB_00023277;\n    local_64 = 2;\n    local_84 = 0x15;\n  }" ({ "{") (if_statement "if (pbVar4[1] != 0x3d) goto LAB_00023277;" (if "if") (parenthesized_expression "(pbVar4[1] != 0x3d)" (( "(") (binary_expression "pbVar4[1] != 0x3d" (subscript_expression "pbVar4[1]" (identifier "pbVar4") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x3d")) () ")")) (goto_statement "goto LAB_00023277;" (goto "goto") (statement_identifier "LAB_00023277") (; ";"))) (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" (identifier "local_64") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_84 = 0x15;" (assignment_expression "local_84 = 0x15" (identifier "local_84") (= "=") (number_literal "0x15")) (; ";")) (} "}")) (else_clause "else if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" (else "else") (if_statement "if (uVar14 < 0x3e) {\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }\n  else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" (if "if") (parenthesized_expression "(uVar14 < 0x3e)" (( "(") (binary_expression "uVar14 < 0x3e" (identifier "uVar14") (< "<") (number_literal "0x3e")) () ")")) (compound_statement "{\n    if (uVar14 != 0x3c) goto LAB_00023af0;\n    if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }\n    local_64 = 1;\n    local_84 = 0x17;\n  }" ({ "{") (if_statement "if (uVar14 != 0x3c) goto LAB_00023af0;" (if "if") (parenthesized_expression "(uVar14 != 0x3c)" (( "(") (binary_expression "uVar14 != 0x3c" (identifier "uVar14") (!= "!=") (number_literal "0x3c")) () ")")) (goto_statement "goto LAB_00023af0;" (goto "goto") (statement_identifier "LAB_00023af0") (; ";"))) (if_statement "if ((byte)(pbVar4[1] - 0x3c) < 3) {\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }" (if "if") (parenthesized_expression "((byte)(pbVar4[1] - 0x3c) < 3)" (( "(") (binary_expression "(byte)(pbVar4[1] - 0x3c) < 3" (call_expression "(byte)(pbVar4[1] - 0x3c)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(pbVar4[1] - 0x3c)" (( "(") (binary_expression "pbVar4[1] - 0x3c" (subscript_expression "pbVar4[1]" (identifier "pbVar4") ([ "[") (number_literal "1") (] "]")) (- "-") (number_literal "0x3c")) () ")"))) (< "<") (number_literal "3")) () ")")) (compound_statement "{\n      local_64 = 2;\n      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);\n      goto LAB_00023b03;\n    }" ({ "{") (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" (identifier "local_64") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);" (assignment_expression "local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4)" (identifier "local_84") (= "=") (pointer_expression "*(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4)" (( "(") (binary_expression "unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4" (binary_expression "unaff_EDI + 0x2f41d" (identifier "unaff_EDI") (+ "+") (number_literal "0x2f41d")) (+ "+") (binary_expression "(uint)(byte)(pbVar4[1] - 0x3c) * 4" (call_expression "(uint)(byte)(pbVar4[1] - 0x3c)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(pbVar4[1] - 0x3c)" (( "(") (binary_expression "pbVar4[1] - 0x3c" (subscript_expression "pbVar4[1]" (identifier "pbVar4") ([ "[") (number_literal "1") (] "]")) (- "-") (number_literal "0x3c")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (goto_statement "goto LAB_00023b03;" (goto "goto") (statement_identifier "LAB_00023b03") (; ";")) (} "}"))) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" (identifier "local_64") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_84 = 0x17;" (assignment_expression "local_84 = 0x17" (identifier "local_84") (= "=") (number_literal "0x17")) (; ";")) (} "}")) (else_clause "else if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" (else "else") (if_statement "if (uVar14 == 0x3e) {\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }\n  else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" (if "if") (parenthesized_expression "(uVar14 == 0x3e)" (( "(") (binary_expression "uVar14 == 0x3e" (identifier "uVar14") (== "==") (number_literal "0x3e")) () ")")) (compound_statement "{\n    if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }\n    local_64 = 2;\n    local_84 = 0x19;\n  }" ({ "{") (if_statement "if (pbVar4[1] != 0x3d) {\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }" (if "if") (parenthesized_expression "(pbVar4[1] != 0x3d)" (( "(") (binary_expression "pbVar4[1] != 0x3d" (subscript_expression "pbVar4[1]" (identifier "pbVar4") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x3d")) () ")")) (compound_statement "{\n      iVar8 = 0xe;\n      bVar19 = pbVar4[1] == 0x3e;\n      local_84 = 0x1a;\n      goto LAB_00023175;\n    }" ({ "{") (expression_statement "iVar8 = 0xe;" (assignment_expression "iVar8 = 0xe" (identifier "iVar8") (= "=") (number_literal "0xe")) (; ";")) (expression_statement "bVar19 = pbVar4[1] == 0x3e;" (assignment_expression "bVar19 = pbVar4[1] == 0x3e" (identifier "bVar19") (= "=") (binary_expression "pbVar4[1] == 0x3e" (subscript_expression "pbVar4[1]" (identifier "pbVar4") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x3e"))) (; ";")) (expression_statement "local_84 = 0x1a;" (assignment_expression "local_84 = 0x1a" (identifier "local_84") (= "=") (number_literal "0x1a")) (; ";")) (goto_statement "goto LAB_00023175;" (goto "goto") (statement_identifier "LAB_00023175") (; ";")) (} "}"))) (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" (identifier "local_64") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_84 = 0x19;" (assignment_expression "local_84 = 0x19" (identifier "local_84") (= "=") (number_literal "0x19")) (; ";")) (} "}")) (else_clause "else {\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" (else "else") (compound_statement "{\n    if (uVar14 != 0x7c) goto LAB_00023af0;\n    local_84 = 0xf;\n    if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }\n    local_64 = (pbVar4[1] == 0x7c) + 1;\n  }" ({ "{") (if_statement "if (uVar14 != 0x7c) goto LAB_00023af0;" (if "if") (parenthesized_expression "(uVar14 != 0x7c)" (( "(") (binary_expression "uVar14 != 0x7c" (identifier "uVar14") (!= "!=") (number_literal "0x7c")) () ")")) (goto_statement "goto LAB_00023af0;" (goto "goto") (statement_identifier "LAB_00023af0") (; ";"))) (expression_statement "local_84 = 0xf;" (assignment_expression "local_84 = 0xf" (identifier "local_84") (= "=") (number_literal "0xf")) (; ";")) (if_statement "if (pbVar4[1] == 0x7c) {\n      local_84 = 0x1c;\n    }" (if "if") (parenthesized_expression "(pbVar4[1] == 0x7c)" (( "(") (binary_expression "pbVar4[1] == 0x7c" (subscript_expression "pbVar4[1]" (identifier "pbVar4") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x7c")) () ")")) (compound_statement "{\n      local_84 = 0x1c;\n    }" ({ "{") (expression_statement "local_84 = 0x1c;" (assignment_expression "local_84 = 0x1c" (identifier "local_84") (= "=") (number_literal "0x1c")) (; ";")) (} "}"))) (expression_statement "local_64 = (pbVar4[1] == 0x7c) + 1;" (assignment_expression "local_64 = (pbVar4[1] == 0x7c) + 1" (identifier "local_64") (= "=") (binary_expression "(pbVar4[1] == 0x7c) + 1" (parenthesized_expression "(pbVar4[1] == 0x7c)" (( "(") (binary_expression "pbVar4[1] == 0x7c" (subscript_expression "pbVar4[1]" (identifier "pbVar4") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x7c")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (} "}")))))))))))) (expression_statement "iVar8 = *(int *)(unaff_EDI + 0x4b1c1);" (assignment_expression "iVar8 = *(int *)(unaff_EDI + 0x4b1c1)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x4b1c1)" (( "(") (binary_expression "unaff_EDI + 0x4b1c1" (identifier "unaff_EDI") (+ "+") (number_literal "0x4b1c1")) () ")"))))) (; ";")) (expression_statement "cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84);" (assignment_expression "cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84)" (identifier "cVar13") (= "=") (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + local_84)" (* "*") (cast_expression "(char *)(unaff_EDI + 0x4b459 + local_84)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x4b459 + local_84)" (( "(") (binary_expression "unaff_EDI + 0x4b459 + local_84" (binary_expression "unaff_EDI + 0x4b459" (identifier "unaff_EDI") (+ "+") (number_literal "0x4b459")) (+ "+") (identifier "local_84")) () ")"))))) (; ";")) (if_statement "if ((char)param_1 < cVar13) {\n    do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );\n  }" (if "if") (parenthesized_expression "((char)param_1 < cVar13)" (( "(") (binary_expression "(char)param_1 < cVar13" (cast_expression "(char)param_1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_1")) (< "<") (identifier "cVar13")) () ")")) (compound_statement "{\n    do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );\n  }" ({ "{") (do_statement "do {\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    } while( true );" (do "do") (compound_statement "{\n      *piVar1 = (int)(pbVar4 + local_64);\n      local_1e = 0;\n      iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);\n      if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }\n      pbVar4 = (byte *)*piVar1;\n      bVar3 = *pbVar4;\n      uVar14 = (uint)bVar3;\n      if (bVar3 == 0x20) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }\n      pbVar15 = pbVar4;\n      if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }\n      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }\nLAB_00022fd4:\n      if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }\n      if (0x1d < local_84) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }\n      if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }\n      iVar6 = iVar5;\n      if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }\njoined_r0x00023268:\n      local_70 = iVar6;\n      if (local_78 == 0) break;\n      local_84 = local_78;\n      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);\n      if (cVar13 <= (char)param_1) break;\n      pbVar4 = (byte *)*piVar1;\n    }" ({ "{") (expression_statement "*piVar1 = (int)(pbVar4 + local_64);" (assignment_expression "*piVar1 = (int)(pbVar4 + local_64)" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (cast_expression "(int)(pbVar4 + local_64)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar4 + local_64)" (( "(") (binary_expression "pbVar4 + local_64" (identifier "pbVar4") (+ "+") (identifier "local_64")) () ")")))) (; ";")) (expression_statement "local_1e = 0;" (assignment_expression "local_1e = 0" (identifier "local_1e") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3);" (assignment_expression "iVar5 = FUN_00022de0((int)cVar13,&local_30,param_3)" (identifier "iVar5") (= "=") (call_expression "FUN_00022de0((int)cVar13,&local_30,param_3)" (identifier "FUN_00022de0") (argument_list "((int)cVar13,&local_30,param_3)" (( "(") (cast_expression "(int)cVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar13")) (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (local_20 == '\x01') {\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }" (if "if") (parenthesized_expression "(local_20 == '\x01')" (( "(") (binary_expression "local_20 == '\x01'" (identifier "local_20") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n      }" ({ "{") (expression_statement "uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);" (assignment_expression "uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,unaff_EDI + 0x2edd2,5)" (identifier "dcgettext") (argument_list "(0,unaff_EDI + 0x2edd2,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EDI + 0x2edd2" (identifier "unaff_EDI") (+ "+") (number_literal "0x2edd2")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bc10(uVar9);" (call_expression "FUN_0002bc10(uVar9)" (identifier "FUN_0002bc10") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "local_20 = '\x02';" (assignment_expression "local_20 = '\x02'" (identifier "local_20") (= "=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "pbVar4 = (byte *)*piVar1;" (assignment_expression "pbVar4 = (byte *)*piVar1" (identifier "pbVar4") (= "=") (cast_expression "(byte *)*piVar1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (expression_statement "bVar3 = *pbVar4;" (assignment_expression "bVar3 = *pbVar4" (identifier "bVar3") (= "=") (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4"))) (; ";")) (expression_statement "uVar14 = (uint)bVar3;" (assignment_expression "uVar14 = (uint)bVar3" (identifier "uVar14") (= "=") (cast_expression "(uint)bVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar3"))) (; ";")) (if_statement "if (bVar3 == 0x20) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }" (if "if") (parenthesized_expression "(bVar3 == 0x20)" (( "(") (binary_expression "bVar3 == 0x20" (identifier "bVar3") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);\n      }" ({ "{") (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d)" (identifier "FUN_0002be10") (argument_list "(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d)" (( "(") (binary_expression "unaff_EDI + 0x2ed1d" (identifier "unaff_EDI") (+ "+") (number_literal "0x2ed1d")) (, ",") (number_literal "0x6fd") (, ",") (binary_expression "unaff_EDI + 0x2f43d" (identifier "unaff_EDI") (+ "+") (number_literal "0x2f43d")) () ")"))) (; ";")) (} "}"))) (expression_statement "pbVar15 = pbVar4;" (assignment_expression "pbVar15 = pbVar4" (identifier "pbVar15") (= "=") (identifier "pbVar4")) (; ";")) (if_statement "if (local_84 == 0x1d) {\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }" (if "if") (parenthesized_expression "(local_84 == 0x1d)" (( "(") (binary_expression "local_84 == 0x1d" (identifier "local_84") (== "==") (number_literal "0x1d")) () ")")) (compound_statement "{\n        if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }\n      }" ({ "{") (if_statement "if (bVar3 == 0x5d) {\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }\n        else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }" (if "if") (parenthesized_expression "(bVar3 == 0x5d)" (( "(") (binary_expression "bVar3 == 0x5d" (identifier "bVar3") (== "==") (number_literal "0x5d")) () ")")) (compound_statement "{\n          pbVar15 = pbVar4 + 1;\n          *piVar1 = (int)pbVar15;\n          uVar14 = (uint)pbVar4[1];\n          if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }\n        }" ({ "{") (expression_statement "pbVar15 = pbVar4 + 1;" (assignment_expression "pbVar15 = pbVar4 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar1 = (int)pbVar15;" (assignment_expression "*piVar1 = (int)pbVar15" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (cast_expression "(int)pbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar15"))) (; ";")) (expression_statement "uVar14 = (uint)pbVar4[1];" (assignment_expression "uVar14 = (uint)pbVar4[1]" (identifier "uVar14") (= "=") (cast_expression "(uint)pbVar4[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar4[1]" (identifier "pbVar4") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (pbVar4[1] == 0x20) {\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }" (if "if") (parenthesized_expression "(pbVar4[1] == 0x20)" (( "(") (binary_expression "pbVar4[1] == 0x20" (subscript_expression "pbVar4[1]" (identifier "pbVar4") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n            pbVar15 = pbVar4 + 2;\n            *piVar1 = (int)pbVar15;\n            uVar14 = (uint)pbVar4[2];\n          }" ({ "{") (expression_statement "pbVar15 = pbVar4 + 2;" (assignment_expression "pbVar15 = pbVar4 + 2" (identifier "pbVar15") (= "=") (binary_expression "pbVar4 + 2" (identifier "pbVar4") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*piVar1 = (int)pbVar15;" (assignment_expression "*piVar1 = (int)pbVar15" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (cast_expression "(int)pbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar15"))) (; ";")) (expression_statement "uVar14 = (uint)pbVar4[2];" (assignment_expression "uVar14 = (uint)pbVar4[2]" (identifier "uVar14") (= "=") (cast_expression "(uint)pbVar4[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar4[2]" (identifier "pbVar4") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }" (else "else") (compound_statement "{\n          FUN_0002bcf0(unaff_EDI + 0x2edf0);\n          pbVar15 = (byte *)*piVar1;\n          uVar14 = (uint)*pbVar15;\n        }" ({ "{") (expression_statement "FUN_0002bcf0(unaff_EDI + 0x2edf0);" (call_expression "FUN_0002bcf0(unaff_EDI + 0x2edf0)" (identifier "FUN_0002bcf0") (argument_list "(unaff_EDI + 0x2edf0)" (( "(") (binary_expression "unaff_EDI + 0x2edf0" (identifier "unaff_EDI") (+ "+") (number_literal "0x2edf0")) () ")"))) (; ";")) (expression_statement "pbVar15 = (byte *)*piVar1;" (assignment_expression "pbVar15 = (byte *)*piVar1" (identifier "pbVar15") (= "=") (cast_expression "(byte *)*piVar1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (expression_statement "uVar14 = (uint)*pbVar15;" (assignment_expression "uVar14 = (uint)*pbVar15" (identifier "uVar14") (= "=") (binary_expression "(uint)*pbVar15" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar15"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }\n      else {\n        local_64 = 1;\n        local_78 = 0;\n      }" (if "if") (parenthesized_expression "(*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0')" (( "(") (binary_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0'" (pointer_expression "*(char *)(unaff_EDI + 0x4b4f9 + uVar14)" (* "*") (cast_expression "(char *)(unaff_EDI + 0x4b4f9 + uVar14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x4b4f9 + uVar14)" (( "(") (binary_expression "unaff_EDI + 0x4b4f9 + uVar14" (binary_expression "unaff_EDI + 0x4b4f9" (identifier "unaff_EDI") (+ "+") (number_literal "0x4b4f9")) (+ "+") (identifier "uVar14")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }\n        if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }\n      }" ({ "{") (if_statement "if (uVar14 == 0x2d) {\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }\n        else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" (if "if") (parenthesized_expression "(uVar14 == 0x2d)" (( "(") (binary_expression "uVar14 == 0x2d" (identifier "uVar14") (== "==") (number_literal "0x2d")) () ")")) (compound_statement "{\nLAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);\n          local_64 = 1;\n          bVar19 = local_78 != 0;\n        }" ({ "{") (labeled_statement "LAB_000235f0:\n          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" (statement_identifier "LAB_000235f0") (: ":") (expression_statement "local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);" (assignment_expression "local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" (identifier "local_78") (= "=") (pointer_expression "*(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x2f459 + uVar14 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x2f459 + uVar14 * 4)" (( "(") (binary_expression "unaff_EDI + 0x2f459 + uVar14 * 4" (binary_expression "unaff_EDI + 0x2f459" (identifier "unaff_EDI") (+ "+") (number_literal "0x2f459")) (+ "+") (binary_expression "uVar14 * 4" (identifier "uVar14") (* "*") (number_literal "4"))) () ")"))))) (; ";"))) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" (identifier "local_64") (= "=") (number_literal "1")) (; ";")) (expression_statement "bVar19 = local_78 != 0;" (assignment_expression "bVar19 = local_78 != 0" (identifier "bVar19") (= "=") (binary_expression "local_78 != 0" (identifier "local_78") (!= "!=") (number_literal "0"))) (; ";")) (} "}")) (else_clause "else if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" (else "else") (if_statement "if (uVar14 < 0x2e) {\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }\n        else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" (if "if") (parenthesized_expression "(uVar14 < 0x2e)" (( "(") (binary_expression "uVar14 < 0x2e" (identifier "uVar14") (< "<") (number_literal "0x2e")) () ")")) (compound_statement "{\n          if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }\n        }" ({ "{") (if_statement "if (uVar14 == 0x26) {\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }\n          else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(uVar14 == 0x26)" (( "(") (binary_expression "uVar14 == 0x26" (identifier "uVar14") (== "==") (number_literal "0x26")) () ")")) (compound_statement "{\n            bVar19 = true;\n            local_64 = (pbVar15[1] == 0x26) + 1;\n            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;\n          }" ({ "{") (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" (identifier "bVar19") (= "=") (true "true")) (; ";")) (expression_statement "local_64 = (pbVar15[1] == 0x26) + 1;" (assignment_expression "local_64 = (pbVar15[1] == 0x26) + 1" (identifier "local_64") (= "=") (binary_expression "(pbVar15[1] == 0x26) + 1" (parenthesized_expression "(pbVar15[1] == 0x26)" (( "(") (binary_expression "pbVar15[1] == 0x26" (subscript_expression "pbVar15[1]" (identifier "pbVar15") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x26")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;" (assignment_expression "local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12" (identifier "local_78") (= "=") (binary_expression "(uint)(pbVar15[1] == 0x26) * 9 + 0x12" (binary_expression "(uint)(pbVar15[1] == 0x26) * 9" (call_expression "(uint)(pbVar15[1] == 0x26)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar15[1] == 0x26)" (( "(") (binary_expression "pbVar15[1] == 0x26" (subscript_expression "pbVar15[1]" (identifier "pbVar15") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x26")) () ")"))) (* "*") (number_literal "9")) (+ "+") (number_literal "0x12"))) (; ";")) (} "}")) (else_clause "else {\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }" (else "else") (compound_statement "{\n            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;\n            bVar3 = pbVar15[1];\n            bVar19 = true;\n            if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }\n          }" ({ "{") (if_statement "if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;" (if "if") (parenthesized_expression "((uVar14 == 0x2b) || (uVar14 != 0x21))" (( "(") (binary_expression "(uVar14 == 0x2b) || (uVar14 != 0x21)" (parenthesized_expression "(uVar14 == 0x2b)" (( "(") (binary_expression "uVar14 == 0x2b" (identifier "uVar14") (== "==") (number_literal "0x2b")) () ")")) (|| "||") (parenthesized_expression "(uVar14 != 0x21)" (( "(") (binary_expression "uVar14 != 0x21" (identifier "uVar14") (!= "!=") (number_literal "0x21")) () ")"))) () ")")) (goto_statement "goto LAB_000235f0;" (goto "goto") (statement_identifier "LAB_000235f0") (; ";"))) (expression_statement "bVar3 = pbVar15[1];" (assignment_expression "bVar3 = pbVar15[1]" (identifier "bVar3") (= "=") (subscript_expression "pbVar15[1]" (identifier "pbVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" (identifier "bVar19") (= "=") (true "true")) (; ";")) (if_statement "if (bVar3 == 0x21) {\n              local_64 = 2;\n              local_78 = 0x11;\n            }\n            else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }" (if "if") (parenthesized_expression "(bVar3 == 0x21)" (( "(") (binary_expression "bVar3 == 0x21" (identifier "bVar3") (== "==") (number_literal "0x21")) () ")")) (compound_statement "{\n              local_64 = 2;\n              local_78 = 0x11;\n            }" ({ "{") (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" (identifier "local_64") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_78 = 0x11;" (assignment_expression "local_78 = 0x11" (identifier "local_78") (= "=") (number_literal "0x11")) (; ";")) (} "}")) (else_clause "else {\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }" (else "else") (compound_statement "{\n              local_64 = (bVar3 == 0x3d) + 1;\n              local_78 = 0x10;\n              if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }\n            }" ({ "{") (expression_statement "local_64 = (bVar3 == 0x3d) + 1;" (assignment_expression "local_64 = (bVar3 == 0x3d) + 1" (identifier "local_64") (= "=") (binary_expression "(bVar3 == 0x3d) + 1" (parenthesized_expression "(bVar3 == 0x3d)" (( "(") (binary_expression "bVar3 == 0x3d" (identifier "bVar3") (== "==") (number_literal "0x3d")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_78 = 0x10;" (assignment_expression "local_78 = 0x10" (identifier "local_78") (= "=") (number_literal "0x10")) (; ";")) (if_statement "if (bVar3 == 0x3d) {\n                local_78 = 0x16;\n              }" (if "if") (parenthesized_expression "(bVar3 == 0x3d)" (( "(") (binary_expression "bVar3 == 0x3d" (identifier "bVar3") (== "==") (number_literal "0x3d")) () ")")) (compound_statement "{\n                local_78 = 0x16;\n              }" ({ "{") (expression_statement "local_78 = 0x16;" (assignment_expression "local_78 = 0x16" (identifier "local_78") (= "=") (number_literal "0x16")) (; ";")) (} "}"))) (} "}")))) (} "}")))) (} "}")) (else_clause "else if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" (else "else") (if_statement "if (uVar14 == 0x3d) {\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }\n        else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" (if "if") (parenthesized_expression "(uVar14 == 0x3d)" (( "(") (binary_expression "uVar14 == 0x3d" (identifier "uVar14") (== "==") (number_literal "0x3d")) () ")")) (compound_statement "{\n          local_64 = 1;\n          local_78 = 0;\n          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;\n          bVar19 = true;\n          local_64 = 2;\n          local_78 = 0x15;\n        }" ({ "{") (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" (identifier "local_64") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" (identifier "local_78") (= "=") (number_literal "0")) (; ";")) (if_statement "if (pbVar15[1] != 0x3d) goto LAB_00022fd4;" (if "if") (parenthesized_expression "(pbVar15[1] != 0x3d)" (( "(") (binary_expression "pbVar15[1] != 0x3d" (subscript_expression "pbVar15[1]" (identifier "pbVar15") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x3d")) () ")")) (goto_statement "goto LAB_00022fd4;" (goto "goto") (statement_identifier "LAB_00022fd4") (; ";"))) (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" (identifier "bVar19") (= "=") (true "true")) (; ";")) (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" (identifier "local_64") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_78 = 0x15;" (assignment_expression "local_78 = 0x15" (identifier "local_78") (= "=") (number_literal "0x15")) (; ";")) (} "}")) (else_clause "else if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" (else "else") (if_statement "if (uVar14 < 0x3e) {\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }\n        else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" (if "if") (parenthesized_expression "(uVar14 < 0x3e)" (( "(") (binary_expression "uVar14 < 0x3e" (identifier "uVar14") (< "<") (number_literal "0x3e")) () ")")) (compound_statement "{\n          if (uVar14 != 0x3c) goto LAB_000235f0;\n          if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }\n        }" ({ "{") (if_statement "if (uVar14 != 0x3c) goto LAB_000235f0;" (if "if") (parenthesized_expression "(uVar14 != 0x3c)" (( "(") (binary_expression "uVar14 != 0x3c" (identifier "uVar14") (!= "!=") (number_literal "0x3c")) () ")")) (goto_statement "goto LAB_000235f0;" (goto "goto") (statement_identifier "LAB_000235f0") (; ";"))) (if_statement "if ((byte)(pbVar15[1] - 0x3c) < 3) {\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }\n          else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }" (if "if") (parenthesized_expression "((byte)(pbVar15[1] - 0x3c) < 3)" (( "(") (binary_expression "(byte)(pbVar15[1] - 0x3c) < 3" (call_expression "(byte)(pbVar15[1] - 0x3c)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(pbVar15[1] - 0x3c)" (( "(") (binary_expression "pbVar15[1] - 0x3c" (subscript_expression "pbVar15[1]" (identifier "pbVar15") ([ "[") (number_literal "1") (] "]")) (- "-") (number_literal "0x3c")) () ")"))) (< "<") (number_literal "3")) () ")")) (compound_statement "{\n            local_64 = 2;\n            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);\n            bVar19 = local_78 != 0;\n          }" ({ "{") (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" (identifier "local_64") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);" (assignment_expression "local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" (identifier "local_78") (= "=") (pointer_expression "*(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4)" (( "(") (binary_expression "unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4" (binary_expression "unaff_EDI + 0x2f41d" (identifier "unaff_EDI") (+ "+") (number_literal "0x2f41d")) (+ "+") (binary_expression "(uint)(byte)(pbVar15[1] - 0x3c) * 4" (call_expression "(uint)(byte)(pbVar15[1] - 0x3c)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(pbVar15[1] - 0x3c)" (( "(") (binary_expression "pbVar15[1] - 0x3c" (subscript_expression "pbVar15[1]" (identifier "pbVar15") ([ "[") (number_literal "1") (] "]")) (- "-") (number_literal "0x3c")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "bVar19 = local_78 != 0;" (assignment_expression "bVar19 = local_78 != 0" (identifier "bVar19") (= "=") (binary_expression "local_78 != 0" (identifier "local_78") (!= "!=") (number_literal "0"))) (; ";")) (} "}")) (else_clause "else {\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }" (else "else") (compound_statement "{\n            bVar19 = true;\n            local_64 = 1;\n            local_78 = 0x17;\n          }" ({ "{") (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" (identifier "bVar19") (= "=") (true "true")) (; ";")) (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" (identifier "local_64") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_78 = 0x17;" (assignment_expression "local_78 = 0x17" (identifier "local_78") (= "=") (number_literal "0x17")) (; ";")) (} "}")))) (} "}")) (else_clause "else if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" (else "else") (if_statement "if (uVar14 == 0x3e) {\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }\n        else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" (if "if") (parenthesized_expression "(uVar14 == 0x3e)" (( "(") (binary_expression "uVar14 == 0x3e" (identifier "uVar14") (== "==") (number_literal "0x3e")) () ")")) (compound_statement "{\n          bVar3 = pbVar15[1];\n          bVar19 = true;\n          if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }\n        }" ({ "{") (expression_statement "bVar3 = pbVar15[1];" (assignment_expression "bVar3 = pbVar15[1]" (identifier "bVar3") (= "=") (subscript_expression "pbVar15[1]" (identifier "pbVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" (identifier "bVar19") (= "=") (true "true")) (; ";")) (if_statement "if (bVar3 == 0x3d) {\n            local_64 = 2;\n            local_78 = 0x19;\n          }\n          else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }" (if "if") (parenthesized_expression "(bVar3 == 0x3d)" (( "(") (binary_expression "bVar3 == 0x3d" (identifier "bVar3") (== "==") (number_literal "0x3d")) () ")")) (compound_statement "{\n            local_64 = 2;\n            local_78 = 0x19;\n          }" ({ "{") (expression_statement "local_64 = 2;" (assignment_expression "local_64 = 2" (identifier "local_64") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_78 = 0x19;" (assignment_expression "local_78 = 0x19" (identifier "local_78") (= "=") (number_literal "0x19")) (; ";")) (} "}")) (else_clause "else {\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }" (else "else") (compound_statement "{\n            local_64 = (bVar3 == 0x3e) + 1;\n            local_78 = 0x1a;\n            if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }\n          }" ({ "{") (expression_statement "local_64 = (bVar3 == 0x3e) + 1;" (assignment_expression "local_64 = (bVar3 == 0x3e) + 1" (identifier "local_64") (= "=") (binary_expression "(bVar3 == 0x3e) + 1" (parenthesized_expression "(bVar3 == 0x3e)" (( "(") (binary_expression "bVar3 == 0x3e" (identifier "bVar3") (== "==") (number_literal "0x3e")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_78 = 0x1a;" (assignment_expression "local_78 = 0x1a" (identifier "local_78") (= "=") (number_literal "0x1a")) (; ";")) (if_statement "if (bVar3 == 0x3e) {\n              local_78 = 0xe;\n            }" (if "if") (parenthesized_expression "(bVar3 == 0x3e)" (( "(") (binary_expression "bVar3 == 0x3e" (identifier "bVar3") (== "==") (number_literal "0x3e")) () ")")) (compound_statement "{\n              local_78 = 0xe;\n            }" ({ "{") (expression_statement "local_78 = 0xe;" (assignment_expression "local_78 = 0xe" (identifier "local_78") (= "=") (number_literal "0xe")) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" (else "else") (compound_statement "{\n          if (uVar14 != 0x7c) goto LAB_000235f0;\n          bVar19 = true;\n          local_64 = (pbVar15[1] == 0x7c) + 1;\n          local_78 = 0xf;\n          if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }\n        }" ({ "{") (if_statement "if (uVar14 != 0x7c) goto LAB_000235f0;" (if "if") (parenthesized_expression "(uVar14 != 0x7c)" (( "(") (binary_expression "uVar14 != 0x7c" (identifier "uVar14") (!= "!=") (number_literal "0x7c")) () ")")) (goto_statement "goto LAB_000235f0;" (goto "goto") (statement_identifier "LAB_000235f0") (; ";"))) (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" (identifier "bVar19") (= "=") (true "true")) (; ";")) (expression_statement "local_64 = (pbVar15[1] == 0x7c) + 1;" (assignment_expression "local_64 = (pbVar15[1] == 0x7c) + 1" (identifier "local_64") (= "=") (binary_expression "(pbVar15[1] == 0x7c) + 1" (parenthesized_expression "(pbVar15[1] == 0x7c)" (( "(") (binary_expression "pbVar15[1] == 0x7c" (subscript_expression "pbVar15[1]" (identifier "pbVar15") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x7c")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_78 = 0xf;" (assignment_expression "local_78 = 0xf" (identifier "local_78") (= "=") (number_literal "0xf")) (; ";")) (if_statement "if (pbVar15[1] == 0x7c) {\n            local_78 = 0x1c;\n          }" (if "if") (parenthesized_expression "(pbVar15[1] == 0x7c)" (( "(") (binary_expression "pbVar15[1] == 0x7c" (subscript_expression "pbVar15[1]" (identifier "pbVar15") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x7c")) () ")")) (compound_statement "{\n            local_78 = 0x1c;\n          }" ({ "{") (expression_statement "local_78 = 0x1c;" (assignment_expression "local_78 = 0x1c" (identifier "local_78") (= "=") (number_literal "0x1c")) (; ";")) (} "}"))) (} "}")))))))))))) (if_statement "if (((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))\n        {\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }" (if "if") (parenthesized_expression "(((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))" (( "(") (binary_expression "((local_84 != 0x1d) && (bVar19)) &&\n           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78))" (parenthesized_expression "((local_84 != 0x1d) && (bVar19))" (( "(") (binary_expression "(local_84 != 0x1d) && (bVar19)" (parenthesized_expression "(local_84 != 0x1d)" (( "(") (binary_expression "local_84 != 0x1d" (identifier "local_84") (!= "!=") (number_literal "0x1d")) () ")")) (&& "&&") (parenthesized_expression "(bVar19)" (( "(") (identifier "bVar19") () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78))" (( "(") (binary_expression "*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)" (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + local_84)" (* "*") (cast_expression "(char *)(unaff_EDI + 0x4b459 + local_84)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x4b459 + local_84)" (( "(") (binary_expression "unaff_EDI + 0x4b459 + local_84" (binary_expression "unaff_EDI + 0x4b459" (identifier "unaff_EDI") (+ "+") (number_literal "0x4b459")) (+ "+") (identifier "local_84")) () ")")))) (< "<") (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + local_78)" (* "*") (cast_expression "(char *)(unaff_EDI + 0x4b459 + local_78)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x4b459 + local_78)" (( "(") (binary_expression "unaff_EDI + 0x4b459 + local_78" (binary_expression "unaff_EDI + 0x4b459" (identifier "unaff_EDI") (+ "+") (number_literal "0x4b459")) (+ "+") (identifier "local_78")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n                    \n          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);\n        }" ({ "{") (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d)" (identifier "FUN_0002be10") (argument_list "(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d)" (( "(") (binary_expression "unaff_EDI + 0x2ed1d" (identifier "unaff_EDI") (+ "+") (number_literal "0x2ed1d")) (, ",") (number_literal "0x70d") (, ",") (binary_expression "unaff_EDI + 0x2f43d" (identifier "unaff_EDI") (+ "+") (number_literal "0x2f43d")) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        local_64 = 1;\n        local_78 = 0;\n      }" (else "else") (compound_statement "{\n        local_64 = 1;\n        local_78 = 0;\n      }" ({ "{") (expression_statement "local_64 = 1;" (assignment_expression "local_64 = 1" (identifier "local_64") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" (identifier "local_78") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_00022fd4:\n      if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }" (statement_identifier "LAB_00022fd4") (: ":") (if_statement "if (local_84 < 10) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }" (if "if") (parenthesized_expression "(local_84 < 10)" (( "(") (binary_expression "local_84 < 10" (identifier "local_84") (< "<") (number_literal "10")) () ")")) (compound_statement "{\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);\n      }" ({ "{") (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d)" (identifier "FUN_0002be10") (argument_list "(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d)" (( "(") (binary_expression "unaff_EDI + 0x2ed1d" (identifier "unaff_EDI") (+ "+") (number_literal "0x2ed1d")) (, ",") (number_literal "0x70e") (, ",") (binary_expression "unaff_EDI + 0x2f43d" (identifier "unaff_EDI") (+ "+") (number_literal "0x2f43d")) () ")"))) (; ";")) (} "}")))) (if_statement "if (0x1d < local_84) {\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }" (if "if") (parenthesized_expression "(0x1d < local_84)" (( "(") (binary_expression "0x1d < local_84" (number_literal "0x1d") (< "<") (identifier "local_84")) () ")")) (compound_statement "{\n                    \n        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);\n      }" ({ "{") (expression_statement "FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);" (call_expression "FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d)" (identifier "FUN_0002be10") (argument_list "(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d)" (( "(") (binary_expression "unaff_EDI + 0x2ed1d" (identifier "unaff_EDI") (+ "+") (number_literal "0x2ed1d")) (, ",") (number_literal "0x710") (, ",") (binary_expression "unaff_EDI + 0x2f43d" (identifier "unaff_EDI") (+ "+") (number_literal "0x2f43d")) () ")"))) (; ";")) (} "}"))) (if_statement "if ((char)param_2[4] == '\x06') {\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }" (if "if") (parenthesized_expression "((char)param_2[4] == '\x06')" (( "(") (binary_expression "(char)param_2[4] == '\x06'" (cast_expression "(char)param_2[4]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]"))) (== "==") (char_literal "'\x06'" (' "'") (escape_sequence "\x06") (' "'"))) () ")")) (compound_statement "{\n        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }\n        uVar9 = dcgettext(0,iVar6,5);\n        FUN_0002bc10(uVar9);\n        *(undefined1 *)(param_2 + 4) = 2;\n        param_2[2] = 0;\n        param_2[3] = 0;\n        *param_2 = 0;\n        param_2[1] = 0;\n      }" ({ "{") (if_statement "if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }\n        else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }" (if "if") (parenthesized_expression "(-param_2[3] < (int)(uint)(param_2[2] != 0))" (( "(") (binary_expression "-param_2[3] < (int)(uint)(param_2[2] != 0)" (unary_expression "-param_2[3]" (- "-") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (< "<") (cast_expression "(int)(uint)(param_2[2] != 0)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "(uint)(param_2[2] != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_2[2] != 0)" (( "(") (binary_expression "param_2[2] != 0" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")"))))) () ")")) (compound_statement "{\n          iVar6 = unaff_EDI + 0x2ef8d;\n        }" ({ "{") (expression_statement "iVar6 = unaff_EDI + 0x2ef8d;" (assignment_expression "iVar6 = unaff_EDI + 0x2ef8d" (identifier "iVar6") (= "=") (binary_expression "unaff_EDI + 0x2ef8d" (identifier "unaff_EDI") (+ "+") (number_literal "0x2ef8d"))) (; ";")) (} "}")) (else_clause "else {\n          iVar6 = unaff_EDI + 0x2efb9;\n        }" (else "else") (compound_statement "{\n          iVar6 = unaff_EDI + 0x2efb9;\n        }" ({ "{") (expression_statement "iVar6 = unaff_EDI + 0x2efb9;" (assignment_expression "iVar6 = unaff_EDI + 0x2efb9" (identifier "iVar6") (= "=") (binary_expression "unaff_EDI + 0x2efb9" (identifier "unaff_EDI") (+ "+") (number_literal "0x2efb9"))) (; ";")) (} "}")))) (expression_statement "uVar9 = dcgettext(0,iVar6,5);" (assignment_expression "uVar9 = dcgettext(0,iVar6,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,iVar6,5)" (identifier "dcgettext") (argument_list "(0,iVar6,5)" (( "(") (number_literal "0") (, ",") (identifier "iVar6") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bc10(uVar9);" (call_expression "FUN_0002bc10(uVar9)" (identifier "FUN_0002bc10") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(param_2 + 4) = 2;" (assignment_expression "*(undefined1 *)(param_2 + 4) = 2" (pointer_expression "*(undefined1 *)(param_2 + 4)" (* "*") (cast_expression "(undefined1 *)(param_2 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "param_2[2] = 0;" (assignment_expression "param_2[2] = 0" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2[3] = 0;" (assignment_expression "param_2[3] = 0" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2[1] = 0;" (assignment_expression "param_2[1] = 0" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar6 = iVar5;" (assignment_expression "iVar6 = iVar5" (identifier "iVar6") (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (local_20 == '\x06') {\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }\n      else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }" (if "if") (parenthesized_expression "(local_20 == '\x06')" (( "(") (binary_expression "local_20 == '\x06'" (identifier "local_20") (== "==") (char_literal "'\x06'" (' "'") (escape_sequence "\x06") (' "'"))) () ")")) (compound_statement "{\n        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }\n        uVar9 = dcgettext(0,puVar7,5);\n        FUN_0002bc10(uVar9);\n        local_20 = '\x02';\n        local_28 = 0;\n        local_24 = 0;\n        local_30 = 0;\n        local_2c = 0;\n        if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }\nLAB_00023089:\n        iVar6 = local_70;\n        if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }\n      }" ({ "{") (if_statement "if ((int)-local_24 < (int)(uint)(local_28 != 0)) {\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }\n        else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }" (if "if") (parenthesized_expression "((int)-local_24 < (int)(uint)(local_28 != 0))" (( "(") (binary_expression "(int)-local_24 < (int)(uint)(local_28 != 0)" (cast_expression "(int)-local_24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (unary_expression "-local_24" (- "-") (identifier "local_24"))) (< "<") (cast_expression "(int)(uint)(local_28 != 0)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "(uint)(local_28 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_28 != 0)" (( "(") (binary_expression "local_28 != 0" (identifier "local_28") (!= "!=") (number_literal "0")) () ")"))))) () ")")) (compound_statement "{\n          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);\n        }" ({ "{") (expression_statement "puVar7 = (undefined *)(unaff_EDI + 0x2efe5);" (assignment_expression "puVar7 = (undefined *)(unaff_EDI + 0x2efe5)" (identifier "puVar7") (= "=") (cast_expression "(undefined *)(unaff_EDI + 0x2efe5)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x2efe5)" (( "(") (binary_expression "unaff_EDI + 0x2efe5" (identifier "unaff_EDI") (+ "+") (number_literal "0x2efe5")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }" (else "else") (compound_statement "{\n          puVar7 = &UNK_0002f015 + unaff_EDI;\n        }" ({ "{") (expression_statement "puVar7 = &UNK_0002f015 + unaff_EDI;" (assignment_expression "puVar7 = &UNK_0002f015 + unaff_EDI" (identifier "puVar7") (= "=") (binary_expression "&UNK_0002f015 + unaff_EDI" (pointer_expression "&UNK_0002f015" (& "&") (identifier "UNK_0002f015")) (+ "+") (identifier "unaff_EDI"))) (; ";")) (} "}")))) (expression_statement "uVar9 = dcgettext(0,puVar7,5);" (assignment_expression "uVar9 = dcgettext(0,puVar7,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,puVar7,5)" (identifier "dcgettext") (argument_list "(0,puVar7,5)" (( "(") (number_literal "0") (, ",") (identifier "puVar7") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bc10(uVar9);" (call_expression "FUN_0002bc10(uVar9)" (identifier "FUN_0002bc10") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "local_20 = '\x02';" (assignment_expression "local_20 = '\x02'" (identifier "local_20") (= "=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_84 == 0x13) {\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }\n        else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }" (if "if") (parenthesized_expression "(local_84 == 0x13)" (( "(") (binary_expression "local_84 == 0x13" (identifier "local_84") (== "==") (number_literal "0x13")) () ")")) (compound_statement "{\n          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;\nLAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        }" ({ "{") (expression_statement "bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;" (assignment_expression "bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1" (identifier "bVar3") (= "=") (binary_expression "(*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1" (binary_expression "(*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1" (parenthesized_expression "(*(byte *)((int)param_2 + 0x11) ^ local_1f)" (( "(") (binary_expression "*(byte *)((int)param_2 + 0x11) ^ local_1f" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (^ "^") (identifier "local_1f")) () ")")) (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (labeled_statement "LAB_000237b4:\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';" (statement_identifier "LAB_000237b4") (: ":") (expression_statement "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (& "&") (number_literal "0xfd")) (| "|") (binary_expression "bVar3 * '\x02'" (identifier "bVar3") (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))))) (; ";"))) (} "}")) (else_clause "else {\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }" (else "else") (compound_statement "{\n          if (local_84 != 0x14) goto LAB_0002301a;\nLAB_0002337b:\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          param_2[2] = uVar17 - local_28;\n          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n          bVar3 = *(byte *)((int)param_2 + 0x11);\n          bVar12 = (local_1f ^ bVar3) >> 1 & 1;\n          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }\n        }" ({ "{") (if_statement "if (local_84 != 0x14) goto LAB_0002301a;" (if "if") (parenthesized_expression "(local_84 != 0x14)" (( "(") (binary_expression "local_84 != 0x14" (identifier "local_84") (!= "!=") (number_literal "0x14")) () ")")) (goto_statement "goto LAB_0002301a;" (goto "goto") (statement_identifier "LAB_0002301a") (; ";"))) (labeled_statement "LAB_0002337b:\n          uVar14 = param_2[3];" (statement_identifier "LAB_0002337b") (: ":") (expression_statement "uVar14 = param_2[3];" (assignment_expression "uVar14 = param_2[3]" (identifier "uVar14") (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";"))) (expression_statement "uVar17 = param_2[2];" (assignment_expression "uVar17 = param_2[2]" (identifier "uVar17") (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_2[2] = uVar17 - local_28;" (assignment_expression "param_2[2] = uVar17 - local_28" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar17 - local_28" (identifier "uVar17") (- "-") (identifier "local_28"))) (; ";")) (expression_statement "param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);" (assignment_expression "param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28)" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(uVar14 - local_24) - (uint)(uVar17 < local_28)" (parenthesized_expression "(uVar14 - local_24)" (( "(") (binary_expression "uVar14 - local_24" (identifier "uVar14") (- "-") (identifier "local_24")) () ")")) (- "-") (call_expression "(uint)(uVar17 < local_28)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar17 < local_28)" (( "(") (binary_expression "uVar17 < local_28" (identifier "uVar17") (< "<") (identifier "local_28")) () ")"))))) (; ";")) (expression_statement "bVar3 = *(byte *)((int)param_2 + 0x11);" (assignment_expression "bVar3 = *(byte *)((int)param_2 + 0x11)" (identifier "bVar3") (= "=") (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "bVar12 = (local_1f ^ bVar3) >> 1 & 1;" (assignment_expression "bVar12 = (local_1f ^ bVar3) >> 1 & 1" (identifier "bVar12") (= "=") (binary_expression "(local_1f ^ bVar3) >> 1 & 1" (binary_expression "(local_1f ^ bVar3) >> 1" (parenthesized_expression "(local_1f ^ bVar3)" (( "(") (binary_expression "local_1f ^ bVar3" (identifier "local_1f") (^ "^") (identifier "bVar3")) () ")")) (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }\n          else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }" (if "if") (parenthesized_expression "(uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28))" (( "(") (binary_expression "uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)" (binary_expression "uVar14 < local_24" (identifier "uVar14") (< "<") (identifier "local_24")) (|| "||") (binary_expression "uVar14 - local_24 < (uint)(uVar17 < local_28)" (binary_expression "uVar14 - local_24" (identifier "uVar14") (- "-") (identifier "local_24")) (< "<") (call_expression "(uint)(uVar17 < local_28)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar17 < local_28)" (( "(") (binary_expression "uVar17 < local_28" (identifier "uVar17") (< "<") (identifier "local_28")) () ")"))))) () ")")) (compound_statement "{\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';\n          }" ({ "{") (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (binary_expression "bVar3 & 0xfd | (bVar12 ^ 1) * '\x02'" (binary_expression "bVar3 & 0xfd" (identifier "bVar3") (& "&") (number_literal "0xfd")) (| "|") (binary_expression "(bVar12 ^ 1) * '\x02'" (parenthesized_expression "(bVar12 ^ 1)" (( "(") (binary_expression "bVar12 ^ 1" (identifier "bVar12") (^ "^") (number_literal "1")) () ")")) (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))))) (; ";")) (} "}")) (else_clause "else {\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }" (else "else") (compound_statement "{\n            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';\n          }" ({ "{") (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (binary_expression "bVar3 & 0xfd | bVar12 * '\x02'" (binary_expression "bVar3 & 0xfd" (identifier "bVar3") (& "&") (number_literal "0xfd")) (| "|") (binary_expression "bVar12 * '\x02'" (identifier "bVar12") (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))))) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_00023089:\n        iVar6 = local_70;" (statement_identifier "LAB_00023089") (: ":") (expression_statement "iVar6 = local_70;" (assignment_expression "iVar6 = local_70" (identifier "iVar6") (= "=") (identifier "local_70")) (; ";"))) (if_statement "if (iVar5 != local_70) {\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }" (if "if") (parenthesized_expression "(iVar5 != local_70)" (( "(") (binary_expression "iVar5 != local_70" (identifier "iVar5") (!= "!=") (identifier "local_70")) () ")")) (compound_statement "{\nLAB_00023093:\n          iVar10 = iVar8;\n          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }\n        }" ({ "{") (labeled_statement "LAB_00023093:\n          iVar10 = iVar8;" (statement_identifier "LAB_00023093") (: ":") (expression_statement "iVar10 = iVar8;" (assignment_expression "iVar10 = iVar8" (identifier "iVar10") (= "=") (identifier "iVar8")) (; ";"))) (if_statement "if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;" (if "if") (parenthesized_expression "((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0))" (( "(") (binary_expression "(local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)" (parenthesized_expression "(local_70 == iVar8 + 0xc0)" (( "(") (binary_expression "local_70 == iVar8 + 0xc0" (identifier "local_70") (== "==") (binary_expression "iVar8 + 0xc0" (identifier "iVar8") (+ "+") (number_literal "0xc0"))) () ")")) (|| "||") (parenthesized_expression "(iVar5 == iVar8 + 0xc0)" (( "(") (binary_expression "iVar5 == iVar8 + 0xc0" (identifier "iVar5") (== "==") (binary_expression "iVar8 + 0xc0" (identifier "iVar8") (+ "+") (number_literal "0xc0"))) () ")"))) () ")")) (goto_statement "goto LAB_00023258;" (goto "goto") (statement_identifier "LAB_00023258") (; ";"))) (expression_statement "iVar6 = local_70;" (assignment_expression "iVar6 = local_70" (identifier "iVar6") (= "=") (identifier "local_70")) (; ";")) (if_statement "if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)) {\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }" (if "if") (parenthesized_expression "(((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14))" (( "(") (binary_expression "((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&\n             (iVar6 = local_70, local_84 != 0x14)" (parenthesized_expression "((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180))))))" (( "(") (binary_expression "(*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&\n              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))" (parenthesized_expression "(*(int *)(&DAT_00054839 + unaff_EDI) != local_70)" (( "(") (binary_expression "*(int *)(&DAT_00054839 + unaff_EDI) != local_70" (pointer_expression "*(int *)(&DAT_00054839 + unaff_EDI)" (* "*") (cast_expression "(int *)(&DAT_00054839 + unaff_EDI)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00054839 + unaff_EDI)" (( "(") (binary_expression "&DAT_00054839 + unaff_EDI" (pointer_expression "&DAT_00054839" (& "&") (identifier "DAT_00054839")) (+ "+") (identifier "unaff_EDI")) () ")")))) (!= "!=") (identifier "local_70")) () ")")) (&& "&&") (parenthesized_expression "((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))" (( "(") (parenthesized_expression "(((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180))))" (( "(") (binary_expression "((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&\n               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))" (parenthesized_expression "((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5))" (( "(") (binary_expression "(iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&\n                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)" (parenthesized_expression "(iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70))" (( "(") (comma_expression "iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)" (assignment_expression "iVar6 = iVar5" (identifier "iVar6") (= "=") (identifier "iVar5")) (, ",") (binary_expression "*(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&\n                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)" (binary_expression "*(int *)(&DAT_00054839 + unaff_EDI) != iVar5" (pointer_expression "*(int *)(&DAT_00054839 + unaff_EDI)" (* "*") (cast_expression "(int *)(&DAT_00054839 + unaff_EDI)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00054839 + unaff_EDI)" (( "(") (binary_expression "&DAT_00054839 + unaff_EDI" (pointer_expression "&DAT_00054839" (& "&") (identifier "DAT_00054839")) (+ "+") (identifier "unaff_EDI")) () ")")))) (!= "!=") (identifier "iVar5")) (&& "&&") (parenthesized_expression "(iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)" (( "(") (comma_expression "iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70" (assignment_expression "iVar6 = local_70" (identifier "iVar6") (= "=") (identifier "local_70")) (, ",") (binary_expression "*(int *)(&DAT_000548e9 + unaff_EDI) != local_70" (pointer_expression "*(int *)(&DAT_000548e9 + unaff_EDI)" (* "*") (cast_expression "(int *)(&DAT_000548e9 + unaff_EDI)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_000548e9 + unaff_EDI)" (( "(") (binary_expression "&DAT_000548e9 + unaff_EDI" (pointer_expression "&DAT_000548e9" (& "&") (identifier "DAT_000548e9")) (+ "+") (identifier "unaff_EDI")) () ")")))) (!= "!=") (identifier "local_70"))) () ")")))) () ")")) (&& "&&") (parenthesized_expression "(iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)" (( "(") (comma_expression "iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5" (assignment_expression "iVar6 = iVar5" (identifier "iVar6") (= "=") (identifier "iVar5")) (, ",") (binary_expression "*(int *)(&DAT_000548e9 + unaff_EDI) != iVar5" (pointer_expression "*(int *)(&DAT_000548e9 + unaff_EDI)" (* "*") (cast_expression "(int *)(&DAT_000548e9 + unaff_EDI)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_000548e9 + unaff_EDI)" (( "(") (binary_expression "&DAT_000548e9 + unaff_EDI" (pointer_expression "&DAT_000548e9" (& "&") (identifier "DAT_000548e9")) (+ "+") (identifier "unaff_EDI")) () ")")))) (!= "!=") (identifier "iVar5"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))" (( "(") (parenthesized_expression "(iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180))" (( "(") (comma_expression "iVar6 = local_70, iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)" (assignment_expression "iVar6 = local_70" (identifier "iVar6") (= "=") (identifier "local_70")) (, ",") (binary_expression "iVar5 != iVar8 + 0x180 &&\n                (iVar6 = iVar5, local_70 != iVar8 + 0x180)" (binary_expression "iVar5 != iVar8 + 0x180" (identifier "iVar5") (!= "!=") (binary_expression "iVar8 + 0x180" (identifier "iVar8") (+ "+") (number_literal "0x180"))) (&& "&&") (parenthesized_expression "(iVar6 = iVar5, local_70 != iVar8 + 0x180)" (( "(") (comma_expression "iVar6 = iVar5, local_70 != iVar8 + 0x180" (assignment_expression "iVar6 = iVar5" (identifier "iVar6") (= "=") (identifier "iVar5")) (, ",") (binary_expression "local_70 != iVar8 + 0x180" (identifier "local_70") (!= "!=") (binary_expression "iVar8 + 0x180" (identifier "iVar8") (+ "+") (number_literal "0x180")))) () ")")))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar6 = local_70, local_84 != 0x14)" (( "(") (comma_expression "iVar6 = local_70, local_84 != 0x14" (assignment_expression "iVar6 = local_70" (identifier "iVar6") (= "=") (identifier "local_70")) (, ",") (binary_expression "local_84 != 0x14" (identifier "local_84") (!= "!=") (number_literal "0x14"))) () ")"))) () ")")) (compound_statement "{\n            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);\n            FUN_0002bcf0(uVar9);\n          }" ({ "{") (expression_statement "uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);" (assignment_expression "uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,unaff_EDI + 0x2f041,5)" (identifier "dcgettext") (argument_list "(0,unaff_EDI + 0x2f041,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EDI + 0x2f041" (identifier "unaff_EDI") (+ "+") (number_literal "0x2f041")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bcf0(uVar9);" (call_expression "FUN_0002bcf0(uVar9)" (identifier "FUN_0002bcf0") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }" (else "else") (if_statement "if (local_84 == 0x13) {\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }\n      else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }" (if "if") (parenthesized_expression "(local_84 == 0x13)" (( "(") (binary_expression "local_84 == 0x13" (identifier "local_84") (== "==") (number_literal "0x13")) () ")")) (compound_statement "{\n        if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }\n        cVar13 = (char)param_2[4];\n        if (cVar13 != '\x02') goto LAB_0002302e;\n        uVar14 = param_2[3];\n        bVar3 = *(byte *)((int)param_2 + 0x11);\n        *(char *)(param_2 + 4) = local_20;\n        *param_2 = local_30;\n        param_2[1] = local_2c;\n        uVar17 = param_2[2];\n        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n        param_2[2] = uVar17 + local_28;\n        param_2[3] = uVar16;\n        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;\n        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }\n      }" ({ "{") (if_statement "if (local_20 == '\x02') {\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }" (if "if") (parenthesized_expression "(local_20 == '\x02')" (( "(") (binary_expression "local_20 == '\x02'" (identifier "local_20") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n          uVar14 = param_2[3];\n          uVar17 = param_2[2];\n          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);\n          param_2[2] = uVar17 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;\nLAB_00023820:\n          bVar3 = bVar3 ^ 1;\nLAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n          goto LAB_00023089;\n        }" ({ "{") (expression_statement "uVar14 = param_2[3];" (assignment_expression "uVar14 = param_2[3]" (identifier "uVar14") (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar17 = param_2[2];" (assignment_expression "uVar17 = param_2[2]" (identifier "uVar17") (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);" (assignment_expression "uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28)" (identifier "uVar16") (= "=") (binary_expression "uVar14 + local_24 + (uint)CARRY4(uVar17,local_28)" (binary_expression "uVar14 + local_24" (identifier "uVar14") (+ "+") (identifier "local_24")) (+ "+") (cast_expression "(uint)CARRY4(uVar17,local_28)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar17,local_28)" (identifier "CARRY4") (argument_list "(uVar17,local_28)" (( "(") (identifier "uVar17") (, ",") (identifier "local_28") () ")")))))) (; ";")) (expression_statement "param_2[2] = uVar17 + local_28;" (assignment_expression "param_2[2] = uVar17 + local_28" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar17 + local_28" (identifier "uVar17") (+ "+") (identifier "local_28"))) (; ";")) (expression_statement "bVar12 = *(byte *)((int)param_2 + 0x11);" (assignment_expression "bVar12 = *(byte *)((int)param_2 + 0x11)" (identifier "bVar12") (= "=") (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "param_2[3] = uVar16;" (assignment_expression "param_2[3] = uVar16" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "bVar3 = (local_1f ^ bVar12) >> 1 & 1;" (assignment_expression "bVar3 = (local_1f ^ bVar12) >> 1 & 1" (identifier "bVar3") (= "=") (binary_expression "(local_1f ^ bVar12) >> 1 & 1" (binary_expression "(local_1f ^ bVar12) >> 1" (parenthesized_expression "(local_1f ^ bVar12)" (( "(") (binary_expression "local_1f ^ bVar12" (identifier "local_1f") (^ "^") (identifier "bVar12")) () ")")) (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)\n          goto LAB_000237b4;" (if "if") (parenthesized_expression "(uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)" (( "(") (binary_expression "uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14" (binary_expression "uVar14 <= uVar16" (identifier "uVar14") (<= "<=") (identifier "uVar16")) (&& "&&") (binary_expression "(uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14" (call_expression "(uint)(uVar17 + local_28 < uVar17)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar17 + local_28 < uVar17)" (( "(") (binary_expression "uVar17 + local_28 < uVar17" (binary_expression "uVar17 + local_28" (identifier "uVar17") (+ "+") (identifier "local_28")) (< "<") (identifier "uVar17")) () ")"))) (<= "<=") (binary_expression "uVar16 - uVar14" (identifier "uVar16") (- "-") (identifier "uVar14")))) () ")")) (goto_statement "goto LAB_000237b4;" (goto "goto") (statement_identifier "LAB_000237b4") (; ";"))) (labeled_statement "LAB_00023820:\n          bVar3 = bVar3 ^ 1;" (statement_identifier "LAB_00023820") (: ":") (expression_statement "bVar3 = bVar3 ^ 1;" (assignment_expression "bVar3 = bVar3 ^ 1" (identifier "bVar3") (= "=") (binary_expression "bVar3 ^ 1" (identifier "bVar3") (^ "^") (number_literal "1"))) (; ";"))) (labeled_statement "LAB_00023823:\n          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';" (statement_identifier "LAB_00023823") (: ":") (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (binary_expression "bVar12 & 0xfd | bVar3 * '\x02'" (binary_expression "bVar12 & 0xfd" (identifier "bVar12") (& "&") (number_literal "0xfd")) (| "|") (binary_expression "bVar3 * '\x02'" (identifier "bVar3") (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))))) (; ";"))) (goto_statement "goto LAB_00023089;" (goto "goto") (statement_identifier "LAB_00023089") (; ";")) (} "}"))) (expression_statement "cVar13 = (char)param_2[4];" (assignment_expression "cVar13 = (char)param_2[4]" (identifier "cVar13") (= "=") (cast_expression "(char)param_2[4]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (cVar13 != '\x02') goto LAB_0002302e;" (if "if") (parenthesized_expression "(cVar13 != '\x02')" (( "(") (binary_expression "cVar13 != '\x02'" (identifier "cVar13") (!= "!=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (goto_statement "goto LAB_0002302e;" (goto "goto") (statement_identifier "LAB_0002302e") (; ";"))) (expression_statement "uVar14 = param_2[3];" (assignment_expression "uVar14 = param_2[3]" (identifier "uVar14") (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "bVar3 = *(byte *)((int)param_2 + 0x11);" (assignment_expression "bVar3 = *(byte *)((int)param_2 + 0x11)" (identifier "bVar3") (= "=") (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "*(char *)(param_2 + 4) = local_20;" (assignment_expression "*(char *)(param_2 + 4) = local_20" (pointer_expression "*(char *)(param_2 + 4)" (* "*") (cast_expression "(char *)(param_2 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_20")) (; ";")) (expression_statement "*param_2 = local_30;" (assignment_expression "*param_2 = local_30" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "param_2[1] = local_2c;" (assignment_expression "param_2[1] = local_2c" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_2c")) (; ";")) (expression_statement "uVar17 = param_2[2];" (assignment_expression "uVar17 = param_2[2]" (identifier "uVar17") (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);" (assignment_expression "uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28)" (identifier "uVar16") (= "=") (binary_expression "uVar14 + local_24 + (uint)CARRY4(uVar17,local_28)" (binary_expression "uVar14 + local_24" (identifier "uVar14") (+ "+") (identifier "local_24")) (+ "+") (cast_expression "(uint)CARRY4(uVar17,local_28)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar17,local_28)" (identifier "CARRY4") (argument_list "(uVar17,local_28)" (( "(") (identifier "uVar17") (, ",") (identifier "local_28") () ")")))))) (; ";")) (expression_statement "param_2[2] = uVar17 + local_28;" (assignment_expression "param_2[2] = uVar17 + local_28" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar17 + local_28" (identifier "uVar17") (+ "+") (identifier "local_28"))) (; ";")) (expression_statement "param_2[3] = uVar16;" (assignment_expression "param_2[3] = uVar16" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "bVar12 = (bVar3 ^ local_1f) >> 1 & 1;" (assignment_expression "bVar12 = (bVar3 ^ local_1f) >> 1 & 1" (identifier "bVar12") (= "=") (binary_expression "(bVar3 ^ local_1f) >> 1 & 1" (binary_expression "(bVar3 ^ local_1f) >> 1" (parenthesized_expression "(bVar3 ^ local_1f)" (( "(") (binary_expression "bVar3 ^ local_1f" (identifier "bVar3") (^ "^") (identifier "local_1f")) () ")")) (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }\n        else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }" (if "if") (parenthesized_expression "(uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17))" (( "(") (binary_expression "uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)" (binary_expression "uVar16 < uVar14" (identifier "uVar16") (< "<") (identifier "uVar14")) (|| "||") (binary_expression "uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)" (binary_expression "uVar16 - uVar14" (identifier "uVar16") (- "-") (identifier "uVar14")) (< "<") (call_expression "(uint)(uVar17 + local_28 < uVar17)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar17 + local_28 < uVar17)" (( "(") (binary_expression "uVar17 + local_28 < uVar17" (binary_expression "uVar17 + local_28" (identifier "uVar17") (+ "+") (identifier "local_28")) (< "<") (identifier "uVar17")) () ")"))))) () ")")) (compound_statement "{\n          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;\n        }" ({ "{") (expression_statement "*(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;" (assignment_expression "*(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (binary_expression "(bVar12 ^ 1) * '\x02' | bVar3 & 0xfd" (binary_expression "(bVar12 ^ 1) * '\x02'" (parenthesized_expression "(bVar12 ^ 1)" (( "(") (binary_expression "bVar12 ^ 1" (identifier "bVar12") (^ "^") (number_literal "1")) () ")")) (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (| "|") (binary_expression "bVar3 & 0xfd" (identifier "bVar3") (& "&") (number_literal "0xfd")))) (; ";")) (} "}")) (else_clause "else {\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }" (else "else") (compound_statement "{\n          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;\n        }" ({ "{") (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (binary_expression "bVar12 * '\x02' | bVar3 & 0xfd" (binary_expression "bVar12 * '\x02'" (identifier "bVar12") (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (| "|") (binary_expression "bVar3 & 0xfd" (identifier "bVar3") (& "&") (number_literal "0xfd")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }" (else "else") (compound_statement "{\n        if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }\nLAB_0002301a:\n        uVar17 = local_24;\n        uVar14 = local_28;\n        cVar13 = (char)param_2[4];\n        if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }\nLAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;\n        if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }\n        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n        param_2[1] = local_30;\n        if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }\n        uVar14 = param_2[3];\n        uVar17 = param_2[2];\n        param_2[2] = uVar17 - local_28;\n        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);\n        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }\n        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n        if (iVar5 != local_70) goto LAB_00023093;\n        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);\n        if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }\n        if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }\nLAB_00023258:\n        iVar6 = iVar10 + 0xc0;\n      }" ({ "{") (if_statement "if (local_84 == 0x14) {\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }" (if "if") (parenthesized_expression "(local_84 == 0x14)" (( "(") (binary_expression "local_84 == 0x14" (identifier "local_84") (== "==") (number_literal "0x14")) () ")")) (compound_statement "{\n          if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }\nLAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;\n        }" ({ "{") (if_statement "if (local_20 == '\x03') {\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }" (if "if") (parenthesized_expression "(local_20 == '\x03')" (( "(") (binary_expression "local_20 == '\x03'" (identifier "local_20") (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;\n            iVar6 = *param_2;\n            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }\n            uVar9 = FUN_0003b250(iVar6);\n            uVar11 = FUN_0003b250(*param_2);\n            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);\n            if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }\n          }" ({ "{") (if_statement "if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;" (if "if") (parenthesized_expression "(((char)param_2[4] != '\x03') || (iVar5 != local_70))" (( "(") (binary_expression "((char)param_2[4] != '\x03') || (iVar5 != local_70)" (parenthesized_expression "((char)param_2[4] != '\x03')" (( "(") (binary_expression "(char)param_2[4] != '\x03'" (cast_expression "(char)param_2[4]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]"))) (!= "!=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(iVar5 != local_70)" (( "(") (binary_expression "iVar5 != local_70" (identifier "iVar5") (!= "!=") (identifier "local_70")) () ")"))) () ")")) (goto_statement "goto LAB_0002301a;" (goto "goto") (statement_identifier "LAB_0002301a") (; ";"))) (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" (identifier "iVar6") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }\n            else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }" (if "if") (parenthesized_expression "(((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5))" (( "(") (binary_expression "((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||\n               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)" (parenthesized_expression "((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5))))" (( "(") (binary_expression "(iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||\n                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))" (parenthesized_expression "(iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0)" (( "(") (binary_expression "iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0" (identifier "iVar5") (== "==") (binary_expression "*(int *)(unaff_EDI + 0x4b1c1) + 0xc0" (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x4b1c1)" (( "(") (binary_expression "unaff_EDI + 0x4b1c1" (identifier "unaff_EDI") (+ "+") (number_literal "0x4b1c1")) () ")")))) (+ "+") (number_literal "0xc0"))) () ")")) (|| "||") (parenthesized_expression "((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))" (( "(") (parenthesized_expression "(iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5))" (( "(") (binary_expression "iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||\n                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)" (binary_expression "iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180" (identifier "iVar5") (== "==") (binary_expression "*(int *)(unaff_EDI + 0x4b1c1) + 0x180" (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x4b1c1)" (( "(") (binary_expression "unaff_EDI + 0x4b1c1" (identifier "unaff_EDI") (+ "+") (number_literal "0x4b1c1")) () ")")))) (+ "+") (number_literal "0x180"))) (|| "||") (parenthesized_expression "(*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)" (( "(") (binary_expression "*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5" (pointer_expression "*(int *)(&DAT_000548e9 + unaff_EDI)" (* "*") (cast_expression "(int *)(&DAT_000548e9 + unaff_EDI)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_000548e9 + unaff_EDI)" (( "(") (binary_expression "&DAT_000548e9 + unaff_EDI" (pointer_expression "&DAT_000548e9" (& "&") (identifier "DAT_000548e9")) (+ "+") (identifier "unaff_EDI")) () ")")))) (== "==") (identifier "iVar5")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)" (( "(") (binary_expression "*(int *)(&DAT_00054839 + unaff_EDI) == iVar5" (pointer_expression "*(int *)(&DAT_00054839 + unaff_EDI)" (* "*") (cast_expression "(int *)(&DAT_00054839 + unaff_EDI)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00054839 + unaff_EDI)" (( "(") (binary_expression "&DAT_00054839 + unaff_EDI" (pointer_expression "&DAT_00054839" (& "&") (identifier "DAT_00054839")) (+ "+") (identifier "unaff_EDI")) () ")")))) (== "==") (identifier "iVar5")) () ")"))) () ")")) (compound_statement "{\nLAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;\n            }" ({ "{") (labeled_statement "LAB_000236bc:\n              if (local_30 != iVar6) goto LAB_000236cb;" (statement_identifier "LAB_000236bc") (: ":") (if_statement "if (local_30 != iVar6) goto LAB_000236cb;" (if "if") (parenthesized_expression "(local_30 != iVar6)" (( "(") (binary_expression "local_30 != iVar6" (identifier "local_30") (!= "!=") (identifier "iVar6")) () ")")) (goto_statement "goto LAB_000236cb;" (goto "goto") (statement_identifier "LAB_000236cb") (; ";")))) (} "}")) (else_clause "else {\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }" (else "else") (compound_statement "{\n              iVar6 = FUN_00038140(iVar6,0);\n              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }\n            }" ({ "{") (expression_statement "iVar6 = FUN_00038140(iVar6,0);" (assignment_expression "iVar6 = FUN_00038140(iVar6,0)" (identifier "iVar6") (= "=") (call_expression "FUN_00038140(iVar6,0)" (identifier "FUN_00038140") (argument_list "(iVar6,0)" (( "(") (identifier "iVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 ) {\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }" (if "if") (parenthesized_expression "((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)\n                 )" (( "(") (binary_expression "(iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)" (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)" (( "(") (comma_expression "iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0" (assignment_expression "iVar10 = FUN_00038140(local_30,0)" (identifier "iVar10") (= "=") (call_expression "FUN_00038140(local_30,0)" (identifier "FUN_00038140") (argument_list "(local_30,0)" (( "(") (identifier "local_30") (, ",") (number_literal "0") () ")")))) (, ",") (comma_expression "iVar6 = local_30, iVar10 != 0" (assignment_expression "iVar6 = local_30" (identifier "iVar6") (= "=") (identifier "local_30")) (, ",") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n                iVar6 = *param_2;\n                goto LAB_000236bc;\n              }" ({ "{") (expression_statement "iVar6 = *param_2;" (assignment_expression "iVar6 = *param_2" (identifier "iVar6") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (goto_statement "goto LAB_000236bc;" (goto "goto") (statement_identifier "LAB_000236bc") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar9 = FUN_0003b250(iVar6);" (assignment_expression "uVar9 = FUN_0003b250(iVar6)" (identifier "uVar9") (= "=") (call_expression "FUN_0003b250(iVar6)" (identifier "FUN_0003b250") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "uVar11 = FUN_0003b250(*param_2);" (assignment_expression "uVar11 = FUN_0003b250(*param_2)" (identifier "uVar11") (= "=") (call_expression "FUN_0003b250(*param_2)" (identifier "FUN_0003b250") (argument_list "(*param_2)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")))) (; ";")) (expression_statement "iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);" (assignment_expression "iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c)" (identifier "iVar6") (= "=") (call_expression "FUN_00024e60(uVar11,uVar9,&local_3c)" (identifier "FUN_00024e60") (argument_list "(uVar11,uVar9,&local_3c)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar9") (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              lVar21 = FUN_00039de0(*param_2);\n              lVar22 = FUN_00039de0(local_30);\n              uVar14 = param_2[2];\n              uVar17 = param_2[3];\n              uVar16 = uVar14 - local_28;\n              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);\n              param_2[2] = uVar16;\n              param_2[3] = uVar18;\n              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;\n              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }\n              *(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n              uVar14 = uVar16 - local_3c;\n              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);\n              param_2[2] = uVar14;\n              param_2[3] = uVar17;\n              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }\n              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);\n              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);\n              *(longlong *)(param_2 + 2) = lVar2;\n              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);\n              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }\n              *(undefined1 *)(param_2 + 4) = 2;\n              *param_2 = 0;\n              iVar6 = local_70;\n              goto joined_r0x00023268;\n            }" ({ "{") (expression_statement "lVar21 = FUN_00039de0(*param_2);" (assignment_expression "lVar21 = FUN_00039de0(*param_2)" (identifier "lVar21") (= "=") (call_expression "FUN_00039de0(*param_2)" (identifier "FUN_00039de0") (argument_list "(*param_2)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")))) (; ";")) (expression_statement "lVar22 = FUN_00039de0(local_30);" (assignment_expression "lVar22 = FUN_00039de0(local_30)" (identifier "lVar22") (= "=") (call_expression "FUN_00039de0(local_30)" (identifier "FUN_00039de0") (argument_list "(local_30)" (( "(") (identifier "local_30") () ")")))) (; ";")) (expression_statement "uVar14 = param_2[2];" (assignment_expression "uVar14 = param_2[2]" (identifier "uVar14") (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar17 = param_2[3];" (assignment_expression "uVar17 = param_2[3]" (identifier "uVar17") (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar16 = uVar14 - local_28;" (assignment_expression "uVar16 = uVar14 - local_28" (identifier "uVar16") (= "=") (binary_expression "uVar14 - local_28" (identifier "uVar14") (- "-") (identifier "local_28"))) (; ";")) (expression_statement "uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);" (assignment_expression "uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28)" (identifier "uVar18") (= "=") (binary_expression "(uVar17 - local_24) - (uint)(uVar14 < local_28)" (parenthesized_expression "(uVar17 - local_24)" (( "(") (binary_expression "uVar17 - local_24" (identifier "uVar17") (- "-") (identifier "local_24")) () ")")) (- "-") (call_expression "(uint)(uVar14 < local_28)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 < local_28)" (( "(") (binary_expression "uVar14 < local_28" (identifier "uVar14") (< "<") (identifier "local_28")) () ")"))))) (; ";")) (expression_statement "param_2[2] = uVar16;" (assignment_expression "param_2[2] = uVar16" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "param_2[3] = uVar18;" (assignment_expression "param_2[3] = uVar18" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;" (assignment_expression "bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1" (identifier "bVar3") (= "=") (binary_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1" (binary_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1" (parenthesized_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11))" (( "(") (binary_expression "local_1f ^ *(byte *)((int)param_2 + 0x11)" (identifier "local_1f") (^ "^") (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")"))))) () ")")) (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {\n                bVar3 = bVar3 ^ 1;\n              }" (if "if") (parenthesized_expression "(uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28))" (( "(") (binary_expression "uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)" (binary_expression "uVar17 < local_24" (identifier "uVar17") (< "<") (identifier "local_24")) (|| "||") (binary_expression "uVar17 - local_24 < (uint)(uVar14 < local_28)" (binary_expression "uVar17 - local_24" (identifier "uVar17") (- "-") (identifier "local_24")) (< "<") (call_expression "(uint)(uVar14 < local_28)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 < local_28)" (( "(") (binary_expression "uVar14 < local_28" (identifier "uVar14") (< "<") (identifier "local_28")) () ")"))))) () ")")) (compound_statement "{\n                bVar3 = bVar3 ^ 1;\n              }" ({ "{") (expression_statement "bVar3 = bVar3 ^ 1;" (assignment_expression "bVar3 = bVar3 ^ 1" (identifier "bVar3") (= "=") (binary_expression "bVar3 ^ 1" (identifier "bVar3") (^ "^") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) =\n                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (& "&") (number_literal "0xfd")) (| "|") (binary_expression "bVar3 * '\x02'" (identifier "bVar3") (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))))) (; ";")) (expression_statement "uVar14 = uVar16 - local_3c;" (assignment_expression "uVar14 = uVar16 - local_3c" (identifier "uVar14") (= "=") (binary_expression "uVar16 - local_3c" (identifier "uVar16") (- "-") (identifier "local_3c"))) (; ";")) (expression_statement "uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);" (assignment_expression "uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c)" (identifier "uVar17") (= "=") (binary_expression "(uVar18 - local_38) - (uint)(uVar16 < local_3c)" (parenthesized_expression "(uVar18 - local_38)" (( "(") (binary_expression "uVar18 - local_38" (identifier "uVar18") (- "-") (identifier "local_38")) () ")")) (- "-") (call_expression "(uint)(uVar16 < local_3c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar16 < local_3c)" (( "(") (binary_expression "uVar16 < local_3c" (identifier "uVar16") (< "<") (identifier "local_3c")) () ")"))))) (; ";")) (expression_statement "param_2[2] = uVar14;" (assignment_expression "param_2[2] = uVar14" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "param_2[3] = uVar17;" (assignment_expression "param_2[3] = uVar17" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar17")) (; ";")) (if_statement "if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }\n              else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }" (if "if") (parenthesized_expression "(uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c))" (( "(") (binary_expression "uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)" (binary_expression "uVar18 < local_38" (identifier "uVar18") (< "<") (identifier "local_38")) (|| "||") (binary_expression "uVar18 - local_38 < (uint)(uVar16 < local_3c)" (binary_expression "uVar18 - local_38" (identifier "uVar18") (- "-") (identifier "local_38")) (< "<") (call_expression "(uint)(uVar16 < local_3c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar16 < local_3c)" (( "(") (binary_expression "uVar16 < local_3c" (identifier "uVar16") (< "<") (identifier "local_3c")) () ")"))))) () ")")) (compound_statement "{\n                bVar3 = bVar3 ^ 1;\n                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';\n                *(byte *)((int)param_2 + 0x11) = bVar12;\n              }" ({ "{") (expression_statement "bVar3 = bVar3 ^ 1;" (assignment_expression "bVar3 = bVar3 ^ 1" (identifier "bVar3") (= "=") (binary_expression "bVar3 ^ 1" (identifier "bVar3") (^ "^") (number_literal "1"))) (; ";")) (expression_statement "bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';" (assignment_expression "bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (identifier "bVar12") (= "=") (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (& "&") (number_literal "0xfd")) (| "|") (binary_expression "bVar3 * '\x02'" (identifier "bVar3") (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))))) (; ";")) (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar12;" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar12" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (identifier "bVar12")) (; ";")) (} "}")) (else_clause "else {\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }" (else "else") (compound_statement "{\n                bVar12 = *(byte *)((int)param_2 + 0x11);\n              }" ({ "{") (expression_statement "bVar12 = *(byte *)((int)param_2 + 0x11);" (assignment_expression "bVar12 = *(byte *)((int)param_2 + 0x11)" (identifier "bVar12") (= "=") (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (} "}")))) (expression_statement "lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);" (assignment_expression "lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14)" (identifier "lVar2") (= "=") (binary_expression "(lVar21 - lVar22) + CONCAT44(uVar17,uVar14)" (parenthesized_expression "(lVar21 - lVar22)" (( "(") (binary_expression "lVar21 - lVar22" (identifier "lVar21") (- "-") (identifier "lVar22")) () ")")) (+ "+") (call_expression "CONCAT44(uVar17,uVar14)" (identifier "CONCAT44") (argument_list "(uVar17,uVar14)" (( "(") (identifier "uVar17") (, ",") (identifier "uVar14") () ")"))))) (; ";")) (expression_statement "uVar16 = (uint)((ulonglong)lVar2 >> 0x20);" (assignment_expression "uVar16 = (uint)((ulonglong)lVar2 >> 0x20)" (identifier "uVar16") (= "=") (call_expression "(uint)((ulonglong)lVar2 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar2")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "*(longlong *)(param_2 + 2) = lVar2;" (assignment_expression "*(longlong *)(param_2 + 2) = lVar2" (pointer_expression "*(longlong *)(param_2 + 2)" (* "*") (cast_expression "(longlong *)(param_2 + 2)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 2)" (( "(") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "lVar2")) (; ";")) (expression_statement "bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);" (assignment_expression "bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f)" (identifier "bVar3") (= "=") (binary_expression "bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f)" (identifier "bVar3") (^ "^") (call_expression "(byte)((ulonglong)(lVar21 - lVar22) >> 0x3f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)(lVar21 - lVar22) >> 0x3f)" (( "(") (binary_expression "(ulonglong)(lVar21 - lVar22) >> 0x3f" (call_expression "(ulonglong)(lVar21 - lVar22)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(lVar21 - lVar22)" (( "(") (binary_expression "lVar21 - lVar22" (identifier "lVar21") (- "-") (identifier "lVar22")) () ")"))) (>> ">>") (number_literal "0x3f")) () ")"))))) (; ";")) (if_statement "if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }\n              else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }" (if "if") (parenthesized_expression "(uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14))" (( "(") (binary_expression "uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)" (binary_expression "uVar16 < uVar17" (identifier "uVar16") (< "<") (identifier "uVar17")) (|| "||") (binary_expression "uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)" (binary_expression "uVar16 - uVar17" (identifier "uVar16") (- "-") (identifier "uVar17")) (< "<") (call_expression "(uint)((uint)lVar2 < uVar14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)lVar2 < uVar14)" (( "(") (binary_expression "(uint)lVar2 < uVar14" (cast_expression "(uint)lVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar2")) (< "<") (identifier "uVar14")) () ")"))))) () ")")) (compound_statement "{\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';\n              }" ({ "{") (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (binary_expression "bVar12 & 0xfd | (bVar3 ^ 1) * '\x02'" (binary_expression "bVar12 & 0xfd" (identifier "bVar12") (& "&") (number_literal "0xfd")) (| "|") (binary_expression "(bVar3 ^ 1) * '\x02'" (parenthesized_expression "(bVar3 ^ 1)" (( "(") (binary_expression "bVar3 ^ 1" (identifier "bVar3") (^ "^") (number_literal "1")) () ")")) (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))))) (; ";")) (} "}")) (else_clause "else {\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }" (else "else") (compound_statement "{\n                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';\n              }" ({ "{") (expression_statement "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (binary_expression "bVar12 & 0xfd | bVar3 * '\x02'" (binary_expression "bVar12 & 0xfd" (identifier "bVar12") (& "&") (number_literal "0xfd")) (| "|") (binary_expression "bVar3 * '\x02'" (identifier "bVar3") (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))))) (; ";")) (} "}")))) (expression_statement "*(undefined1 *)(param_2 + 4) = 2;" (assignment_expression "*(undefined1 *)(param_2 + 4) = 2" (pointer_expression "*(undefined1 *)(param_2 + 4)" (* "*") (cast_expression "(undefined1 *)(param_2 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = local_70;" (assignment_expression "iVar6 = local_70" (identifier "iVar6") (= "=") (identifier "local_70")) (; ";")) (goto_statement "goto joined_r0x00023268;" (goto "goto") (statement_identifier "joined_r0x00023268") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_000236cb:\n          if (local_20 == '\x02') goto LAB_0002337b;" (statement_identifier "LAB_000236cb") (: ":") (if_statement "if (local_20 == '\x02') goto LAB_0002337b;" (if "if") (parenthesized_expression "(local_20 == '\x02')" (( "(") (binary_expression "local_20 == '\x02'" (identifier "local_20") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (goto_statement "goto LAB_0002337b;" (goto "goto") (statement_identifier "LAB_0002337b") (; ";")))) (} "}"))) (labeled_statement "LAB_0002301a:\n        uVar17 = local_24;" (statement_identifier "LAB_0002301a") (: ":") (expression_statement "uVar17 = local_24;" (assignment_expression "uVar17 = local_24" (identifier "uVar17") (= "=") (identifier "local_24")) (; ";"))) (expression_statement "uVar14 = local_28;" (assignment_expression "uVar14 = local_28" (identifier "uVar14") (= "=") (identifier "local_28")) (; ";")) (expression_statement "cVar13 = (char)param_2[4];" (assignment_expression "cVar13 = (char)param_2[4]" (identifier "cVar13") (= "=") (cast_expression "(char)param_2[4]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (cVar13 == '\x02') {\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }" (if "if") (parenthesized_expression "(cVar13 == '\x02')" (( "(") (binary_expression "cVar13 == '\x02'" (identifier "cVar13") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n          if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }\nLAB_0002303c:\n          iVar6 = FUN_00021360(param_2);\n          *param_2 = iVar6;\n          iVar6 = FUN_00021360(&local_30);\n          param_2[1] = iVar6;\n          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n          param_2[2] = 0;\n          param_2[3] = 0;\n          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;\n          goto LAB_00023089;\n        }" ({ "{") (if_statement "if (local_20 == '\x02') {\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }" (if "if") (parenthesized_expression "(local_20 == '\x02')" (( "(") (binary_expression "local_20 == '\x02'" (identifier "local_20") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n            if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }\n            if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }\n          }" ({ "{") (if_statement "if (local_24 == 0 && local_28 == 0) {\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }\n            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }" (if "if") (parenthesized_expression "(local_24 == 0 && local_28 == 0)" (( "(") (binary_expression "local_24 == 0 && local_28 == 0" (binary_expression "local_24 == 0" (identifier "local_24") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_28 == 0" (identifier "local_28") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n              if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }\n            }" ({ "{") (if_statement "if (local_84 - 0xbU < 2) {\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }" (if "if") (parenthesized_expression "(local_84 - 0xbU < 2)" (( "(") (binary_expression "local_84 - 0xbU < 2" (binary_expression "local_84 - 0xbU" (identifier "local_84") (- "-") (number_literal "0xbU")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);\n                FUN_0002bc10(uVar9);\n              }" ({ "{") (expression_statement "uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);" (assignment_expression "uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,&UNK_0002ee06 + unaff_EDI,5)" (identifier "dcgettext") (argument_list "(0,&UNK_0002ee06 + unaff_EDI,5)" (( "(") (number_literal "0") (, ",") (binary_expression "&UNK_0002ee06 + unaff_EDI" (pointer_expression "&UNK_0002ee06" (& "&") (identifier "UNK_0002ee06")) (+ "+") (identifier "unaff_EDI")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002bc10(uVar9);" (call_expression "FUN_0002bc10(uVar9)" (identifier "FUN_0002bc10") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }" (else "else") (if_statement "if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    ) {\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }" (if "if") (parenthesized_expression "((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)\n                    )" (( "(") (binary_expression "(local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)" (parenthesized_expression "(local_24 != 0 || -local_24 < (uint)(0x3f < local_28))" (( "(") (binary_expression "local_24 != 0 || -local_24 < (uint)(0x3f < local_28)" (binary_expression "local_24 != 0" (identifier "local_24") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "-local_24 < (uint)(0x3f < local_28)" (unary_expression "-local_24" (- "-") (identifier "local_24")) (< "<") (call_expression "(uint)(0x3f < local_28)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x3f < local_28)" (( "(") (binary_expression "0x3f < local_28" (number_literal "0x3f") (< "<") (identifier "local_28")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(local_84 - 0xdU < 2)" (( "(") (binary_expression "local_84 - 0xdU < 2" (binary_expression "local_84 - 0xdU" (identifier "local_84") (- "-") (number_literal "0xdU")) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);\n              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);\n              param_2[2] = 0;\n              param_2[3] = 0;\n            }" ({ "{") (expression_statement "uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);" (assignment_expression "uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,unaff_EDI + 0x2ee17,5)" (identifier "dcgettext") (argument_list "(0,unaff_EDI + 0x2ee17,5)" (( "(") (number_literal "0") (, ",") (binary_expression "unaff_EDI + 0x2ee17" (identifier "unaff_EDI") (+ "+") (number_literal "0x2ee17")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);" (call_expression "FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0)" (identifier "FUN_0002c210") (argument_list "(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar14") (, ",") (identifier "uVar17") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0x3f") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "param_2[2] = 0;" (assignment_expression "param_2[2] = 0" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2[3] = 0;" (assignment_expression "param_2[3] = 0" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))))) (if_statement "if (local_84 - 10U < 0x13) {\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }" (if "if") (parenthesized_expression "(local_84 - 10U < 0x13)" (( "(") (binary_expression "local_84 - 10U < 0x13" (binary_expression "local_84 - 10U" (identifier "local_84") (- "-") (number_literal "10U")) (< "<") (number_literal "0x13")) () ")")) (compound_statement "{\n                    \n                    \n              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();\n              return iVar8;\n            }" ({ "{") (expression_statement "iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))();" (assignment_expression "iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))()" (identifier "iVar8") (= "=") (call_expression "(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))()" (parenthesized_expression "(*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219))" (( "(") (pointer_expression "*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219)" (* "*") (cast_expression "(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219)" (( "(") (binary_expression "*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI + 0x4b219" (binary_expression "*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +\n                                unaff_EDI" (pointer_expression "*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4)" (( "(") (binary_expression "unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4" (binary_expression "unaff_EDI + 0x2f3d1" (identifier "unaff_EDI") (+ "+") (number_literal "0x2f3d1")) (+ "+") (binary_expression "(local_84 - 10U) * 4" (parenthesized_expression "(local_84 - 10U)" (( "(") (binary_expression "local_84 - 10U" (identifier "local_84") (- "-") (number_literal "10U")) () ")")) (* "*") (number_literal "4"))) () ")")))) (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "0x4b219")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar8;" (return "return") (identifier "iVar8") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0002303c:\n          iVar6 = FUN_00021360(param_2);" (statement_identifier "LAB_0002303c") (: ":") (expression_statement "iVar6 = FUN_00021360(param_2);" (assignment_expression "iVar6 = FUN_00021360(param_2)" (identifier "iVar6") (= "=") (call_expression "FUN_00021360(param_2)" (identifier "FUN_00021360") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";"))) (expression_statement "*param_2 = iVar6;" (assignment_expression "*param_2 = iVar6" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "iVar6 = FUN_00021360(&local_30);" (assignment_expression "iVar6 = FUN_00021360(&local_30)" (identifier "iVar6") (= "=") (call_expression "FUN_00021360(&local_30)" (identifier "FUN_00021360") (argument_list "(&local_30)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")")))) (; ";")) (expression_statement "param_2[1] = iVar6;" (assignment_expression "param_2[1] = iVar6" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(undefined1 *)(param_2 + 4) = (undefined1)local_84;" (assignment_expression "*(undefined1 *)(param_2 + 4) = (undefined1)local_84" (pointer_expression "*(undefined1 *)(param_2 + 4)" (* "*") (cast_expression "(undefined1 *)(param_2 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (= "=") (cast_expression "(undefined1)local_84" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_84"))) (; ";")) (expression_statement "param_2[2] = 0;" (assignment_expression "param_2[2] = 0" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2[3] = 0;" (assignment_expression "param_2[3] = 0" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;" (assignment_expression "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfc | 1" (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfc" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (& "&") (number_literal "0xfc")) (| "|") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_00023089;" (goto "goto") (statement_identifier "LAB_00023089") (; ";")) (} "}"))) (labeled_statement "LAB_0002302e:\n        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;" (statement_identifier "LAB_0002302e") (: ":") (if_statement "if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;" (if "if") (parenthesized_expression "((cVar13 != '\x03') || (local_20 != '\x03'))" (( "(") (binary_expression "(cVar13 != '\x03') || (local_20 != '\x03')" (parenthesized_expression "(cVar13 != '\x03')" (( "(") (binary_expression "cVar13 != '\x03'" (identifier "cVar13") (!= "!=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(local_20 != '\x03')" (( "(") (binary_expression "local_20 != '\x03'" (identifier "local_20") (!= "!=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_0002303c;" (goto "goto") (statement_identifier "LAB_0002303c") (; ";")))) (if_statement "if (1 < local_84 - 0x13U) {\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }" (if "if") (parenthesized_expression "(1 < local_84 - 0x13U)" (( "(") (binary_expression "1 < local_84 - 0x13U" (number_literal "1") (< "<") (binary_expression "local_84 - 0x13U" (identifier "local_84") (- "-") (number_literal "0x13U"))) () ")")) (compound_statement "{\n          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }\n          goto LAB_0002303c;\n        }" ({ "{") (if_statement "if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }" (if "if") (parenthesized_expression "((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0))" (( "(") (binary_expression "(param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)" (parenthesized_expression "(param_2[3] == 0 && local_24 == 0)" (( "(") (binary_expression "param_2[3] == 0 && local_24 == 0" (binary_expression "param_2[3] == 0" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_24 == 0" (identifier "local_24") (== "==") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(param_2[2] == 0 && local_28 == 0)" (( "(") (binary_expression "param_2[2] == 0 && local_28 == 0" (binary_expression "param_2[2] == 0" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_28 == 0" (identifier "local_28") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;\n            param_2[1] = local_30;\n            goto LAB_00023089;\n          }" ({ "{") (expression_statement "*(undefined1 *)(param_2 + 4) = (undefined1)local_84;" (assignment_expression "*(undefined1 *)(param_2 + 4) = (undefined1)local_84" (pointer_expression "*(undefined1 *)(param_2 + 4)" (* "*") (cast_expression "(undefined1 *)(param_2 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (= "=") (cast_expression "(undefined1)local_84" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_84"))) (; ";")) (expression_statement "param_2[1] = local_30;" (assignment_expression "param_2[1] = local_30" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_30")) (; ";")) (goto_statement "goto LAB_00023089;" (goto "goto") (statement_identifier "LAB_00023089") (; ";")) (} "}"))) (goto_statement "goto LAB_0002303c;" (goto "goto") (statement_identifier "LAB_0002303c") (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(param_2 + 4) = (undefined1)local_84;" (assignment_expression "*(undefined1 *)(param_2 + 4) = (undefined1)local_84" (pointer_expression "*(undefined1 *)(param_2 + 4)" (* "*") (cast_expression "(undefined1 *)(param_2 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (= "=") (cast_expression "(undefined1)local_84" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "local_84"))) (; ";")) (expression_statement "param_2[1] = local_30;" (assignment_expression "param_2[1] = local_30" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_30")) (; ";")) (if_statement "if (local_84 == 0x13) {\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }" (if "if") (parenthesized_expression "(local_84 == 0x13)" (( "(") (binary_expression "local_84 == 0x13" (identifier "local_84") (== "==") (number_literal "0x13")) () ")")) (compound_statement "{\n          uVar14 = param_2[2];\n          uVar17 = param_2[3];\n          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);\n          param_2[2] = uVar14 + local_28;\n          bVar12 = *(byte *)((int)param_2 + 0x11);\n          param_2[3] = uVar16;\n          bVar3 = (local_1f ^ bVar12) >> 1 & 1;\n          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;\n          goto LAB_00023823;\n        }" ({ "{") (expression_statement "uVar14 = param_2[2];" (assignment_expression "uVar14 = param_2[2]" (identifier "uVar14") (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar17 = param_2[3];" (assignment_expression "uVar17 = param_2[3]" (identifier "uVar17") (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);" (assignment_expression "uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28)" (identifier "uVar16") (= "=") (binary_expression "uVar17 + local_24 + (uint)CARRY4(uVar14,local_28)" (binary_expression "uVar17 + local_24" (identifier "uVar17") (+ "+") (identifier "local_24")) (+ "+") (cast_expression "(uint)CARRY4(uVar14,local_28)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar14,local_28)" (identifier "CARRY4") (argument_list "(uVar14,local_28)" (( "(") (identifier "uVar14") (, ",") (identifier "local_28") () ")")))))) (; ";")) (expression_statement "param_2[2] = uVar14 + local_28;" (assignment_expression "param_2[2] = uVar14 + local_28" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar14 + local_28" (identifier "uVar14") (+ "+") (identifier "local_28"))) (; ";")) (expression_statement "bVar12 = *(byte *)((int)param_2 + 0x11);" (assignment_expression "bVar12 = *(byte *)((int)param_2 + 0x11)" (identifier "bVar12") (= "=") (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "param_2[3] = uVar16;" (assignment_expression "param_2[3] = uVar16" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "bVar3 = (local_1f ^ bVar12) >> 1 & 1;" (assignment_expression "bVar3 = (local_1f ^ bVar12) >> 1 & 1" (identifier "bVar3") (= "=") (binary_expression "(local_1f ^ bVar12) >> 1 & 1" (binary_expression "(local_1f ^ bVar12) >> 1" (parenthesized_expression "(local_1f ^ bVar12)" (( "(") (binary_expression "local_1f ^ bVar12" (identifier "local_1f") (^ "^") (identifier "bVar12")) () ")")) (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))\n          goto LAB_00023820;" (if "if") (parenthesized_expression "(uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))" (( "(") (binary_expression "uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14)" (binary_expression "uVar16 < uVar17" (identifier "uVar16") (< "<") (identifier "uVar17")) (|| "||") (binary_expression "uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14)" (binary_expression "uVar16 - uVar17" (identifier "uVar16") (- "-") (identifier "uVar17")) (< "<") (call_expression "(uint)(uVar14 + local_28 < uVar14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 + local_28 < uVar14)" (( "(") (binary_expression "uVar14 + local_28 < uVar14" (binary_expression "uVar14 + local_28" (identifier "uVar14") (+ "+") (identifier "local_28")) (< "<") (identifier "uVar14")) () ")"))))) () ")")) (goto_statement "goto LAB_00023820;" (goto "goto") (statement_identifier "LAB_00023820") (; ";"))) (goto_statement "goto LAB_00023823;" (goto "goto") (statement_identifier "LAB_00023823") (; ";")) (} "}"))) (expression_statement "uVar14 = param_2[3];" (assignment_expression "uVar14 = param_2[3]" (identifier "uVar14") (= "=") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar17 = param_2[2];" (assignment_expression "uVar17 = param_2[2]" (identifier "uVar17") (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_2[2] = uVar17 - local_28;" (assignment_expression "param_2[2] = uVar17 - local_28" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar17 - local_28" (identifier "uVar17") (- "-") (identifier "local_28"))) (; ";")) (expression_statement "param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);" (assignment_expression "param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28)" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(uVar14 - local_24) - (uint)(uVar17 < local_28)" (parenthesized_expression "(uVar14 - local_24)" (( "(") (binary_expression "uVar14 - local_24" (identifier "uVar14") (- "-") (identifier "local_24")) () ")")) (- "-") (call_expression "(uint)(uVar17 < local_28)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar17 < local_28)" (( "(") (binary_expression "uVar17 < local_28" (identifier "uVar17") (< "<") (identifier "local_28")) () ")"))))) (; ";")) (expression_statement "bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;" (assignment_expression "bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1" (identifier "bVar3") (= "=") (binary_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1" (binary_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1" (parenthesized_expression "(local_1f ^ *(byte *)((int)param_2 + 0x11))" (( "(") (binary_expression "local_1f ^ *(byte *)((int)param_2 + 0x11)" (identifier "local_1f") (^ "^") (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")"))))) () ")")) (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {\n          bVar3 = bVar3 ^ 1;\n        }" (if "if") (parenthesized_expression "(uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28))" (( "(") (binary_expression "uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)" (binary_expression "uVar14 < local_24" (identifier "uVar14") (< "<") (identifier "local_24")) (|| "||") (binary_expression "uVar14 - local_24 < (uint)(uVar17 < local_28)" (binary_expression "uVar14 - local_24" (identifier "uVar14") (- "-") (identifier "local_24")) (< "<") (call_expression "(uint)(uVar17 < local_28)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar17 < local_28)" (( "(") (binary_expression "uVar17 < local_28" (identifier "uVar17") (< "<") (identifier "local_28")) () ")"))))) () ")")) (compound_statement "{\n          bVar3 = bVar3 ^ 1;\n        }" ({ "{") (expression_statement "bVar3 = bVar3 ^ 1;" (assignment_expression "bVar3 = bVar3 ^ 1" (identifier "bVar3") (= "=") (binary_expression "bVar3 ^ 1" (identifier "bVar3") (^ "^") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';" (assignment_expression "*(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02'" (binary_expression "*(byte *)((int)param_2 + 0x11) & 0xfd" (pointer_expression "*(byte *)((int)param_2 + 0x11)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x11)" (( "(") (binary_expression "(int)param_2 + 0x11" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x11")) () ")")))) (& "&") (number_literal "0xfd")) (| "|") (binary_expression "bVar3 * '\x02'" (identifier "bVar3") (* "*") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))))) (; ";")) (if_statement "if (iVar5 != local_70) goto LAB_00023093;" (if "if") (parenthesized_expression "(iVar5 != local_70)" (( "(") (binary_expression "iVar5 != local_70" (identifier "iVar5") (!= "!=") (identifier "local_70")) () ")")) (goto_statement "goto LAB_00023093;" (goto "goto") (statement_identifier "LAB_00023093") (; ";"))) (expression_statement "iVar10 = *(int *)(unaff_EDI + 0x4b1c1);" (assignment_expression "iVar10 = *(int *)(unaff_EDI + 0x4b1c1)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x4b1c1)" (( "(") (binary_expression "unaff_EDI + 0x4b1c1" (identifier "unaff_EDI") (+ "+") (number_literal "0x4b1c1")) () ")"))))) (; ";")) (if_statement "if (local_70 == iVar10 + 0x180) {\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }" (if "if") (parenthesized_expression "(local_70 == iVar10 + 0x180)" (( "(") (binary_expression "local_70 == iVar10 + 0x180" (identifier "local_70") (== "==") (binary_expression "iVar10 + 0x180" (identifier "iVar10") (+ "+") (number_literal "0x180"))) () ")")) (compound_statement "{\nLAB_00023a77:\n          iVar6 = iVar10 + 0x180;\n          goto joined_r0x00023268;\n        }" ({ "{") (labeled_statement "LAB_00023a77:\n          iVar6 = iVar10 + 0x180;" (statement_identifier "LAB_00023a77") (: ":") (expression_statement "iVar6 = iVar10 + 0x180;" (assignment_expression "iVar6 = iVar10 + 0x180" (identifier "iVar6") (= "=") (binary_expression "iVar10 + 0x180" (identifier "iVar10") (+ "+") (number_literal "0x180"))) (; ";"))) (goto_statement "goto joined_r0x00023268;" (goto "goto") (statement_identifier "joined_r0x00023268") (; ";")) (} "}"))) (if_statement "if (local_70 != iVar10 + 0xc0) {\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }" (if "if") (parenthesized_expression "(local_70 != iVar10 + 0xc0)" (( "(") (binary_expression "local_70 != iVar10 + 0xc0" (identifier "local_70") (!= "!=") (binary_expression "iVar10 + 0xc0" (identifier "iVar10") (+ "+") (number_literal "0xc0"))) () ")")) (compound_statement "{\n          iVar6 = local_70;\n          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;\n          goto LAB_00023a77;\n        }" ({ "{") (expression_statement "iVar6 = local_70;" (assignment_expression "iVar6 = local_70" (identifier "iVar6") (= "=") (identifier "local_70")) (; ";")) (if_statement "if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;" (if "if") (parenthesized_expression "(((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0))))" (( "(") (binary_expression "((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||\n             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))" (parenthesized_expression "((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70))" (( "(") (binary_expression "(*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||\n              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)" (parenthesized_expression "(*(int *)(&DAT_000548e9 + unaff_EDI) == local_70)" (( "(") (binary_expression "*(int *)(&DAT_000548e9 + unaff_EDI) == local_70" (pointer_expression "*(int *)(&DAT_000548e9 + unaff_EDI)" (* "*") (cast_expression "(int *)(&DAT_000548e9 + unaff_EDI)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_000548e9 + unaff_EDI)" (( "(") (binary_expression "&DAT_000548e9 + unaff_EDI" (pointer_expression "&DAT_000548e9" (& "&") (identifier "DAT_000548e9")) (+ "+") (identifier "unaff_EDI")) () ")")))) (== "==") (identifier "local_70")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(&DAT_00054839 + unaff_EDI) == local_70)" (( "(") (binary_expression "*(int *)(&DAT_00054839 + unaff_EDI) == local_70" (pointer_expression "*(int *)(&DAT_00054839 + unaff_EDI)" (* "*") (cast_expression "(int *)(&DAT_00054839 + unaff_EDI)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00054839 + unaff_EDI)" (( "(") (binary_expression "&DAT_00054839 + unaff_EDI" (pointer_expression "&DAT_00054839" (& "&") (identifier "DAT_00054839")) (+ "+") (identifier "unaff_EDI")) () ")")))) (== "==") (identifier "local_70")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))" (( "(") (parenthesized_expression "(iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0))" (( "(") (comma_expression "iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)" (assignment_expression "iVar5 = FUN_00038140(*param_2,0)" (identifier "iVar5") (= "=") (call_expression "FUN_00038140(*param_2,0)" (identifier "FUN_00038140") (argument_list "(*param_2,0)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar5 != 0 ||\n              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)" (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar5 = FUN_00038140(local_30,0), iVar5 != 0)" (( "(") (comma_expression "iVar5 = FUN_00038140(local_30,0), iVar5 != 0" (assignment_expression "iVar5 = FUN_00038140(local_30,0)" (identifier "iVar5") (= "=") (call_expression "FUN_00038140(local_30,0)" (identifier "FUN_00038140") (argument_list "(local_30,0)" (( "(") (identifier "local_30") (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")")))) () ")")) () ")"))) () ")")) (goto_statement "goto joined_r0x00023268;" (goto "goto") (statement_identifier "joined_r0x00023268") (; ";"))) (goto_statement "goto LAB_00023a77;" (goto "goto") (statement_identifier "LAB_00023a77") (; ";")) (} "}"))) (labeled_statement "LAB_00023258:\n        iVar6 = iVar10 + 0xc0;" (statement_identifier "LAB_00023258") (: ":") (expression_statement "iVar6 = iVar10 + 0xc0;" (assignment_expression "iVar6 = iVar10 + 0xc0" (identifier "iVar6") (= "=") (binary_expression "iVar10 + 0xc0" (identifier "iVar10") (+ "+") (number_literal "0xc0"))) (; ";"))) (} "}")))))) (labeled_statement "joined_r0x00023268:\n      local_70 = iVar6;" (statement_identifier "joined_r0x00023268") (: ":") (expression_statement "local_70 = iVar6;" (assignment_expression "local_70 = iVar6" (identifier "local_70") (= "=") (identifier "iVar6")) (; ";"))) (if_statement "if (local_78 == 0) break;" (if "if") (parenthesized_expression "(local_78 == 0)" (( "(") (binary_expression "local_78 == 0" (identifier "local_78") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_84 = local_78;" (assignment_expression "local_84 = local_78" (identifier "local_84") (= "=") (identifier "local_78")) (; ";")) (expression_statement "cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);" (assignment_expression "cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78)" (identifier "cVar13") (= "=") (pointer_expression "*(char *)(unaff_EDI + 0x4b459 + local_78)" (* "*") (cast_expression "(char *)(unaff_EDI + 0x4b459 + local_78)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x4b459 + local_78)" (( "(") (binary_expression "unaff_EDI + 0x4b459 + local_78" (binary_expression "unaff_EDI + 0x4b459" (identifier "unaff_EDI") (+ "+") (number_literal "0x4b459")) (+ "+") (identifier "local_78")) () ")"))))) (; ";")) (if_statement "if (cVar13 <= (char)param_1) break;" (if "if") (parenthesized_expression "(cVar13 <= (char)param_1)" (( "(") (binary_expression "cVar13 <= (char)param_1" (identifier "cVar13") (<= "<=") (cast_expression "(char)param_1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_1"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar4 = (byte *)*piVar1;" (assignment_expression "pbVar4 = (byte *)*piVar1" (identifier "pbVar4") (= "=") (cast_expression "(byte *)*piVar1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00023277:\n  if (*param_2 != 0) {\n    FUN_0003b280(*param_2);\n  }" (statement_identifier "LAB_00023277") (: ":") (if_statement "if (*param_2 != 0) {\n    FUN_0003b280(*param_2);\n  }" (if "if") (parenthesized_expression "(*param_2 != 0)" (( "(") (binary_expression "*param_2 != 0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0003b280(*param_2);\n  }" ({ "{") (expression_statement "FUN_0003b280(*param_2);" (call_expression "FUN_0003b280(*param_2)" (identifier "FUN_0003b280") (argument_list "(*param_2)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")"))) (; ";")) (} "}")))) (if_statement "if (((char)param_1 == '\0') && (param_3 == 0)) {\n    FUN_00021760(param_2);\n  }" (if "if") (parenthesized_expression "(((char)param_1 == '\0') && (param_3 == 0))" (( "(") (binary_expression "((char)param_1 == '\0') && (param_3 == 0)" (parenthesized_expression "((char)param_1 == '\0')" (( "(") (binary_expression "(char)param_1 == '\0'" (cast_expression "(char)param_1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_1")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    FUN_00021760(param_2);\n  }" ({ "{") (expression_statement "FUN_00021760(param_2);" (call_expression "FUN_00021760(param_2)" (identifier "FUN_00021760") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (if_statement "if ((char)param_2[4] == '\x02') {\n    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;\n  }" (if "if") (parenthesized_expression "((char)param_2[4] == '\x02')" (( "(") (binary_expression "(char)param_2[4] == '\x02'" (cast_expression "(char)param_2[4]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]"))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;\n  }" ({ "{") (expression_statement "local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;" (assignment_expression "local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180" (identifier "local_70") (= "=") (binary_expression "*(int *)(unaff_EDI + 0x4b1c1) + 0x180" (pointer_expression "*(int *)(unaff_EDI + 0x4b1c1)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x4b1c1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x4b1c1)" (( "(") (binary_expression "unaff_EDI + 0x4b1c1" (identifier "unaff_EDI") (+ "+") (number_literal "0x4b1c1")) () ")")))) (+ "+") (number_literal "0x180"))) (; ";")) (} "}"))) (return_statement "return local_70;" (return "return") (identifier "local_70") (; ";")) (} "}")))

type_1 function_1(int var_2,type_2 *resultP,type_3 var_44)

{
  int *piVar1;
  type_1 var_24;
  type_1 paVar3;
  type_4 var_15;
  type_4 *var_7;
  type_1 var_21;
  type_5 *var_27;
  type_6 *puVar8;
  int var_29;
  char *pcVar10;
  type_7 *frag2;
  type_7 *frag1;
  type_8 var_32;
  type_4 var_20;
  char var_11;
  type_9 var_8;
  type_4 *var_17;
  int var_23;
  type_9 var_26;
  type_9 var_38;
  type_9 var_19;
  int var_9;
  type_9 var_39;
  int var_4;
  bool var_10;
  type_10 aVar23;
  type_11 var_34;
  type_11 var_37;
  type_9 var_35;
  int var_36;
  int var_18;
  type_1 var_22;
  int var_12;
  type_12 frag_off;
  type_2 right;
  
  var_1();
  if (var_2 < 0) {
                    /* WARNING: Subroutine does not return */
    var_3((char *)(var_4 + 0x2ed1d),0x6dc,(char *)(var_4 + 0x2f43d));
  }
  if ((char)var_2 == '\0') {
    aVar23 = var_5();
    *(type_10 *)
     (".stab%c: description field \'%x\' too big, try a different debug format" + var_4 + 1) =
         aVar23;
    *(type_13 *)
     (".stab%c: description field \'%x\' too big, try a different debug format" + var_4 + 0x11)
         = *(type_13 *)((int)&UINT_0005497c + var_4 + 1);
  }
  var_22 = var_6(resultP,var_44);
  piVar1 = (int *)("demand_empty_rest_of_line" + var_4 + 0x19);
  var_7 = (type_4 *)*piVar1;
  var_8 = (type_9)*var_7;
  if (*var_7 == 0x20) {
                    /* WARNING: Subroutine does not return */
    var_3((char *)(var_4 + 0x2ed1d),0x6e8,(char *)(var_4 + 0x2f43d));
  }
  if (*(char *)(var_4 + 0x4b4f9 + var_8) != '\0') goto LAB_00023277;
  if (var_8 == 0x2d) {
LAB_00023af0:
    var_9 = *(int *)(var_4 + 0x2f459 + var_8 * 4);
    var_12 = 1;
LAB_00023b03:
    if (var_9 == 0) goto LAB_00023277;
  }
  else if (var_8 < 0x2e) {
    if (var_8 == 0x26) {
      var_12 = (var_7[1] == 0x26) + 1;
      var_9 = (type_9)(var_7[1] == 0x26) * 9 + 0x12;
    }
    else {
      if ((var_8 == 0x2b) || (var_8 != 0x21)) goto LAB_00023af0;
      if (var_7[1] == 0x21) {
        var_9 = 0x11;
        var_12 = 2;
      }
      else {
        var_23 = 0x16;
        var_10 = var_7[1] == 0x3d;
        var_9 = 0x10;
LAB_00023175:
        if (var_10) {
          var_9 = var_23;
        }
        var_12 = var_10 + 1;
      }
    }
  }
  else if (var_8 == 0x3d) {
    if (var_7[1] != 0x3d) goto LAB_00023277;
    var_9 = 0x15;
    var_12 = 2;
  }
  else if (var_8 < 0x3e) {
    if (var_8 != 0x3c) goto LAB_00023af0;
    if ((type_4)(var_7[1] - 0x3c) < 3) {
      var_12 = 2;
      var_9 = *(int *)(var_4 + 0x2f41d + (type_9)(type_4)(var_7[1] - 0x3c) * 4);
      goto LAB_00023b03;
    }
    var_9 = 0x17;
    var_12 = 1;
  }
  else if (var_8 == 0x3e) {
    if (var_7[1] != 0x3d) {
      var_23 = 0xe;
      var_10 = var_7[1] == 0x3e;
      var_9 = 0x1a;
      goto LAB_00023175;
    }
    var_9 = 0x19;
    var_12 = 2;
  }
  else {
    if (var_8 != 0x7c) goto LAB_00023af0;
    var_9 = 0xf;
    if (var_7[1] == 0x7c) {
      var_9 = 0x1c;
    }
    var_12 = (var_7[1] == 0x7c) + 1;
  }
  var_23 = *(int *)(var_4 + 0x4b1c1);
  var_11 = *(char *)(var_4 + 0x4b459 + var_9);
  if ((char)var_2 < var_11) {
    do {
      *piVar1 = (int)(var_7 + var_12);
      right.X_md = 0;
      var_21 = function_1((int)var_11,&right,var_44);
      if (right._16_1_ == '\x01') {
        pcVar10 = (char *)var_13(0,var_4 + 0x2edd2,5);
        var_14(pcVar10);
        right._16_1_ = 2;
        right.X_add_number._0_4_ = 0;
        right.X_add_number._4_4_ = 0;
        right.X_add_symbol = (type_5 *)0x0;
        right.X_op_symbol = (type_5 *)0x0;
      }
      var_7 = (type_4 *)*piVar1;
      var_15 = *var_7;
      var_8 = (type_9)var_15;
      if (var_15 == 0x20) {
                    /* WARNING: Subroutine does not return */
        var_3((char *)(var_4 + 0x2ed1d),0x6fd,(char *)(var_4 + 0x2f43d));
      }
      var_17 = var_7;
      if (var_9 == 0x1d) {
        if (var_15 == 0x5d) {
          var_17 = var_7 + 1;
          *piVar1 = (int)var_17;
          var_8 = (type_9)var_7[1];
          if (var_7[1] == 0x20) {
            var_17 = var_7 + 2;
            *piVar1 = (int)var_17;
            var_8 = (type_9)var_7[2];
          }
        }
        else {
          var_16((char *)(var_4 + 0x2edf0));
          var_17 = (type_4 *)*piVar1;
          var_8 = (type_9)*var_17;
        }
      }
      if (*(char *)(var_4 + 0x4b4f9 + var_8) == '\0') {
        if (var_8 == 0x2d) {
LAB_000235f0:
          var_18 = *(int *)(var_4 + 0x2f459 + var_8 * 4);
          var_12 = 1;
          var_10 = var_18 != 0;
        }
        else if (var_8 < 0x2e) {
          if (var_8 == 0x26) {
            var_10 = true;
            var_12 = (var_17[1] == 0x26) + 1;
            var_18 = (type_9)(var_17[1] == 0x26) * 9 + 0x12;
          }
          else {
            if ((var_8 == 0x2b) || (var_8 != 0x21)) goto LAB_000235f0;
            var_15 = var_17[1];
            var_10 = true;
            if (var_15 == 0x21) {
              var_12 = 2;
              var_18 = 0x11;
            }
            else {
              var_12 = (var_15 == 0x3d) + 1;
              var_18 = 0x10;
              if (var_15 == 0x3d) {
                var_18 = 0x16;
              }
            }
          }
        }
        else if (var_8 == 0x3d) {
          var_12 = 1;
          var_18 = 0;
          if (var_17[1] != 0x3d) goto LAB_00022fd4;
          var_10 = true;
          var_12 = 2;
          var_18 = 0x15;
        }
        else if (var_8 < 0x3e) {
          if (var_8 != 0x3c) goto LAB_000235f0;
          if ((type_4)(var_17[1] - 0x3c) < 3) {
            var_12 = 2;
            var_18 = *(int *)(var_4 + 0x2f41d + (type_9)(type_4)(var_17[1] - 0x3c) * 4);
            var_10 = var_18 != 0;
          }
          else {
            var_10 = true;
            var_12 = 1;
            var_18 = 0x17;
          }
        }
        else if (var_8 == 0x3e) {
          var_15 = var_17[1];
          var_10 = true;
          if (var_15 == 0x3d) {
            var_12 = 2;
            var_18 = 0x19;
          }
          else {
            var_12 = (var_15 == 0x3e) + 1;
            var_18 = 0x1a;
            if (var_15 == 0x3e) {
              var_18 = 0xe;
            }
          }
        }
        else {
          if (var_8 != 0x7c) goto LAB_000235f0;
          var_10 = true;
          var_12 = (var_17[1] == 0x7c) + 1;
          var_18 = 0xf;
          if (var_17[1] == 0x7c) {
            var_18 = 0x1c;
          }
        }
        if (((var_9 != 0x1d) && (var_10)) &&
           (*(char *)(var_4 + 0x4b459 + var_9) < *(char *)(var_4 + 0x4b459 + var_18))) {
                    /* WARNING: Subroutine does not return */
          var_3((char *)(var_4 + 0x2ed1d),0x70d,(char *)(var_4 + 0x2f43d));
        }
      }
      else {
        var_12 = 1;
        var_18 = 0;
      }
LAB_00022fd4:
      if (var_9 < 10) {
                    /* WARNING: Subroutine does not return */
        var_3((char *)(var_4 + 0x2ed1d),0x70e,(char *)(var_4 + 0x2f43d));
      }
      if (0x1d < var_9) {
                    /* WARNING: Subroutine does not return */
        var_3((char *)(var_4 + 0x2ed1d),0x710,(char *)(var_4 + 0x2f43d));
      }
      if (resultP->field_0x10 == '\x06') {
        if (-*(int *)((int)&resultP->X_add_number + 4) <
            (int)(type_9)((int)resultP->X_add_number != 0)) {
          var_29 = var_4 + 0x2ef8d;
        }
        else {
          var_29 = var_4 + 0x2efb9;
        }
        pcVar10 = (char *)var_13(0,var_29,5);
        var_14(pcVar10);
        resultP->field_0x10 = 2;
        *(type_13 *)&resultP->X_add_number = 0;
        *(type_13 *)((int)&resultP->X_add_number + 4) = 0;
        resultP->X_add_symbol = (type_5 *)0x0;
        resultP->X_op_symbol = (type_5 *)0x0;
      }
      var_35._0_1_ = (type_14)var_9;
      paVar3 = var_21;
      if (right._16_1_ == '\x06') {
        if ((int)-right.X_add_number._4_4_ < (int)(type_9)((type_9)right.X_add_number != 0)) {
          puVar8 = (type_6 *)(var_4 + 0x2efe5);
        }
        else {
          puVar8 = &UNK_0002f015 + var_4;
        }
        pcVar10 = (char *)var_13(0,puVar8,5);
        var_14(pcVar10);
        right._16_1_ = 2;
        right.X_add_number._0_4_ = 0;
        right.X_add_number._4_4_ = 0;
        right.X_add_symbol = (type_5 *)0x0;
        right.X_op_symbol = (type_5 *)0x0;
        if (var_9 == 0x13) {
          var_15 = (type_4)(resultP->field_0x11 ^ right._17_1_) >> 1 & 1;
LAB_000237b4:
          resultP->field_0x11 = resultP->field_0x11 & 0xfd | var_15 * '\x02';
        }
        else {
          if (var_9 != 0x14) goto LAB_0002301a;
LAB_0002337b:
          var_8 = *(type_9 *)((int)&resultP->X_add_number + 4);
          var_19 = (type_9)resultP->X_add_number;
          *(type_9 *)&resultP->X_add_number = var_19 - (type_9)right.X_add_number;
          *(type_9 *)((int)&resultP->X_add_number + 4) =
               (var_8 - right.X_add_number._4_4_) - (type_9)(var_19 < (type_9)right.X_add_number);
          var_15 = resultP->field_0x11;
          var_20 = (right._17_1_ ^ var_15) >> 1 & 1;
          if (var_8 < right.X_add_number._4_4_ ||
              var_8 - right.X_add_number._4_4_ < (type_9)(var_19 < (type_9)right.X_add_number)) {
            resultP->field_0x11 = var_15 & 0xfd | (var_20 ^ 1) * '\x02';
          }
          else {
            resultP->field_0x11 = var_15 & 0xfd | var_20 * '\x02';
          }
        }
LAB_00023089:
        paVar3 = var_22;
        if (var_21 != var_22) {
LAB_00023093:
          var_29 = var_23;
          if ((var_22 == (type_1)(var_23 + 0xc0)) || (var_21 == (type_1)(var_23 + 0xc0)))
          goto LAB_00023258;
          var_24 = *(type_1 *)((int)&UINT_00054838 + var_4 + 1);
          paVar3 = var_22;
          if (((var_24 != var_22) &&
              ((((paVar3 = var_21, var_24 != var_21 &&
                 (var_24 = *(type_1 *)((int)&UINT_000548e8 + var_4 + 1), paVar3 = var_22,
                 var_24 != var_22)) && (paVar3 = var_21, var_24 != var_21)) &&
               ((paVar3 = var_22, var_21 != (type_1)(var_23 + 0x180) &&
                (paVar3 = var_21, var_22 != (type_1)(var_23 + 0x180))))))) &&
             (paVar3 = var_22, var_9 != 0x14)) {
            pcVar10 = (char *)var_13(0,var_4 + 0x2f041,5);
            var_16(pcVar10);
          }
        }
      }
      else if (var_9 == 0x13) {
        if (right._16_1_ == '\x02') {
          var_8 = *(type_9 *)((int)&resultP->X_add_number + 4);
          var_19 = (type_9)resultP->X_add_number;
          var_26 = var_8 + right.X_add_number._4_4_ + (type_9)var_25(var_19,(type_9)right.X_add_number)
          ;
          *(type_9 *)&resultP->X_add_number = var_19 + (type_9)right.X_add_number;
          var_20 = resultP->field_0x11;
          *(type_9 *)((int)&resultP->X_add_number + 4) = var_26;
          var_15 = (right._17_1_ ^ var_20) >> 1 & 1;
          if (var_8 <= var_26 &&
              (type_9)(var_19 + (type_9)right.X_add_number < var_19) <= var_26 - var_8)
          goto LAB_000237b4;
LAB_00023820:
          var_15 = var_15 ^ 1;
LAB_00023823:
          resultP->field_0x11 = var_20 & 0xfd | var_15 * '\x02';
          goto LAB_00023089;
        }
        var_11 = resultP->field_0x10;
        if (var_11 != '\x02') goto LAB_0002302e;
        var_8 = *(type_9 *)((int)&resultP->X_add_number + 4);
        var_15 = resultP->field_0x11;
        resultP->field_0x10 = right._16_1_;
        resultP->X_add_symbol = right.X_add_symbol;
        resultP->X_op_symbol = right.X_op_symbol;
        var_19 = (type_9)resultP->X_add_number;
        var_26 = var_8 + right.X_add_number._4_4_ + (type_9)var_25(var_19,(type_9)right.X_add_number);
        *(type_9 *)&resultP->X_add_number = var_19 + (type_9)right.X_add_number;
        *(type_9 *)((int)&resultP->X_add_number + 4) = var_26;
        var_20 = (var_15 ^ right._17_1_) >> 1 & 1;
        if (var_26 < var_8 || var_26 - var_8 < (type_9)(var_19 + (type_9)right.X_add_number < var_19))
        {
          resultP->field_0x11 = (var_20 ^ 1) * '\x02' | var_15 & 0xfd;
        }
        else {
          resultP->field_0x11 = var_20 * '\x02' | var_15 & 0xfd;
        }
      }
      else {
        if (var_9 == 0x14) {
          if (right._16_1_ == '\x03') {
            if ((resultP->field_0x10 != '\x03') || (var_21 != var_22)) goto LAB_0002301a;
            var_27 = resultP->X_add_symbol;
            if (((var_21 == (type_1)(*(int *)(var_4 + 0x4b1c1) + 0xc0)) ||
                ((var_21 == (type_1)(*(int *)(var_4 + 0x4b1c1) + 0x180) ||
                 (*(type_1 *)((int)&UINT_000548e8 + var_4 + 1) == var_21)))) ||
               (*(type_1 *)((int)&UINT_00054838 + var_4 + 1) == var_21)) {
LAB_000236bc:
              if (right.X_add_symbol != var_27) goto LAB_000236cb;
            }
            else {
              var_29 = var_28(var_27,0);
              if ((var_29 != 0) ||
                 (var_29 = var_28(right.X_add_symbol,0), var_27 = right.X_add_symbol,
                 var_29 != 0)) {
                var_27 = resultP->X_add_symbol;
                goto LAB_000236bc;
              }
            }
            frag2 = var_30(var_27);
            frag1 = var_30(resultP->X_add_symbol);
            var_32 = var_31(frag1,frag2,&frag_off);
            if (var_32 != 0) {
              var_34 = var_33(resultP->X_add_symbol);
              var_37 = var_33(right.X_add_symbol);
              var_35 = (type_9)var_34;
              var_36 = (int)(var_34 >> 0x20);
              var_26 = var_35 - (type_9)var_37;
              var_9 = (var_36 - (int)(var_37 >> 0x20)) - (type_9)(var_35 < (type_9)var_37);
              var_8 = (type_9)resultP->X_add_number;
              var_19 = *(type_9 *)((int)&resultP->X_add_number + 4);
              var_38 = var_8 - (type_9)right.X_add_number;
              var_39 = (var_19 - right.X_add_number._4_4_) -
                       (type_9)(var_8 < (type_9)right.X_add_number);
              *(type_9 *)&resultP->X_add_number = var_38;
              var_15 = resultP->field_0x11;
              *(type_9 *)((int)&resultP->X_add_number + 4) = var_39;
              var_20 = (right._17_1_ ^ var_15) >> 1 & 1;
              if (var_19 < right.X_add_number._4_4_ ||
                  var_19 - right.X_add_number._4_4_ < (type_9)(var_8 < (type_9)right.X_add_number)) {
                var_20 = var_20 ^ 1;
              }
              resultP->field_0x11 = var_15 & 0xfd | var_20 * '\x02';
              var_8 = var_38 - (type_9)frag_off;
              var_19 = (var_39 - frag_off._4_4_) - (type_9)(var_38 < (type_9)frag_off);
              *(type_9 *)&resultP->X_add_number = var_8;
              *(type_9 *)((int)&resultP->X_add_number + 4) = var_19;
              if (var_39 < frag_off._4_4_ ||
                  var_39 - frag_off._4_4_ < (type_9)(var_38 < (type_9)frag_off)) {
                var_20 = var_20 ^ 1;
                var_15 = resultP->field_0x11 & 0xfd | var_20 * '\x02';
                resultP->field_0x11 = var_15;
              }
              else {
                var_15 = resultP->field_0x11;
              }
              var_38 = var_26 + var_8;
              var_26 = var_9 + var_19 + (type_9)var_25(var_26,var_8);
              *(type_9 *)&resultP->X_add_number = var_38;
              *(type_9 *)((int)&resultP->X_add_number + 4) = var_26;
              var_20 = var_20 ^ (type_4)((type_9)var_9 >> 0x1f);
              if (var_26 < var_19 || var_26 - var_19 < (type_9)(var_38 < var_8)) {
                resultP->field_0x11 = var_15 & 0xfd | (var_20 ^ 1) * '\x02';
              }
              else {
                resultP->field_0x11 = var_15 & 0xfd | var_20 * '\x02';
              }
              resultP->field_0x10 = 2;
              resultP->X_add_symbol = (type_5 *)0x0;
              paVar3 = var_22;
              goto joined_r0x00023268;
            }
          }
LAB_000236cb:
          if (right._16_1_ == '\x02') goto LAB_0002337b;
        }
LAB_0002301a:
        var_19 = right.X_add_number._4_4_;
        var_8 = (type_9)right.X_add_number;
        var_11 = resultP->field_0x10;
        if (var_11 == '\x02') {
          if (right._16_1_ == '\x02') {
            if (right.X_add_number._4_4_ == 0 && (type_9)right.X_add_number == 0) {
              if (var_9 - 0xbU < 2) {
                pcVar10 = (char *)var_13(0,&UNK_0002ee06 + var_4,5);
                var_14(pcVar10);
              }
            }
            else if ((right.X_add_number._4_4_ != 0 ||
                      -right.X_add_number._4_4_ < (type_9)(0x3f < (type_9)right.X_add_number)) &&
                    (var_9 - 0xdU < 2)) {
              pcVar10 = (char *)var_13(0,var_4 + 0x2ee17,5);
              var_40(pcVar10,var_41(var_19,var_8),0,0x3f,(char *)0x0,0);
              *(type_13 *)&resultP->X_add_number = 0;
              *(type_13 *)((int)&resultP->X_add_number + 4) = 0;
            }
            if (var_9 - 10U < 0x13) {
                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              var_21 = (type_1)(*(type_15 *)(*(int *)(var_4 + 0x2f3d1 + (var_9 - 10U) * 4) +
                                       var_4 + 0x4b219))();
              return var_21;
            }
          }
LAB_0002303c:
          var_27 = var_42(resultP);
          resultP->X_add_symbol = var_27;
          var_27 = var_42(&right);
          resultP->X_op_symbol = var_27;
          var_15 = resultP->field_0x11;
          resultP->field_0x10 = (type_14)var_35;
          *(type_13 *)&resultP->X_add_number = 0;
          *(type_13 *)((int)&resultP->X_add_number + 4) = 0;
          resultP->field_0x11 = var_15 & 0xfc | 1;
          goto LAB_00023089;
        }
LAB_0002302e:
        if ((var_11 != '\x03') || (right._16_1_ != '\x03')) goto LAB_0002303c;
        if (1 < var_9 - 0x13U) {
          if ((*(int *)((int)&resultP->X_add_number + 4) == 0 && right.X_add_number._4_4_ == 0) &&
              ((int)resultP->X_add_number == 0 && (type_9)right.X_add_number == 0)) {
            resultP->field_0x10 = (type_14)var_35;
            resultP->X_op_symbol = right.X_add_symbol;
            goto LAB_00023089;
          }
          goto LAB_0002303c;
        }
        resultP->field_0x10 = (type_14)var_35;
        resultP->X_op_symbol = right.X_add_symbol;
        if (var_9 == 0x13) {
          var_8 = (type_9)resultP->X_add_number;
          var_19 = *(type_9 *)((int)&resultP->X_add_number + 4);
          var_26 = var_19 + right.X_add_number._4_4_ + (type_9)var_25(var_8,(type_9)right.X_add_number)
          ;
          *(type_9 *)&resultP->X_add_number = var_8 + (type_9)right.X_add_number;
          var_20 = resultP->field_0x11;
          *(type_9 *)((int)&resultP->X_add_number + 4) = var_26;
          var_15 = (right._17_1_ ^ var_20) >> 1 & 1;
          if (var_26 < var_19 ||
              var_26 - var_19 < (type_9)(var_8 + (type_9)right.X_add_number < var_8))
          goto LAB_00023820;
          goto LAB_00023823;
        }
        var_8 = *(type_9 *)((int)&resultP->X_add_number + 4);
        var_19 = (type_9)resultP->X_add_number;
        *(type_9 *)&resultP->X_add_number = var_19 - (type_9)right.X_add_number;
        *(type_9 *)((int)&resultP->X_add_number + 4) =
             (var_8 - right.X_add_number._4_4_) - (type_9)(var_19 < (type_9)right.X_add_number);
        var_15 = (type_4)(right._17_1_ ^ resultP->field_0x11) >> 1 & 1;
        if (var_8 < right.X_add_number._4_4_ ||
            var_8 - right.X_add_number._4_4_ < (type_9)(var_19 < (type_9)right.X_add_number)) {
          var_15 = var_15 ^ 1;
        }
        resultP->field_0x11 = resultP->field_0x11 & 0xfd | var_15 * '\x02';
        if (var_21 != var_22) goto LAB_00023093;
        var_29 = *(int *)(var_4 + 0x4b1c1);
        if (var_22 == (type_1)(var_29 + 0x180)) {
LAB_00023a77:
          paVar3 = (type_1)(var_29 + 0x180);
          goto joined_r0x00023268;
        }
        if (var_22 != (type_1)(var_29 + 0xc0)) {
          paVar3 = var_22;
          if (((*(type_1 *)((int)&UINT_000548e8 + var_4 + 1) == var_22) ||
              (*(type_1 *)((int)&UINT_00054838 + var_4 + 1) == var_22)) ||
             ((var_9 = var_28(resultP->X_add_symbol,0), var_9 != 0 ||
              (var_9 = var_28(right.X_add_symbol,0), var_9 != 0))))
          goto joined_r0x00023268;
          goto LAB_00023a77;
        }
LAB_00023258:
        paVar3 = (type_1)(var_29 + 0xc0);
      }
joined_r0x00023268:
      var_22 = paVar3;
      if ((var_18 == 0) ||
         (var_11 = *(char *)(var_4 + 0x4b459 + var_18), var_11 <= (char)var_2)) break;
      var_7 = (type_4 *)*piVar1;
      var_9 = var_18;
    } while( true );
  }
LAB_00023277:
  if (resultP->X_add_symbol != (type_5 *)0x0) {
    var_43(resultP->X_add_symbol);
  }
  if (((char)var_2 == '\0') && (var_44 == var_45)) {
    var_46(resultP);
  }
  if (resultP->field_0x10 == '\x02') {
    var_22 = (type_1)(*(int *)(var_4 + 0x4b1c1) + 0x180);
  }
  return var_22;
}


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

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

{
  int *piVar1;
  longlong lVar2;
  byte bVar3;
  byte *pbVar4;
  int iVar5;
  int iVar6;
  undefined *puVar7;
  int iVar8;
  undefined4 uVar9;
  int iVar10;
  undefined4 uVar11;
  byte bVar12;
  char cVar13;
  uint uVar14;
  byte *pbVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  int unaff_EDI;
  bool bVar19;
  undefined8 uVar20;
  longlong lVar21;
  longlong lVar22;
  int local_84;
  int local_78;
  int local_70;
  int local_64;
  uint local_3c;
  uint local_38;
  int local_30;
  int local_2c;
  uint local_28;
  uint local_24;
  char local_20;
  byte local_1f;
  undefined2 local_1e;
  
  FUN_0001d60d();
  if (param_1 < 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6dc,unaff_EDI + 0x2f43d,param_1);
  }
  if ((char)param_1 == '\0') {
    uVar20 = FUN_00024d50();
    *(undefined8 *)
     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 1) =
         uVar20;
    *(undefined4 *)
     (".stab%c: description field \'%x\' too big, try a different debug format" + unaff_EDI + 0x11)
         = *(undefined4 *)(&DAT_0005497d + unaff_EDI);
  }
  local_70 = FUN_00022310();
  piVar1 = (int *)("demand_empty_rest_of_line" + unaff_EDI + 0x19);
  pbVar4 = (byte *)*piVar1;
  uVar14 = (uint)*pbVar4;
  if (*pbVar4 == 0x20) {
                    /* WARNING: Subroutine does not return */
    FUN_0002be10(unaff_EDI + 0x2ed1d,0x6e8,unaff_EDI + 0x2f43d,pbVar4);
  }
  if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) != '\0') goto LAB_00023277;
  if (uVar14 == 0x2d) {
LAB_00023af0:
    local_84 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);
    local_64 = 1;
LAB_00023b03:
    if (local_84 == 0) goto LAB_00023277;
  }
  else if (uVar14 < 0x2e) {
    if (uVar14 == 0x26) {
      local_64 = (pbVar4[1] == 0x26) + 1;
      local_84 = (uint)(pbVar4[1] == 0x26) * 9 + 0x12;
    }
    else {
      if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_00023af0;
      if (pbVar4[1] == 0x21) {
        local_64 = 2;
        local_84 = 0x11;
      }
      else {
        iVar8 = 0x16;
        bVar19 = pbVar4[1] == 0x3d;
        local_84 = 0x10;
LAB_00023175:
        if (bVar19) {
          local_84 = iVar8;
        }
        local_64 = bVar19 + 1;
      }
    }
  }
  else if (uVar14 == 0x3d) {
    if (pbVar4[1] != 0x3d) goto LAB_00023277;
    local_64 = 2;
    local_84 = 0x15;
  }
  else if (uVar14 < 0x3e) {
    if (uVar14 != 0x3c) goto LAB_00023af0;
    if ((byte)(pbVar4[1] - 0x3c) < 3) {
      local_64 = 2;
      local_84 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar4[1] - 0x3c) * 4);
      goto LAB_00023b03;
    }
    local_64 = 1;
    local_84 = 0x17;
  }
  else if (uVar14 == 0x3e) {
    if (pbVar4[1] != 0x3d) {
      iVar8 = 0xe;
      bVar19 = pbVar4[1] == 0x3e;
      local_84 = 0x1a;
      goto LAB_00023175;
    }
    local_64 = 2;
    local_84 = 0x19;
  }
  else {
    if (uVar14 != 0x7c) goto LAB_00023af0;
    local_84 = 0xf;
    if (pbVar4[1] == 0x7c) {
      local_84 = 0x1c;
    }
    local_64 = (pbVar4[1] == 0x7c) + 1;
  }
  iVar8 = *(int *)(unaff_EDI + 0x4b1c1);
  cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_84);
  if ((char)param_1 < cVar13) {
    do {
      *piVar1 = (int)(pbVar4 + local_64);
      local_1e = 0;
      iVar5 = MASKED((int)cVar13,&local_30,param_3);
      if (local_20 == '\x01') {
        uVar9 = dcgettext(0,unaff_EDI + 0x2edd2,5);
        FUN_0002bc10(uVar9);
        local_20 = '\x02';
        local_28 = 0;
        local_24 = 0;
        local_30 = 0;
        local_2c = 0;
      }
      pbVar4 = (byte *)*piVar1;
      bVar3 = *pbVar4;
      uVar14 = (uint)bVar3;
      if (bVar3 == 0x20) {
                    /* WARNING: Subroutine does not return */
        FUN_0002be10(unaff_EDI + 0x2ed1d,0x6fd,unaff_EDI + 0x2f43d);
      }
      pbVar15 = pbVar4;
      if (local_84 == 0x1d) {
        if (bVar3 == 0x5d) {
          pbVar15 = pbVar4 + 1;
          *piVar1 = (int)pbVar15;
          uVar14 = (uint)pbVar4[1];
          if (pbVar4[1] == 0x20) {
            pbVar15 = pbVar4 + 2;
            *piVar1 = (int)pbVar15;
            uVar14 = (uint)pbVar4[2];
          }
        }
        else {
          FUN_0002bcf0(unaff_EDI + 0x2edf0);
          pbVar15 = (byte *)*piVar1;
          uVar14 = (uint)*pbVar15;
        }
      }
      if (*(char *)(unaff_EDI + 0x4b4f9 + uVar14) == '\0') {
        if (uVar14 == 0x2d) {
LAB_000235f0:
          local_78 = *(int *)(unaff_EDI + 0x2f459 + uVar14 * 4);
          local_64 = 1;
          bVar19 = local_78 != 0;
        }
        else if (uVar14 < 0x2e) {
          if (uVar14 == 0x26) {
            bVar19 = true;
            local_64 = (pbVar15[1] == 0x26) + 1;
            local_78 = (uint)(pbVar15[1] == 0x26) * 9 + 0x12;
          }
          else {
            if ((uVar14 == 0x2b) || (uVar14 != 0x21)) goto LAB_000235f0;
            bVar3 = pbVar15[1];
            bVar19 = true;
            if (bVar3 == 0x21) {
              local_64 = 2;
              local_78 = 0x11;
            }
            else {
              local_64 = (bVar3 == 0x3d) + 1;
              local_78 = 0x10;
              if (bVar3 == 0x3d) {
                local_78 = 0x16;
              }
            }
          }
        }
        else if (uVar14 == 0x3d) {
          local_64 = 1;
          local_78 = 0;
          if (pbVar15[1] != 0x3d) goto LAB_00022fd4;
          bVar19 = true;
          local_64 = 2;
          local_78 = 0x15;
        }
        else if (uVar14 < 0x3e) {
          if (uVar14 != 0x3c) goto LAB_000235f0;
          if ((byte)(pbVar15[1] - 0x3c) < 3) {
            local_64 = 2;
            local_78 = *(int *)(unaff_EDI + 0x2f41d + (uint)(byte)(pbVar15[1] - 0x3c) * 4);
            bVar19 = local_78 != 0;
          }
          else {
            bVar19 = true;
            local_64 = 1;
            local_78 = 0x17;
          }
        }
        else if (uVar14 == 0x3e) {
          bVar3 = pbVar15[1];
          bVar19 = true;
          if (bVar3 == 0x3d) {
            local_64 = 2;
            local_78 = 0x19;
          }
          else {
            local_64 = (bVar3 == 0x3e) + 1;
            local_78 = 0x1a;
            if (bVar3 == 0x3e) {
              local_78 = 0xe;
            }
          }
        }
        else {
          if (uVar14 != 0x7c) goto LAB_000235f0;
          bVar19 = true;
          local_64 = (pbVar15[1] == 0x7c) + 1;
          local_78 = 0xf;
          if (pbVar15[1] == 0x7c) {
            local_78 = 0x1c;
          }
        }
        if (((local_84 != 0x1d) && (bVar19)) &&
           (*(char *)(unaff_EDI + 0x4b459 + local_84) < *(char *)(unaff_EDI + 0x4b459 + local_78)))
        {
                    /* WARNING: Subroutine does not return */
          FUN_0002be10(unaff_EDI + 0x2ed1d,0x70d,unaff_EDI + 0x2f43d);
        }
      }
      else {
        local_64 = 1;
        local_78 = 0;
      }
LAB_00022fd4:
      if (local_84 < 10) {
                    /* WARNING: Subroutine does not return */
        FUN_0002be10(unaff_EDI + 0x2ed1d,0x70e,unaff_EDI + 0x2f43d);
      }
      if (0x1d < local_84) {
                    /* WARNING: Subroutine does not return */
        FUN_0002be10(unaff_EDI + 0x2ed1d,0x710,unaff_EDI + 0x2f43d);
      }
      if ((char)param_2[4] == '\x06') {
        if (-param_2[3] < (int)(uint)(param_2[2] != 0)) {
          iVar6 = unaff_EDI + 0x2ef8d;
        }
        else {
          iVar6 = unaff_EDI + 0x2efb9;
        }
        uVar9 = dcgettext(0,iVar6,5);
        FUN_0002bc10(uVar9);
        *(undefined1 *)(param_2 + 4) = 2;
        param_2[2] = 0;
        param_2[3] = 0;
        *param_2 = 0;
        param_2[1] = 0;
      }
      iVar6 = iVar5;
      if (local_20 == '\x06') {
        if ((int)-local_24 < (int)(uint)(local_28 != 0)) {
          puVar7 = (undefined *)(unaff_EDI + 0x2efe5);
        }
        else {
          puVar7 = &UNK_0002f015 + unaff_EDI;
        }
        uVar9 = dcgettext(0,puVar7,5);
        FUN_0002bc10(uVar9);
        local_20 = '\x02';
        local_28 = 0;
        local_24 = 0;
        local_30 = 0;
        local_2c = 0;
        if (local_84 == 0x13) {
          bVar3 = (*(byte *)((int)param_2 + 0x11) ^ local_1f) >> 1 & 1;
LAB_000237b4:
          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';
        }
        else {
          if (local_84 != 0x14) goto LAB_0002301a;
LAB_0002337b:
          uVar14 = param_2[3];
          uVar17 = param_2[2];
          param_2[2] = uVar17 - local_28;
          param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);
          bVar3 = *(byte *)((int)param_2 + 0x11);
          bVar12 = (local_1f ^ bVar3) >> 1 & 1;
          if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {
            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | (bVar12 ^ 1) * '\x02';
          }
          else {
            *(byte *)((int)param_2 + 0x11) = bVar3 & 0xfd | bVar12 * '\x02';
          }
        }
LAB_00023089:
        iVar6 = local_70;
        if (iVar5 != local_70) {
LAB_00023093:
          iVar10 = iVar8;
          if ((local_70 == iVar8 + 0xc0) || (iVar5 == iVar8 + 0xc0)) goto LAB_00023258;
          iVar6 = local_70;
          if (((*(int *)(&DAT_00054839 + unaff_EDI) != local_70) &&
              ((((iVar6 = iVar5, *(int *)(&DAT_00054839 + unaff_EDI) != iVar5 &&
                 (iVar6 = local_70, *(int *)(&DAT_000548e9 + unaff_EDI) != local_70)) &&
                (iVar6 = iVar5, *(int *)(&DAT_000548e9 + unaff_EDI) != iVar5)) &&
               ((iVar6 = local_70, iVar5 != iVar8 + 0x180 &&
                (iVar6 = iVar5, local_70 != iVar8 + 0x180)))))) &&
             (iVar6 = local_70, local_84 != 0x14)) {
            uVar9 = dcgettext(0,unaff_EDI + 0x2f041,5);
            FUN_0002bcf0(uVar9);
          }
        }
      }
      else if (local_84 == 0x13) {
        if (local_20 == '\x02') {
          uVar14 = param_2[3];
          uVar17 = param_2[2];
          uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);
          param_2[2] = uVar17 + local_28;
          bVar12 = *(byte *)((int)param_2 + 0x11);
          param_2[3] = uVar16;
          bVar3 = (local_1f ^ bVar12) >> 1 & 1;
          if (uVar14 <= uVar16 && (uint)(uVar17 + local_28 < uVar17) <= uVar16 - uVar14)
          goto LAB_000237b4;
LAB_00023820:
          bVar3 = bVar3 ^ 1;
LAB_00023823:
          *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';
          goto LAB_00023089;
        }
        cVar13 = (char)param_2[4];
        if (cVar13 != '\x02') goto LAB_0002302e;
        uVar14 = param_2[3];
        bVar3 = *(byte *)((int)param_2 + 0x11);
        *(char *)(param_2 + 4) = local_20;
        *param_2 = local_30;
        param_2[1] = local_2c;
        uVar17 = param_2[2];
        uVar16 = uVar14 + local_24 + (uint)CARRY4(uVar17,local_28);
        param_2[2] = uVar17 + local_28;
        param_2[3] = uVar16;
        bVar12 = (bVar3 ^ local_1f) >> 1 & 1;
        if (uVar16 < uVar14 || uVar16 - uVar14 < (uint)(uVar17 + local_28 < uVar17)) {
          *(byte *)((int)param_2 + 0x11) = (bVar12 ^ 1) * '\x02' | bVar3 & 0xfd;
        }
        else {
          *(byte *)((int)param_2 + 0x11) = bVar12 * '\x02' | bVar3 & 0xfd;
        }
      }
      else {
        if (local_84 == 0x14) {
          if (local_20 == '\x03') {
            if (((char)param_2[4] != '\x03') || (iVar5 != local_70)) goto LAB_0002301a;
            iVar6 = *param_2;
            if (((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0xc0) ||
                ((iVar5 == *(int *)(unaff_EDI + 0x4b1c1) + 0x180 ||
                 (*(int *)(&DAT_000548e9 + unaff_EDI) == iVar5)))) ||
               (*(int *)(&DAT_00054839 + unaff_EDI) == iVar5)) {
LAB_000236bc:
              if (local_30 != iVar6) goto LAB_000236cb;
            }
            else {
              iVar6 = FUN_00038140(iVar6,0);
              if ((iVar6 != 0) || (iVar10 = FUN_00038140(local_30,0), iVar6 = local_30, iVar10 != 0)
                 ) {
                iVar6 = *param_2;
                goto LAB_000236bc;
              }
            }
            uVar9 = FUN_0003b250(iVar6);
            uVar11 = FUN_0003b250(*param_2);
            iVar6 = FUN_00024e60(uVar11,uVar9,&local_3c);
            if (iVar6 != 0) {
              lVar21 = FUN_00039de0(*param_2);
              lVar22 = FUN_00039de0(local_30);
              uVar14 = param_2[2];
              uVar17 = param_2[3];
              uVar16 = uVar14 - local_28;
              uVar18 = (uVar17 - local_24) - (uint)(uVar14 < local_28);
              param_2[2] = uVar16;
              param_2[3] = uVar18;
              bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;
              if (uVar17 < local_24 || uVar17 - local_24 < (uint)(uVar14 < local_28)) {
                bVar3 = bVar3 ^ 1;
              }
              *(byte *)((int)param_2 + 0x11) =
                   *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';
              uVar14 = uVar16 - local_3c;
              uVar17 = (uVar18 - local_38) - (uint)(uVar16 < local_3c);
              param_2[2] = uVar14;
              param_2[3] = uVar17;
              if (uVar18 < local_38 || uVar18 - local_38 < (uint)(uVar16 < local_3c)) {
                bVar3 = bVar3 ^ 1;
                bVar12 = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';
                *(byte *)((int)param_2 + 0x11) = bVar12;
              }
              else {
                bVar12 = *(byte *)((int)param_2 + 0x11);
              }
              lVar2 = (lVar21 - lVar22) + CONCAT44(uVar17,uVar14);
              uVar16 = (uint)((ulonglong)lVar2 >> 0x20);
              *(longlong *)(param_2 + 2) = lVar2;
              bVar3 = bVar3 ^ (byte)((ulonglong)(lVar21 - lVar22) >> 0x3f);
              if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)((uint)lVar2 < uVar14)) {
                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | (bVar3 ^ 1) * '\x02';
              }
              else {
                *(byte *)((int)param_2 + 0x11) = bVar12 & 0xfd | bVar3 * '\x02';
              }
              *(undefined1 *)(param_2 + 4) = 2;
              *param_2 = 0;
              iVar6 = local_70;
              goto joined_r0x00023268;
            }
          }
LAB_000236cb:
          if (local_20 == '\x02') goto LAB_0002337b;
        }
LAB_0002301a:
        uVar17 = local_24;
        uVar14 = local_28;
        cVar13 = (char)param_2[4];
        if (cVar13 == '\x02') {
          if (local_20 == '\x02') {
            if (local_24 == 0 && local_28 == 0) {
              if (local_84 - 0xbU < 2) {
                uVar9 = dcgettext(0,&UNK_0002ee06 + unaff_EDI,5);
                FUN_0002bc10(uVar9);
              }
            }
            else if ((local_24 != 0 || -local_24 < (uint)(0x3f < local_28)) && (local_84 - 0xdU < 2)
                    ) {
              uVar9 = dcgettext(0,unaff_EDI + 0x2ee17,5);
              FUN_0002c210(uVar9,uVar14,uVar17,0,0,0x3f,0,0,0);
              param_2[2] = 0;
              param_2[3] = 0;
            }
            if (local_84 - 10U < 0x13) {
                    /* WARNING: Could not recover jumptable at 0x00023483. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              iVar8 = (*(code *)(*(int *)(unaff_EDI + 0x2f3d1 + (local_84 - 10U) * 4) +
                                unaff_EDI + 0x4b219))();
              return iVar8;
            }
          }
LAB_0002303c:
          iVar6 = FUN_00021360(param_2);
          *param_2 = iVar6;
          iVar6 = FUN_00021360(&local_30);
          param_2[1] = iVar6;
          *(undefined1 *)(param_2 + 4) = (undefined1)local_84;
          param_2[2] = 0;
          param_2[3] = 0;
          *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfc | 1;
          goto LAB_00023089;
        }
LAB_0002302e:
        if ((cVar13 != '\x03') || (local_20 != '\x03')) goto LAB_0002303c;
        if (1 < local_84 - 0x13U) {
          if ((param_2[3] == 0 && local_24 == 0) && (param_2[2] == 0 && local_28 == 0)) {
            *(undefined1 *)(param_2 + 4) = (undefined1)local_84;
            param_2[1] = local_30;
            goto LAB_00023089;
          }
          goto LAB_0002303c;
        }
        *(undefined1 *)(param_2 + 4) = (undefined1)local_84;
        param_2[1] = local_30;
        if (local_84 == 0x13) {
          uVar14 = param_2[2];
          uVar17 = param_2[3];
          uVar16 = uVar17 + local_24 + (uint)CARRY4(uVar14,local_28);
          param_2[2] = uVar14 + local_28;
          bVar12 = *(byte *)((int)param_2 + 0x11);
          param_2[3] = uVar16;
          bVar3 = (local_1f ^ bVar12) >> 1 & 1;
          if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 + local_28 < uVar14))
          goto LAB_00023820;
          goto LAB_00023823;
        }
        uVar14 = param_2[3];
        uVar17 = param_2[2];
        param_2[2] = uVar17 - local_28;
        param_2[3] = (uVar14 - local_24) - (uint)(uVar17 < local_28);
        bVar3 = (local_1f ^ *(byte *)((int)param_2 + 0x11)) >> 1 & 1;
        if (uVar14 < local_24 || uVar14 - local_24 < (uint)(uVar17 < local_28)) {
          bVar3 = bVar3 ^ 1;
        }
        *(byte *)((int)param_2 + 0x11) = *(byte *)((int)param_2 + 0x11) & 0xfd | bVar3 * '\x02';
        if (iVar5 != local_70) goto LAB_00023093;
        iVar10 = *(int *)(unaff_EDI + 0x4b1c1);
        if (local_70 == iVar10 + 0x180) {
LAB_00023a77:
          iVar6 = iVar10 + 0x180;
          goto joined_r0x00023268;
        }
        if (local_70 != iVar10 + 0xc0) {
          iVar6 = local_70;
          if (((*(int *)(&DAT_000548e9 + unaff_EDI) == local_70) ||
              (*(int *)(&DAT_00054839 + unaff_EDI) == local_70)) ||
             ((iVar5 = FUN_00038140(*param_2,0), iVar5 != 0 ||
              (iVar5 = FUN_00038140(local_30,0), iVar5 != 0)))) goto joined_r0x00023268;
          goto LAB_00023a77;
        }
LAB_00023258:
        iVar6 = iVar10 + 0xc0;
      }
joined_r0x00023268:
      local_70 = iVar6;
      if (local_78 == 0) break;
      local_84 = local_78;
      cVar13 = *(char *)(unaff_EDI + 0x4b459 + local_78);
      if (cVar13 <= (char)param_1) break;
      pbVar4 = (byte *)*piVar1;
    } while( true );
  }
LAB_00023277:
  if (*param_2 != 0) {
    FUN_0003b280(*param_2);
  }
  if (((char)param_1 == '\0') && (param_3 == 0)) {
    FUN_00021760(param_2);
  }
  if ((char)param_2[4] == '\x02') {
    local_70 = *(int *)(unaff_EDI + 0x4b1c1) + 0x180;
  }
  return local_70;
}

