
int do_bidi(bidi_char *line,int count)

{
  int iVar1;
  int *piVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  uint *puVar6;
  int iVar7;
  
  if (count < 1) {
    return 0;
  }
  iVar7 = 0;
  puVar6 = &line->wc;
  do {
    iVar1 = 0x269;
    iVar5 = -1;
    do {
      iVar4 = iVar1;
      if (iVar4 - iVar5 < 2) goto LAB_00033888;
      iVar3 = (iVar4 + iVar5) / 2;
      piVar2 = (int *)(PTR_data_CS_ISO8859_4_sbcs2ucs_194__000b5230 + iVar3 * 0xc + 0x5a9c);
      iVar1 = iVar3;
    } while (((int)*puVar6 < *piVar2) || (iVar1 = iVar4, iVar5 = iVar3, piVar2[1] < (int)*puVar6));
    if (*(byte *)((int)piVar2 + 0xb) - 3 < 2) {
                    /* WARNING: Subroutine does not return */
      safemalloc(count,1);
    }
LAB_00033888:
    iVar7 = iVar7 + 1;
    puVar6 = puVar6 + 3;
    if (count == iVar7) {
      return 0;
    }
  } while( true );
}



/* WARNING: Removing unreachable block (ram,0x00033a54) */
/* WARNING: Removing unreachable block (ram,0x00033ad8) */
/* WARNING: Removing unreachable block (ram,0x00033adc) */

undefined4 do_bidi(int param_1,int param_2)

{
  byte bVar1;
  bool bVar2;
  bool bVar3;
  undefined *puVar4;
  undefined *puVar5;
  int *piVar6;
  byte *pbVar7;
  byte *pbVar8;
  byte bVar12;
  undefined4 uVar9;
  byte *pbVar10;
  int iVar11;
  int iVar13;
  byte *pbVar14;
  uint uVar15;
  int *piVar16;
  int iVar17;
  int *piVar18;
  int iVar19;
  int iVar20;
  byte bVar21;
  int iVar22;
  int iVar23;
  byte *pbVar24;
  int iVar25;
  int iVar26;
  int iVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  int *piVar31;
  
  puVar4 = PTR_DAT_000b5230;
  if (param_2 < 1) {
    return 0;
  }
  iVar25 = 0;
  piVar31 = (int *)(param_1 + 4);
  piVar16 = piVar31;
  while( true ) {
    iVar11 = 0x269;
    iVar22 = -1;
    do {
      iVar26 = iVar11;
      if (iVar26 - iVar22 < 2) goto LAB_00033888;
      iVar13 = (iVar26 + iVar22) / 2;
      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);
      iVar11 = iVar13;
    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));
    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;
LAB_00033888:
    iVar25 = iVar25 + 1;
    piVar16 = piVar16 + 3;
    if (param_2 == iVar25) {
      return 0;
    }
  }
  pbVar7 = (byte *)safemalloc(param_2,1);
  pbVar8 = (byte *)safemalloc(param_2,1);
  puVar5 = PTR_DAT_000b5230;
  iVar25 = 0;
  piVar16 = piVar31;
  do {
    iVar11 = 0x269;
    iVar22 = -1;
    do {
      iVar26 = iVar11;
      if (iVar26 - iVar22 < 2) goto LAB_00033978;
      iVar13 = (iVar26 + iVar22) / 2;
      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);
      iVar11 = iVar13;
    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));
    uVar15 = piVar6[2];
    if ((uVar15 & 0xff) - 3 < 2) {
      bVar21 = 1;
      goto LAB_000339c8;
    }
    bVar21 = (byte)uVar15;
    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;
LAB_00033978:
    iVar25 = iVar25 + 1;
    piVar16 = piVar16 + 3;
  } while (param_2 != iVar25);
  bVar21 = 0;
LAB_000339c8:
  iVar25 = 0;
  piVar16 = piVar31;
  do {
    iVar22 = iVar25;
    iVar25 = 0x269;
    iVar11 = -1;
    do {
      iVar26 = iVar25;
      if (iVar26 - iVar11 < 2) {
        bVar12 = 0x12;
        goto switchD_00033aa8_caseD_0;
      }
      iVar13 = (iVar26 + iVar11) / 2;
      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);
      iVar25 = iVar13;
    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));
    bVar12 = *(byte *)((int)piVar6 + 0xb);
    if (bVar12 < 0x12) {
                    /* WARNING: Could not emulate address calculation at 0x00033a9c */
                    /* WARNING: Treating indirect jump as call */
      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();
      return uVar9;
    }
switchD_00033aa8_caseD_0:
    pbVar8[iVar22] = bVar21;
    iVar25 = iVar22 + 1;
    piVar16 = piVar16 + 3;
    pbVar7[iVar22] = bVar12;
  } while (param_2 != iVar25);
  pbVar24 = pbVar7 + iVar25;
  pbVar14 = pbVar7;
  do {
    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {
      *pbVar14 = 0xe;
    }
    pbVar14 = pbVar14 + 1;
  } while (pbVar14 != pbVar24);
  if (*pbVar7 == 0xd) {
    *pbVar7 = bVar21;
  }
  pbVar14 = pbVar7 + 1;
  if (iVar25 != 1) {
    do {
      if (*pbVar14 == 0xd) {
        *pbVar14 = pbVar14[-1];
      }
      pbVar14 = pbVar14 + 1;
    } while (pbVar14 != pbVar24);
  }
  pbVar14 = pbVar7;
  do {
    pbVar10 = pbVar14;
    if (*pbVar14 == 8) {
      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {
        bVar12 = *pbVar10;
        if (bVar12 == 4) {
          *pbVar14 = 0xb;
          break;
        }
        if ((bVar12 == 3) || (bVar12 == 0)) break;
      }
    }
    pbVar14 = pbVar14 + 1;
    pbVar10 = pbVar7;
  } while (pbVar14 != pbVar24);
  do {
    if (*pbVar10 == 4) {
      *pbVar10 = 3;
    }
    pbVar10 = pbVar10 + 1;
  } while (pbVar10 != pbVar24);
  bVar3 = 1 < iVar22;
  if (bVar3) {
    pbVar14 = pbVar7;
    do {
      while (pbVar14[1] != 9) {
        if (pbVar14[1] == 0xc) {
          if (*pbVar14 == 8) goto LAB_00033c54;
          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {
            pbVar14[1] = 0xb;
          }
        }
LAB_00033c30:
        pbVar14 = pbVar14 + 1;
        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;
      }
      if (*pbVar14 != 8) goto LAB_00033c30;
LAB_00033c54:
      if (pbVar14[2] != 8) goto LAB_00033c30;
      pbVar14[1] = 8;
      pbVar14 = pbVar14 + 1;
    } while (pbVar7 + iVar22 + -1 != pbVar14);
  }
LAB_00033c70:
  iVar11 = 0;
  pbVar14 = pbVar7;
  do {
    if (*pbVar14 == 10) {
      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {
        if (iVar11 < iVar22) {
          if (pbVar14[1] == 8) {
LAB_000342a8:
            *pbVar14 = 8;
          }
          else if (pbVar14[1] == 10) {
            pbVar24 = pbVar7 + iVar11 + 1;
            do {
              bVar12 = *pbVar24;
              if (pbVar7 + iVar22 == pbVar24) break;
              pbVar24 = pbVar24 + 1;
            } while (bVar12 == 10);
            if (bVar12 == 8) goto LAB_000342a8;
          }
        }
      }
      else {
        *pbVar14 = 8;
      }
    }
    bVar2 = iVar11 < iVar22;
    iVar11 = iVar11 + 1;
    pbVar14 = pbVar14 + 1;
  } while (bVar2);
  iVar11 = 0;
  do {
    uVar15 = (uint)pbVar7[iVar11];
    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {
      pbVar7[iVar11] = 0x12;
    }
    bVar2 = iVar11 < iVar22;
    iVar11 = iVar11 + 1;
  } while (bVar2);
  iVar11 = 0;
  do {
    while( true ) {
      if (pbVar7[iVar11] != 8) break;
      uVar15 = 8;
      pbVar14 = pbVar7 + -1 + iVar11;
      do {
        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;
        uVar15 = (uint)*pbVar14;
        pbVar14 = pbVar14 + -1;
      } while (uVar15 != 0);
      bVar2 = iVar22 <= iVar11;
      pbVar7[iVar11] = 0;
      iVar11 = iVar11 + 1;
      if (bVar2) goto LAB_00033d38;
    }
LAB_00033cec:
    bVar2 = iVar11 < iVar22;
    iVar11 = iVar11 + 1;
  } while (bVar2);
LAB_00033d38:
  if (iVar25 == 1) {
    if (!bVar3) goto LAB_00033e60;
LAB_00033d58:
    iVar11 = 1;
    do {
      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {
LAB_00033d74:
        iVar11 = iVar11 + 1;
LAB_00033d78:
        if (iVar22 <= iVar11) goto LAB_00033e38;
      }
      bVar12 = pbVar14[-1];
      iVar26 = iVar11;
      if (bVar12 == 0) {
        do {
          iVar13 = iVar26;
          iVar26 = iVar13 + 1;
          if (iVar22 <= iVar26) break;
        } while (pbVar7[iVar26] == 0x12);
        if (pbVar7[iVar26] == 0) {
          if (iVar11 < iVar26) {
            while( true ) {
              *pbVar14 = 0;
              if (iVar13 <= iVar11) break;
              pbVar14 = pbVar7 + iVar11 + 1;
              iVar11 = iVar11 + 1;
            }
            iVar11 = iVar11 + 2;
          }
          else {
            iVar11 = iVar11 + 1;
          }
          goto LAB_00033d78;
        }
        goto LAB_00033d74;
      }
      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;
      if (iVar22 <= iVar11) {
        iVar11 = iVar11 + 1;
        goto LAB_00033d78;
      }
      do {
        iVar23 = iVar26;
        iVar26 = iVar23 + 1;
        bVar12 = pbVar7[iVar26];
        iVar13 = iVar22;
        if (iVar26 == iVar22) break;
        iVar13 = iVar26;
      } while (bVar12 == 0x12);
      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;
      if (iVar13 <= iVar11) {
        iVar11 = iVar11 + 1;
        goto LAB_00033d78;
      }
      while( true ) {
        *pbVar14 = 3;
        if (iVar23 <= iVar11) break;
        pbVar14 = pbVar7 + iVar11 + 1;
        iVar11 = iVar11 + 1;
      }
      iVar11 = iVar11 + 2;
    } while (iVar11 < iVar22);
LAB_00033e38:
    if (iVar25 == 1) goto LAB_00033e60;
  }
  else {
    if (*pbVar7 == 0x12) {
      bVar12 = pbVar7[1];
      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {
        *pbVar7 = 3;
      }
      else if (bVar12 == 0) {
        *pbVar7 = 0;
      }
    }
    if (bVar3) goto LAB_00033d58;
  }
  pbVar14 = pbVar7 + param_2 + -1;
  if (*pbVar14 == 0x12) {
    bVar12 = pbVar7[param_2 + -2];
    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {
      *pbVar14 = 3;
    }
    else if (bVar12 == 0) {
      *pbVar14 = 0;
    }
  }
LAB_00033e60:
  iVar11 = 0;
  do {
    while( true ) {
      pbVar14 = pbVar7 + iVar11;
      if (*pbVar14 == 0x12) break;
LAB_00033e6c:
      bVar3 = iVar22 <= iVar11;
      iVar11 = iVar11 + 1;
      if (bVar3) goto LAB_00033ea8;
    }
    if ((pbVar8[iVar11] & 1) != 0) {
      *pbVar14 = 3;
      goto LAB_00033e6c;
    }
    *pbVar14 = 0;
    bVar3 = iVar11 < iVar22;
    iVar11 = iVar11 + 1;
  } while (bVar3);
LAB_00033ea8:
  iVar11 = 0;
  do {
    while( true ) {
      pbVar14 = pbVar8 + iVar11;
      bVar12 = *pbVar14;
      if ((bVar12 & 1) == 0) break;
LAB_00033ecc:
      bVar3 = iVar22 <= iVar11;
      iVar11 = iVar11 + 1;
      if (bVar3) goto LAB_00033f0c;
    }
    bVar1 = pbVar7[iVar11];
    if (bVar1 != 3) {
      if ((bVar1 == 0xb) || (bVar1 == 8)) {
        *pbVar14 = bVar12 + 2;
      }
      goto LAB_00033ecc;
    }
    *pbVar14 = bVar12 + 1;
    bVar3 = iVar11 < iVar22;
    iVar11 = iVar11 + 1;
  } while (bVar3);
LAB_00033f0c:
  iVar11 = 0;
  do {
    while( true ) {
      bVar12 = pbVar8[iVar11];
      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;
      pbVar8[iVar11] = bVar12 + 1;
      bVar3 = iVar22 <= iVar11;
      iVar11 = iVar11 + 1;
      if (bVar3) goto LAB_00033f68;
    }
    bVar3 = iVar11 < iVar22;
    iVar11 = iVar11 + 1;
  } while (bVar3);
LAB_00033f68:
  if (iVar22 != 0) {
    iVar26 = param_1 + iVar25 * 0xc;
    iVar11 = iVar22;
    do {
      iVar13 = -1;
      iVar23 = 0x269;
      do {
        iVar27 = iVar23;
        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;
        iVar23 = (iVar27 + iVar13) / 2;
        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);
      } while ((*(int *)(iVar26 + -8) < *piVar16) ||
              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));
      if (*(char *)((int)piVar16 + 0xb) != '\x11') {
LAB_00033fdc:
        bVar3 = iVar11 < iVar22;
        if (bVar3) goto LAB_000342f4;
        goto LAB_00033fe8;
      }
      iVar11 = iVar11 + -1;
      iVar26 = iVar26 + -0xc;
    } while (iVar11 != 0);
    bVar3 = 0 < iVar22;
LAB_000342f4:
    if (bVar3) {
      pbVar14 = pbVar8 + iVar11 + 1;
      do {
        *pbVar14 = bVar21;
        pbVar14 = pbVar14 + 1;
      } while (pbVar8 + iVar25 != pbVar14);
    }
  }
LAB_00033fe8:
  iVar11 = 0;
  piVar16 = piVar31;
  do {
    iVar23 = *piVar16;
    iVar26 = 0x269;
    iVar13 = -1;
    do {
      iVar27 = iVar26;
      if (iVar27 - iVar13 < 2) goto LAB_00034050;
      iVar17 = (iVar27 + iVar13) / 2;
      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);
      iVar26 = iVar17;
    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));
    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {
      iVar26 = iVar11;
      if (iVar11 < iVar25) {
        piVar6 = piVar16 + -1;
        while( true ) {
          iVar13 = 0x269;
          iVar27 = -1;
          do {
            iVar17 = iVar13;
            if (iVar17 - iVar27 < 2) goto LAB_0003439c;
            iVar20 = (iVar17 + iVar27) / 2;
            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);
            iVar13 = iVar20;
          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));
          iVar13 = iVar26 + 1;
          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;
          if (iVar26 == iVar22) break;
          iVar23 = piVar6[4];
          iVar26 = iVar13;
          piVar6 = piVar6 + 3;
        }
      }
      else {
LAB_0003439c:
        iVar13 = iVar25;
        if (iVar25 != iVar26) {
          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);
          iVar23 = 0x269;
          iVar27 = -1;
          do {
            iVar20 = iVar23;
            iVar13 = iVar26;
            if (iVar20 - iVar27 < 2) goto LAB_00034408;
            iVar19 = (iVar20 + iVar27) / 2;
            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);
            iVar23 = iVar19;
          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));
          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {
LAB_00034408:
            iVar26 = 0x269;
            iVar23 = -1;
            do {
              iVar27 = iVar26;
              if (iVar27 - iVar23 < 2) goto LAB_00034050;
              iVar20 = (iVar27 + iVar23) / 2;
              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);
              iVar26 = iVar20;
            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));
            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;
          }
        }
      }
      pbVar14 = pbVar8 + iVar13 + -1;
      if (iVar11 <= iVar13 + -1) {
        do {
          *pbVar14 = bVar21;
          pbVar14 = pbVar14 + -1;
        } while (pbVar8 + iVar11 + -1 != pbVar14);
      }
    }
    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {
      pbVar8[iVar11] = bVar21;
    }
LAB_00034050:
    bVar3 = iVar11 < iVar22;
    piVar16 = piVar16 + 3;
    iVar11 = iVar11 + 1;
  } while (bVar3);
  iVar11 = 0;
  do {
    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {
      iVar11 = iVar11 + 1;
      if (uVar15 == 0) goto LAB_000340a4;
    }
    doMirror(piVar31 + iVar11 * 3);
    uVar15 = (uint)(iVar11 < iVar22);
    iVar11 = iVar11 + 1;
  } while (uVar15 != 0);
LAB_000340a4:
  uVar28 = (uint)*pbVar8;
  uVar29 = uVar28;
  while( true ) {
    bVar3 = iVar22 <= (int)uVar15;
    uVar30 = uVar28;
    if (uVar28 < uVar29) {
      uVar30 = uVar29;
    }
    uVar15 = uVar15 + 1;
    if (bVar3) break;
    uVar28 = (uint)pbVar8[uVar15];
    uVar29 = uVar30;
  }
  for (; uVar30 != 0; uVar30 = uVar30 - 1) {
    flipThisRun(param_1,pbVar8,uVar30,iVar25);
  }
  safefree(pbVar7);
  safefree(pbVar8);
  return 3;
}


lui gp,0x9
addiu gp,gp,-0x6610
addu gp,gp,t9
blez a1,0x000345d4
_nop
addiu sp,sp,-0x40
or t3,zero,zero
sw s0,0x1c(sp)
sw s2,0x24(sp)
addiu s2,a0,0x4
sw s1,0x20(sp)
sw gp,0x10(sp)
or s1,s2,zero
sw ra,0x3c(sp)
or t2,s2,zero
sw s7,0x38(sp)
sw s6,0x34(sp)
sw s5,0x30(sp)
sw s4,0x2c(sp)
sw s3,0x28(sp)
lw s0,-0x7fa0(gp)
addiu s0,s0,0x5a9c
lw t1,0x0(t2)
li a3,0x269
b 0x00033878
_li t0,-0x1
srl v1,v0,0x1f
addu v1,v1,v0
sra v1,v1,0x1
sll v0,v1,0x1
addu v0,v0,v1
sll v0,v0,0x2
addu v0,s0,v0
lw a2,0x0(v0)
slt a2,t1,a2
beq a2,zero,0x000338c4
_nop
or a3,v1,zero
subu v0,a3,t0
slti v0,v0,0x2
beq v0,zero,0x00033848
_addu v0,a3,t0
addiu t3,t3,0x1
bne a1,t3,0x00033838
_addiu t2,t2,0xc
lw ra,0x3c(sp)
or v0,zero,zero
lw s7,0x38(sp)
lw s6,0x34(sp)
lw s5,0x30(sp)
lw s4,0x2c(sp)
lw s3,0x28(sp)
lw s2,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x40
lw a2,0x4(v0)
or t0,v1,zero
slt v1,a2,t1
bne v1,zero,0x00033878
_nop
lbu v0,0xb(v0)
addiu v0,v0,-0x3
sltiu v0,v0,0x2
beq v0,zero,0x00033888
_lw t9,-0x7fc4(gp)
or s7,a1,zero
li a1,0x1
or s3,a0,zero
bal 0x000352f4
_or a0,s7,zero
li a1,0x1
lw gp,0x10(sp)
or a0,s7,zero
lw t9,-0x7fc4(gp)
bal 0x000352f4
_or s4,v0,zero
or t1,zero,zero
lw gp,0x10(sp)
or t0,s2,zero
or s5,v0,zero
lw a3,0x0(t0)
li a1,0x269
b 0x00033968
_li a2,-0x1
srl a0,v0,0x1f
addu a0,a0,v0
sra a0,a0,0x1
sll v1,a0,0x1
addu v1,v1,a0
sll v1,v1,0x2
addu v1,s0,v1
lw v0,0x0(v1)
slt v0,a3,v0
beq v0,zero,0x0003398c
_nop
or a1,a0,zero
subu v0,a1,a2
slti v0,v0,0x2
beq v0,zero,0x00033938
_addu v0,a1,a2
addiu t1,t1,0x1
bne s7,t1,0x00033928
_addiu t0,t0,0xc
b 0x000339c8
_or a1,zero,zero
lw v0,0x4(v1)
slt v0,v0,a3
bne v0,zero,0x00033968
_or a2,a0,zero
lw a1,0x8(v1)
andi v0,a1,0xff
addiu v0,v0,-0x3
sltiu v0,v0,0x2
beq v0,zero,0x000339bc
_nop
b 0x000339c8
_li a1,0x1
andi a1,a1,0xff
bne a1,zero,0x00033978
_nop
lw t4,-0x7fa0(gp)
or t5,zero,zero
or a3,zero,zero
li t2,0x12
li t7,0x12
addiu t4,t4,0x5a54
addiu t9,s5,-0x2
addiu t3,s5,-0x1
li t6,0x3
li t8,-0x80
or t1,s2,zero
or t0,a1,zero
lw s6,0x0(t1)
li a0,0x269
b 0x00033a38
_li a2,-0x1
srl v1,v0,0x1f
addu v1,v1,v0
sra v1,v1,0x1
sll v0,v1,0x1
addu v0,v0,v1
sll v0,v0,0x2
addu v0,s0,v0
lw ra,0x0(v0)
slt ra,s6,ra
beq ra,zero,0x00033a78
_nop
or a0,v1,zero
subu v0,a0,a2
slti v0,v0,0x2
beq v0,zero,0x00033a08
_addu v0,a0,a2
li v0,0x12
xori a0,t2,0x12
addu v1,s5,a3
movn v0,t2,a0
sb t0,0x0(v1)
addu a0,s4,a3
addiu s6,a3,0x1
addiu t1,t1,0xc
beq s7,s6,0x00033ad0
_sb v0,0x0(a0)
b 0x000339f8
_or a3,s6,zero
lw ra,0x4(v0)
or a2,v1,zero
slt v1,ra,s6
bne v1,zero,0x00033a38
_nop
lbu v0,0xb(v0)
sltiu v1,v0,0x12
beq v1,zero,0x00033a4c
_sll v1,v0,0x2
addu v1,t4,v1
lw v1,0x0(v1)
addu v1,v1,gp
jr v1
_nop
addu v1,s5,a3
addu a0,s4,a3
addiu s6,a3,0x1
or v0,t2,zero
sb t0,0x0(v1)
addiu t1,t1,0xc
bne s7,s6,0x00033a70
_sb v0,0x0(a0)
beq t5,zero,0x00033af0
_addu a2,s7,s5
or v0,s5,zero
lbu v1,0x0(v0)
addiu v0,v0,0x1
andi v1,v1,0x3f
bne v0,a2,0x00033adc
_sb v1,-0x1(v0)
addu t0,s4,s6
li t1,0x1
li t2,0xe
or v1,s4,zero
lbu v0,0x0(v1)
sltiu a2,v0,0x8
beq a2,zero,0x00033b20
_sllv v0,t1,v0
andi v0,v0,0xe6
beq v0,zero,0x00033b20
_nop
sb t2,0x0(v1)
addiu v1,v1,0x1
bne v1,t0,0x00033b00
_li v0,0xd
lbu v1,0x0(s4)
bne v1,v0,0x00033b3c
_li v1,0x1
sb a1,0x0(s4)
addiu v0,s4,0x1
beq s6,v1,0x00033b68
_li a2,0xd
lbu v1,0x0(v0)
bne v1,a2,0x00033b5c
_nop
lbu v1,-0x1(v0)
sb v1,0x0(v0)
addiu v0,v0,0x1
bne v0,t0,0x00033b48
_nop
or a2,s4,zero
li t4,0x8
addiu t1,s4,-0x1
li t3,0x4
li t2,0x3
b 0x00033b90
_li t5,0xb
addiu a2,a2,0x1
beq a2,t0,0x00033bd8
_nop
lbu v0,0x0(a2)
bne v0,t4,0x00033b84
_addiu v0,a2,-0x1
b 0x00033bb4
_nop
beq v1,t2,0x00033b84
_nop
beq v1,zero,0x00033b84
_addiu v0,v0,-0x1
beq v0,t1,0x00033b84
_nop
lbu v1,0x0(v0)
bne v1,t3,0x00033ba4
_nop
sb t5,0x0(a2)
addiu a2,a2,0x1
bne a2,t0,0x00033b90
_nop
li a2,0x4
li t1,0x3
or v0,s4,zero
lbu v1,0x0(v0)
bne v1,a2,0x00033bf4
_nop
sb t1,0x0(v0)
addiu v0,v0,0x1
bne v0,t0,0x00033be4
_nop
slti a2,a3,0x2
bne a2,zero,0x00033c70
_addiu t0,a3,-0x1
li t1,0x9
addu t0,s4,t0
li t3,0xc
li t2,0x8
li t4,0xb
b 0x00033c3c
_or v0,s4,zero
beq v1,t3,0x00034230
_nop
addiu v0,v0,0x1
beq t0,v0,0x00033c70
_nop
lbu v1,0x1(v0)
bne v1,t1,0x00033c28
_nop
lbu v1,0x0(v0)
bne v1,t2,0x00033c30
_nop
lbu v1,0x2(v0)
bne v1,t2,0x00033c30
_nop
sb t2,0x1(v0)
addiu v0,v0,0x1
bne t0,v0,0x00033c3c
_nop
or v0,zero,zero
li t1,0xa
li t3,0x8
addiu t5,s4,0x1
or v1,s4,zero
lbu t0,0x0(v1)
beq t0,t1,0x00034258
_nop
slt t0,v0,a3
addiu v0,v0,0x1
bne t0,zero,0x00033c84
_addiu v1,v1,0x1
or v0,zero,zero
li t1,0x1
li t2,0x12
addu a0,s4,v0
lbu v1,0x0(a0)
sltiu t0,v1,0xd
beq t0,zero,0x00033cd0
_sllv v1,t1,v1
andi v1,v1,0x1600
beq v1,zero,0x00033cd4
_slt v1,v0,a3
sb t2,0x0(a0)
slt v1,v0,a3
bne v1,zero,0x00033cac
_addiu v0,v0,0x1
li t2,0x8
b 0x00033cf4
_addiu t1,s4,-0x1
slt v0,v1,a3
beq v0,zero,0x00033d38
_addiu v1,v1,0x1
addu t0,s4,v1
lbu v0,0x0(t0)
bne v0,t2,0x00033ce8
_addu a0,t1,v1
addiu v0,v0,-0x3
sltiu v0,v0,0x2
bne v0,zero,0x00033cec
_slt v0,v1,a3
beq t1,a0,0x00033cec
_addiu a0,a0,-0x1
lbu v0,0x1(a0)
bne v0,zero,0x00033d08
_addiu v0,v0,-0x3
slt v0,v1,a3
sb zero,0x0(t0)
bne v0,zero,0x00033cf4
_addiu v1,v1,0x1
li v0,0x1
beq s6,v0,0x00034570
_li v0,0x12
lbu v1,0x0(s4)
beq v1,v0,0x00034580
_li v1,0x3
bne a2,zero,0x00033e44
_nop
li v0,0x1
li a2,0x12
li t4,-0x9
li t3,0x3
li t2,0x3
b 0x00033d84
_li t5,0x8
addiu v0,v0,0x1
slt v1,v0,a3
beq v1,zero,0x00033e38
_nop
addu a0,s4,v0
lbu v1,0x0(a0)
bne v1,a2,0x00033d74
_nop
lbu v1,-0x1(a0)
beq v1,zero,0x00034520
_or t0,v0,zero
and t0,v1,t4
beq t0,t3,0x00033db4
_nop
bne v1,t5,0x00033d74
_nop
slt v1,v0,a3
bne v1,zero,0x00033dd4
_or t0,v0,zero
b 0x00033d78
_addiu v0,v0,0x1
bne t1,a2,0x00033dec
_and t6,t1,t4
or t0,v1,zero
addiu v1,t0,0x1
addu t1,s4,v1
bne v1,a3,0x00033dc8
_lbu t1,0x0(t1)
or v1,a3,zero
and t6,t1,t4
beq t6,t3,0x00033dfc
_nop
bne t1,t5,0x00033d74
_nop
slt v1,v0,v1
bne v1,zero,0x00033e18
_or t1,v0,zero
b 0x00033d78
_addiu v0,v0,0x1
addu a0,s4,v0
or t1,v0,zero
slt t1,t1,t0
sb t2,0x0(a0)
bne t1,zero,0x00033e10
_addiu v0,v0,0x1
addiu v0,v0,0x1
slt v1,v0,a3
bne v1,zero,0x00033d88
_addu a0,s4,v0
li v0,0x1
beq s6,v0,0x00033e60
_or v0,zero,zero
addiu v0,s7,-0x1
li v1,0x12
addu v0,s4,v0
lbu a0,0x0(v0)
beq a0,v1,0x000345a8
_li a0,0x3
or v0,zero,zero
li a2,0x12
b 0x00033e78
_li t0,0x3
slt v1,v0,a3
beq v1,zero,0x00033ea8
_addiu v0,v0,0x1
addu v1,s4,v0
lbu a0,0x0(v1)
bne a0,a2,0x00033e6c
_addu a0,s5,v0
lbu a0,0x0(a0)
andi a0,a0,0x1
bne a0,zero,0x000342b0
_nop
sb zero,0x0(v1)
slt v1,v0,a3
bne v1,zero,0x00033e78
_addiu v0,v0,0x1
or v0,zero,zero
li t0,0x3
li t1,0xb
b 0x00033ed8
_li t2,0x8
beq a2,t1,0x000342b8
_nop
beq a2,t2,0x000342bc
_addiu v1,v1,0x2
slt v1,v0,a3
beq v1,zero,0x00033f0c
_addiu v0,v0,0x1
addu a0,s5,v0
lbu v1,0x0(a0)
andi a2,v1,0x1
bne a2,zero,0x00033ecc
_addu a2,s4,v0
lbu a2,0x0(a2)
bne a2,t0,0x00033ebc
_nop
addiu v1,v1,0x1
sb v1,0x0(a0)
slt v1,v0,a3
bne v1,zero,0x00033ed8
_addiu v0,v0,0x1
or v0,zero,zero
li t1,-0x9
b 0x00033f30
_li t2,0xb
beq a2,t2,0x00033f58
_addiu v1,v1,0x1
slt v1,v0,a3
beq v1,zero,0x00033f68
_addiu v0,v0,0x1
addu a0,s5,v0
lbu v1,0x0(a0)
andi a2,v1,0x1
beq a2,zero,0x00033f24
_addu a2,s4,v0
lbu a2,0x0(a2)
and t0,a2,t1
bne t0,zero,0x00033f1c
_nop
addiu v1,v1,0x1
sb v1,0x0(a0)
slt v1,v0,a3
bne v1,zero,0x00033f30
_addiu v0,v0,0x1
beq a3,zero,0x00033fe4
_nop
sll t3,s6,0x1
li t4,0x11
addu t3,t3,s6
or t2,a3,zero
sll t3,t3,0x2
addu t3,s3,t3
lw t1,-0x8(t3)
li a2,0x269
b 0x00033fc8
_li t0,-0x1
srl v0,v1,0x1f
addu v0,v0,v1
sra v0,v0,0x1
sll v1,v0,0x1
addu v1,v1,v0
sll v1,v1,0x2
addu v1,s0,v1
lw a0,0x0(v1)
slt a0,t1,a0
beq a0,zero,0x000342c4
_nop
or a2,v0,zero
subu v0,a2,t0
slti v0,v0,0x2
beq v0,zero,0x00033f98
_addu v1,a2,t0
slt v1,t2,a3
bne v1,zero,0x000342f4
_nop
or t0,zero,zero
li t1,0x11
addiu t4,s5,-0x1
li t3,0x10
li t2,0xf
lw a2,0x0(s1)
li a0,0x269
b 0x00034038
_li t5,-0x1
srl v1,v0,0x1f
addu v1,v1,v0
sra v1,v1,0x1
sll v0,v1,0x1
addu v0,v0,v1
sll v0,v0,0x2
addu v0,s0,v0
lw t6,0x0(v0)
slt t6,a2,t6
beq t6,zero,0x0003431c
_nop
or a0,v1,zero
subu v0,a0,t5
slti v0,v0,0x2
beq v0,zero,0x00034008
_addu v0,a0,t5
slt v0,t0,a3
addiu s1,s1,0xc
bne v0,zero,0x00033ff8
_addiu t0,t0,0x1
or t0,zero,zero
b 0x0003406c
_lw t9,-0x7cc4(gp)
beq v0,zero,0x000340a4
_addiu t0,t0,0x1
addu v0,s5,t0
lbu v0,0x0(v0)
andi v0,v0,0x1
beq v0,zero,0x00034064
_slt v0,t0,a3
sll a0,t0,0x1
addu a0,a0,t0
sll a0,a0,0x2
bal 0x000326ac
_addu a0,s2,a0
slt v0,t0,a3
lw gp,0x10(sp)
bne v0,zero,0x0003406c
_addiu t0,t0,0x1
lbu s0,0x0(s5)
b 0x000340b8
_or v1,s0,zero
addu v1,s5,v0
lbu v1,0x0(v1)
sltu a0,v1,s0
beq a0,zero,0x000340c8
_slt a0,v0,a3
or v1,s0,zero
andi s0,v1,0xff
bne a0,zero,0x000340b0
_addiu v0,v0,0x1
beq s0,zero,0x00034100
_lw s1,-0x7cc0(gp)
or a2,s0,zero
addiu s0,s0,-0x1
or a3,s6,zero
or a1,s5,zero
or t9,s1,zero
bal 0x00031ee0
_or a0,s3,zero
bne s0,zero,0x000340dc
_lw gp,0x10(sp)
lw t9,-0x7fc0(gp)
bal 0x00036024
_or a0,s4,zero
lw gp,0x10(sp)
lw t9,-0x7fc0(gp)
bal 0x00036024
_or a0,s5,zero
li v0,0x3
lw ra,0x3c(sp)
lw s7,0x38(sp)
lw s6,0x34(sp)
lw s5,0x30(sp)
lw s4,0x2c(sp)
lw s3,0x28(sp)
lw s2,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x40
beq a3,zero,0x000345fc
_addu ra,s5,a3
addu v1,t9,a3
b 0x0003416c
_lbu a2,-0x1(ra)
lbu a0,0x1(v1)
bne a0,a2,0x00034224
_andi t2,t0,0xc0
bne t3,v1,0x00034160
_addiu v1,v1,-0x1
addiu v1,v1,0x1
or t0,a1,zero
li t2,0x12
b 0x00033a5c
_sb t0,0x0(ra)
addiu t0,t0,0x1
addu v0,s5,a3
ori t0,t0,0x1
andi t0,t0,0xff
sb t0,0x0(v0)
li t5,0x1
li v0,0x3
b 0x00033a5c
_li t2,0x3
addiu t0,t0,0x1
ori t0,t0,0x1
beq t2,t7,0x000341cc
_andi t0,t0,0xff
beq t2,t6,0x000341d0
_ori a0,t0,0x40
beq t2,zero,0x0003421c
_or a0,t0,t8
or a0,t0,zero
addu v1,s5,a3
li t2,0x12
b 0x00033a5c
_sb a0,0x0(v1)
addu v0,s5,a3
addiu t0,t0,0x2
li t5,0x1
andi t0,t0,0xfe
sb t0,0x0(v0)
or t2,zero,zero
b 0x00033a5c
_or v0,zero,zero
addiu t0,t0,0x2
beq t2,t7,0x000341cc
_andi t0,t0,0xfe
bne t2,t6,0x000341c4
_ori a0,t0,0x40
b 0x000341d4
_addu v1,s5,a3
b 0x000341d0
_andi a0,a0,0xff
andi t0,t0,0x3f
b 0x00033a5c
_sb t0,0x0(ra)
lbu v1,0x0(v0)
beq v1,t2,0x00033c54
_nop
bne v1,t4,0x00033c30
_nop
lbu v1,0x2(v0)
bne v1,t4,0x00033c30
_nop
b 0x00033c30
_sb t4,0x1(v0)
beq v0,zero,0x0003426c
_slt t0,v0,a3
lbu t0,-0x1(v1)
beq t0,t3,0x00034568
_slt t0,v0,a3
beq t0,zero,0x00033c94
_nop
lbu t2,0x1(v1)
beq t2,t3,0x000342a8
_nop
bne t2,t1,0x00033c94
_nop
b 0x00034298
_addu t2,t5,v0
bne t4,t1,0x000342a0
_addiu t2,t2,0x1
bne a0,t2,0x00034290
_lbu t4,0x0(t2)
bne t4,t3,0x00033c94
_nop
b 0x00033c94
_sb t3,0x0(v1)
b 0x00033e6c
_sb t0,0x0(v1)
addiu v1,v1,0x2
b 0x00033ecc
_sb v1,0x0(a0)
lw a0,0x4(v1)
or t0,v0,zero
slt v0,a0,t1
bne v0,zero,0x00033fcc
_subu v0,a2,t0
lbu v0,0xb(v1)
bne v0,t4,0x00033fdc
_slt v1,t2,a3
addiu t2,t2,-0x1
bne t2,zero,0x00033f88
_addiu t3,t3,-0xc
slt v1,zero,a3
beq v1,zero,0x00033fe4
_addiu v0,t2,0x1
addu v0,s5,v0
addu v1,s5,s6
sb a1,0x0(v0)
addiu v0,v0,0x1
bne v1,v0,0x00034304
_nop
b 0x00033fe8
_or t0,zero,zero
lw t6,0x4(v0)
or t5,v1,zero
slt v1,t6,a2
bne v1,zero,0x00034038
_nop
lbu v0,0xb(v0)
bne v0,t1,0x0003448c
_addiu v0,v0,-0xf
slt v0,t0,s6
beq v0,zero,0x000345f4
_nop
addiu t8,s1,-0x4
or t7,t0,zero
li t5,0x269
b 0x0003438c
_li t6,-0x1
srl a0,v0,0x1f
addu a0,a0,v0
sra a0,a0,0x1
sll v1,a0,0x1
addu v1,v1,a0
sll v1,v1,0x2
addu v1,s0,v1
lw v0,0x0(v1)
slt v0,a2,v0
beq v0,zero,0x0003445c
_nop
or t5,a0,zero
subu v0,t5,t6
slti v0,v0,0x2
beq v0,zero,0x0003435c
_addu v0,t5,t6
beq s6,t7,0x000344c0
_or v0,s6,zero
sll v0,t7,0x1
li a2,0x269
addu v0,v0,t7
li t5,-0x1
sll v0,v0,0x2
addu v0,s3,v0
b 0x000343f4
_lw a0,0x4(v0)
srl v1,v0,0x1f
addu v1,v1,v0
sra v1,v1,0x1
sll v0,v1,0x1
addu v0,v0,v1
sll v0,v0,0x2
addu v0,s0,v0
lw t6,0x0(v0)
slt t6,a0,t6
beq t6,zero,0x000344ec
_nop
or a2,v1,zero
subu v0,a2,t5
slti v0,v0,0x2
beq v0,zero,0x000343c4
_addu v0,a2,t5
li a2,0x269
b 0x00034444
_li t5,-0x1
addu v0,a2,t5
srl v1,v0,0x1f
addu v1,v1,v0
sra v1,v1,0x1
sll v0,v1,0x1
addu v0,v0,v1
sll v0,v0,0x2
addu v0,s0,v0
lw t6,0x0(v0)
slt t6,a0,t6
beq t6,zero,0x000344a0
_nop
or a2,v1,zero
subu v0,a2,t5
slti v0,v0,0x2
beq v0,zero,0x00034410
_slt v0,t0,a3
b 0x00034050
_addiu s1,s1,0xc
lw v0,0x4(v1)
slt v0,v0,a2
bne v0,zero,0x0003438c
_or t6,a0,zero
lbu v0,0xb(v1)
bne v0,t1,0x0003439c
_addiu v0,t7,0x1
beq t7,a3,0x000344c0
_addiu t8,t8,0xc
lw a2,0x4(t8)
b 0x00034350
_or t7,v0,zero
sltiu v0,v0,0x2
beq v0,zero,0x00034048
_addu v0,s5,t0
b 0x00034048
_sb a1,0x0(v0)
lw t6,0x4(v0)
or t5,v1,zero
slt v1,t6,a0
bne v1,zero,0x00034444
_nop
lbu v1,0xb(v0)
bne v1,t3,0x00034048
_or v0,t7,zero
addiu v0,v0,-0x1
slt v1,v0,t0
bne v1,zero,0x00034048
_addu v0,s5,v0
addu v1,t4,t0
sb a1,0x0(v0)
addiu v0,v0,-0x1
bne v1,v0,0x000344d4
_nop
b 0x0003404c
_slt v0,t0,a3
lw t6,0x4(v0)
or t5,v1,zero
slt v1,t6,a0
bne v1,zero,0x000343f4
_nop
lbu v1,0xb(v0)
beq v1,t2,0x000344c0
_or v0,t7,zero
b 0x00034408
_li a2,0x269
bne t1,a2,0x00034534
_nop
or t0,v1,zero
addiu v1,t0,0x1
addu t1,s4,v1
slt t6,v1,a3
bne t6,zero,0x00034514
_lbu t1,0x0(t1)
bne t1,zero,0x00033d74
_slt v1,v0,v1
bne v1,zero,0x00034554
_slt v1,v0,t0
b 0x00033d78
_addiu v0,v0,0x1
addu a0,s4,v0
slt v1,v0,t0
sb zero,0x0(a0)
bne v1,zero,0x0003454c
_addiu v0,v0,0x1
b 0x00033d78
_addiu v0,v0,0x1
b 0x00033c90
_sb t3,0x0(v1)
beq a2,zero,0x00033d58
_nop
b 0x00033e60
_or v0,zero,zero
lbu v0,0x1(s4)
andi a0,v0,0xf7
beq a0,v1,0x000345e8
_li v1,0x8
beq v0,v1,0x000345e8
_nop
bne v0,zero,0x00033d50
_nop
b 0x00033d50
_sb zero,0x0(s4)
addu s7,s4,s7
lbu v1,-0x2(s7)
andi a2,v1,0xf7
beq a2,a0,0x000345dc
_li a0,0x8
beq v1,a0,0x000345dc
_nop
bne v1,zero,0x00033e5c
_nop
b 0x00033e5c
_sb zero,0x0(v0)
jr ra
_or v0,zero,zero
li v1,0x3
b 0x00033e5c
_sb v1,0x0(v0)
li v0,0x3
b 0x00033d50
_sb v0,0x0(s4)
b 0x0003439c
_or t7,t0,zero
or ra,s5,zero
or t0,a1,zero
li t2,0x12
b 0x00033a5c
_sb t0,0x0(ra)
(translation_unit "/* WARNING: Removing unreachable block (ram,0x00033a54) */\n/* WARNING: Removing unreachable block (ram,0x00033ad8) */\n/* WARNING: Removing unreachable block (ram,0x00033adc) */\n\nundefined4 do_bidi(int param_1,int param_2)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar12;\n  undefined4 uVar9;\n  byte *pbVar10;\n  int iVar11;\n  int iVar13;\n  byte *pbVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  byte bVar21;\n  int iVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  uint uVar28;\n  uint uVar29;\n  uint uVar30;\n  int *piVar31;\n  \n  puVar4 = PTR_DAT_000b5230;\n  if (param_2 < 1) {\n    return 0;\n  }\n  iVar25 = 0;\n  piVar31 = (int *)(param_1 + 4);\n  piVar16 = piVar31;\n  while( true ) {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;\nLAB_00033888:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n    if (param_2 == iVar25) {\n      return 0;\n    }\n  }\n  pbVar7 = (byte *)safemalloc(param_2,1);\n  pbVar8 = (byte *)safemalloc(param_2,1);\n  puVar5 = PTR_DAT_000b5230;\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    uVar15 = piVar6[2];\n    if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }\n    bVar21 = (byte)uVar15;\n    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;\nLAB_00033978:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n  } while (param_2 != iVar25);\n  bVar21 = 0;\nLAB_000339c8:\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar22 = iVar25;\n    iVar25 = 0x269;\n    iVar11 = -1;\n    do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));\n    bVar12 = *(byte *)((int)piVar6 + 0xb);\n    if (bVar12 < 0x12) {\n                    /* WARNING: Could not emulate address calculation at 0x00033a9c */\n                    /* WARNING: Treating indirect jump as call */\n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }\nswitchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;\n    iVar25 = iVar22 + 1;\n    piVar16 = piVar16 + 3;\n    pbVar7[iVar22] = bVar12;\n  } while (param_2 != iVar25);\n  pbVar24 = pbVar7 + iVar25;\n  pbVar14 = pbVar7;\n  do {\n    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }\n    pbVar14 = pbVar14 + 1;\n  } while (pbVar14 != pbVar24);\n  if (*pbVar7 == 0xd) {\n    *pbVar7 = bVar21;\n  }\n  pbVar14 = pbVar7 + 1;\n  if (iVar25 != 1) {\n    do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);\n  }\n  pbVar14 = pbVar7;\n  do {\n    pbVar10 = pbVar14;\n    if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }\n    pbVar14 = pbVar14 + 1;\n    pbVar10 = pbVar7;\n  } while (pbVar14 != pbVar24);\n  do {\n    if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }\n    pbVar10 = pbVar10 + 1;\n  } while (pbVar10 != pbVar24);\n  bVar3 = 1 < iVar22;\n  if (bVar3) {\n    pbVar14 = pbVar7;\n    do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);\n  }\nLAB_00033c70:\n  iVar11 = 0;\n  pbVar14 = pbVar7;\n  do {\n    if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    uVar15 = (uint)pbVar7[iVar11];\n    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }\nLAB_00033cec:\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\nLAB_00033d38:\n  if (iVar25 == 1) {\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }\n  else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }\n  pbVar14 = pbVar7 + param_2 + -1;\n  if (*pbVar14 == 0x12) {\n    bVar12 = pbVar7[param_2 + -2];\n    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }\n  }\nLAB_00033e60:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }\n    if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }\n    *pbVar14 = 0;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033ea8:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }\n    bVar1 = pbVar7[iVar11];\n    if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }\n    *pbVar14 = bVar12 + 1;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f0c:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f68:\n  if (iVar22 != 0) {\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }\nLAB_00033fe8:\n  iVar11 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar23 = *piVar16;\n    iVar26 = 0x269;\n    iVar13 = -1;\n    do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));\n    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }\nLAB_00034050:\n    bVar3 = iVar11 < iVar22;\n    piVar16 = piVar16 + 3;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\n  iVar11 = 0;\n  do {\n    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }\n    doMirror(piVar31 + iVar11 * 3);\n    uVar15 = (uint)(iVar11 < iVar22);\n    iVar11 = iVar11 + 1;\n  } while (uVar15 != 0);\nLAB_000340a4:\n  uVar28 = (uint)*pbVar8;\n  uVar29 = uVar28;\n  while( true ) {\n    bVar3 = iVar22 <= (int)uVar15;\n    uVar30 = uVar28;\n    if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }\n    uVar15 = uVar15 + 1;\n    if (bVar3) break;\n    uVar28 = (uint)pbVar8[uVar15];\n    uVar29 = uVar30;\n  }\n  for (; uVar30 != 0; uVar30 = uVar30 - 1) {\n    flipThisRun(param_1,pbVar8,uVar30,iVar25);\n  }\n  safefree(pbVar7);\n  safefree(pbVar8);\n  return 3;\n}\n\n" comment comment comment (function_definition "undefined4 do_bidi(int param_1,int param_2)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar12;\n  undefined4 uVar9;\n  byte *pbVar10;\n  int iVar11;\n  int iVar13;\n  byte *pbVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  byte bVar21;\n  int iVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  uint uVar28;\n  uint uVar29;\n  uint uVar30;\n  int *piVar31;\n  \n  puVar4 = PTR_DAT_000b5230;\n  if (param_2 < 1) {\n    return 0;\n  }\n  iVar25 = 0;\n  piVar31 = (int *)(param_1 + 4);\n  piVar16 = piVar31;\n  while( true ) {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;\nLAB_00033888:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n    if (param_2 == iVar25) {\n      return 0;\n    }\n  }\n  pbVar7 = (byte *)safemalloc(param_2,1);\n  pbVar8 = (byte *)safemalloc(param_2,1);\n  puVar5 = PTR_DAT_000b5230;\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    uVar15 = piVar6[2];\n    if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }\n    bVar21 = (byte)uVar15;\n    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;\nLAB_00033978:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n  } while (param_2 != iVar25);\n  bVar21 = 0;\nLAB_000339c8:\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar22 = iVar25;\n    iVar25 = 0x269;\n    iVar11 = -1;\n    do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));\n    bVar12 = *(byte *)((int)piVar6 + 0xb);\n    if (bVar12 < 0x12) {\n                    /* WARNING: Could not emulate address calculation at 0x00033a9c */\n                    /* WARNING: Treating indirect jump as call */\n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }\nswitchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;\n    iVar25 = iVar22 + 1;\n    piVar16 = piVar16 + 3;\n    pbVar7[iVar22] = bVar12;\n  } while (param_2 != iVar25);\n  pbVar24 = pbVar7 + iVar25;\n  pbVar14 = pbVar7;\n  do {\n    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }\n    pbVar14 = pbVar14 + 1;\n  } while (pbVar14 != pbVar24);\n  if (*pbVar7 == 0xd) {\n    *pbVar7 = bVar21;\n  }\n  pbVar14 = pbVar7 + 1;\n  if (iVar25 != 1) {\n    do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);\n  }\n  pbVar14 = pbVar7;\n  do {\n    pbVar10 = pbVar14;\n    if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }\n    pbVar14 = pbVar14 + 1;\n    pbVar10 = pbVar7;\n  } while (pbVar14 != pbVar24);\n  do {\n    if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }\n    pbVar10 = pbVar10 + 1;\n  } while (pbVar10 != pbVar24);\n  bVar3 = 1 < iVar22;\n  if (bVar3) {\n    pbVar14 = pbVar7;\n    do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);\n  }\nLAB_00033c70:\n  iVar11 = 0;\n  pbVar14 = pbVar7;\n  do {\n    if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    uVar15 = (uint)pbVar7[iVar11];\n    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }\nLAB_00033cec:\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\nLAB_00033d38:\n  if (iVar25 == 1) {\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }\n  else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }\n  pbVar14 = pbVar7 + param_2 + -1;\n  if (*pbVar14 == 0x12) {\n    bVar12 = pbVar7[param_2 + -2];\n    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }\n  }\nLAB_00033e60:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }\n    if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }\n    *pbVar14 = 0;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033ea8:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }\n    bVar1 = pbVar7[iVar11];\n    if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }\n    *pbVar14 = bVar12 + 1;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f0c:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f68:\n  if (iVar22 != 0) {\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }\nLAB_00033fe8:\n  iVar11 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar23 = *piVar16;\n    iVar26 = 0x269;\n    iVar13 = -1;\n    do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));\n    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }\nLAB_00034050:\n    bVar3 = iVar11 < iVar22;\n    piVar16 = piVar16 + 3;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\n  iVar11 = 0;\n  do {\n    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }\n    doMirror(piVar31 + iVar11 * 3);\n    uVar15 = (uint)(iVar11 < iVar22);\n    iVar11 = iVar11 + 1;\n  } while (uVar15 != 0);\nLAB_000340a4:\n  uVar28 = (uint)*pbVar8;\n  uVar29 = uVar28;\n  while( true ) {\n    bVar3 = iVar22 <= (int)uVar15;\n    uVar30 = uVar28;\n    if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }\n    uVar15 = uVar15 + 1;\n    if (bVar3) break;\n    uVar28 = (uint)pbVar8[uVar15];\n    uVar29 = uVar30;\n  }\n  for (; uVar30 != 0; uVar30 = uVar30 - 1) {\n    flipThisRun(param_1,pbVar8,uVar30,iVar25);\n  }\n  safefree(pbVar7);\n  safefree(pbVar8);\n  return 3;\n}" type_identifier (function_declarator "do_bidi(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar12;\n  undefined4 uVar9;\n  byte *pbVar10;\n  int iVar11;\n  int iVar13;\n  byte *pbVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  byte bVar21;\n  int iVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  uint uVar28;\n  uint uVar29;\n  uint uVar30;\n  int *piVar31;\n  \n  puVar4 = PTR_DAT_000b5230;\n  if (param_2 < 1) {\n    return 0;\n  }\n  iVar25 = 0;\n  piVar31 = (int *)(param_1 + 4);\n  piVar16 = piVar31;\n  while( true ) {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;\nLAB_00033888:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n    if (param_2 == iVar25) {\n      return 0;\n    }\n  }\n  pbVar7 = (byte *)safemalloc(param_2,1);\n  pbVar8 = (byte *)safemalloc(param_2,1);\n  puVar5 = PTR_DAT_000b5230;\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    uVar15 = piVar6[2];\n    if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }\n    bVar21 = (byte)uVar15;\n    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;\nLAB_00033978:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n  } while (param_2 != iVar25);\n  bVar21 = 0;\nLAB_000339c8:\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar22 = iVar25;\n    iVar25 = 0x269;\n    iVar11 = -1;\n    do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));\n    bVar12 = *(byte *)((int)piVar6 + 0xb);\n    if (bVar12 < 0x12) {\n                    /* WARNING: Could not emulate address calculation at 0x00033a9c */\n                    /* WARNING: Treating indirect jump as call */\n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }\nswitchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;\n    iVar25 = iVar22 + 1;\n    piVar16 = piVar16 + 3;\n    pbVar7[iVar22] = bVar12;\n  } while (param_2 != iVar25);\n  pbVar24 = pbVar7 + iVar25;\n  pbVar14 = pbVar7;\n  do {\n    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }\n    pbVar14 = pbVar14 + 1;\n  } while (pbVar14 != pbVar24);\n  if (*pbVar7 == 0xd) {\n    *pbVar7 = bVar21;\n  }\n  pbVar14 = pbVar7 + 1;\n  if (iVar25 != 1) {\n    do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);\n  }\n  pbVar14 = pbVar7;\n  do {\n    pbVar10 = pbVar14;\n    if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }\n    pbVar14 = pbVar14 + 1;\n    pbVar10 = pbVar7;\n  } while (pbVar14 != pbVar24);\n  do {\n    if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }\n    pbVar10 = pbVar10 + 1;\n  } while (pbVar10 != pbVar24);\n  bVar3 = 1 < iVar22;\n  if (bVar3) {\n    pbVar14 = pbVar7;\n    do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);\n  }\nLAB_00033c70:\n  iVar11 = 0;\n  pbVar14 = pbVar7;\n  do {\n    if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    uVar15 = (uint)pbVar7[iVar11];\n    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }\nLAB_00033cec:\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\nLAB_00033d38:\n  if (iVar25 == 1) {\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }\n  else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }\n  pbVar14 = pbVar7 + param_2 + -1;\n  if (*pbVar14 == 0x12) {\n    bVar12 = pbVar7[param_2 + -2];\n    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }\n  }\nLAB_00033e60:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }\n    if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }\n    *pbVar14 = 0;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033ea8:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }\n    bVar1 = pbVar7[iVar11];\n    if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }\n    *pbVar14 = bVar12 + 1;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f0c:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f68:\n  if (iVar22 != 0) {\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }\nLAB_00033fe8:\n  iVar11 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar23 = *piVar16;\n    iVar26 = 0x269;\n    iVar13 = -1;\n    do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));\n    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }\nLAB_00034050:\n    bVar3 = iVar11 < iVar22;\n    piVar16 = piVar16 + 3;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\n  iVar11 = 0;\n  do {\n    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }\n    doMirror(piVar31 + iVar11 * 3);\n    uVar15 = (uint)(iVar11 < iVar22);\n    iVar11 = iVar11 + 1;\n  } while (uVar15 != 0);\nLAB_000340a4:\n  uVar28 = (uint)*pbVar8;\n  uVar29 = uVar28;\n  while( true ) {\n    bVar3 = iVar22 <= (int)uVar15;\n    uVar30 = uVar28;\n    if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }\n    uVar15 = uVar15 + 1;\n    if (bVar3) break;\n    uVar28 = (uint)pbVar8[uVar15];\n    uVar29 = uVar30;\n  }\n  for (; uVar30 != 0; uVar30 = uVar30 - 1) {\n    flipThisRun(param_1,pbVar8,uVar30,iVar25);\n  }\n  safefree(pbVar7);\n  safefree(pbVar8);\n  return 3;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "int *piVar31;" primitive_type (pointer_declarator "*piVar31" * identifier) ;) (expression_statement "puVar4 = PTR_DAT_000b5230;" (assignment_expression "puVar4 = PTR_DAT_000b5230" identifier = identifier) ;) (if_statement "if (param_2 < 1) {\n    return 0;\n  }" if (parenthesized_expression "(param_2 < 1)" ( (binary_expression "param_2 < 1" identifier < number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "piVar31 = (int *)(param_1 + 4);" (assignment_expression "piVar31 = (int *)(param_1 + 4)" identifier = (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) ;) (expression_statement "piVar16 = piVar31;" (assignment_expression "piVar16 = piVar31" identifier = identifier) ;) (while_statement "while( true ) {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;\nLAB_00033888:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n    if (param_2 == iVar25) {\n      return 0;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;\nLAB_00033888:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n    if (param_2 == iVar25) {\n      return 0;\n    }\n  }" { (expression_statement "iVar11 = 0x269;" (assignment_expression "iVar11 = 0x269" identifier = number_literal) ;) (expression_statement "iVar22 = -1;" (assignment_expression "iVar22 = -1" identifier = number_literal) ;) (do_statement "do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));" do (compound_statement "{\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    }" { (expression_statement "iVar26 = iVar11;" (assignment_expression "iVar26 = iVar11" identifier = identifier) ;) (if_statement "if (iVar26 - iVar22 < 2) goto LAB_00033888;" if (parenthesized_expression "(iVar26 - iVar22 < 2)" ( (binary_expression "iVar26 - iVar22 < 2" (binary_expression "iVar26 - iVar22" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_00033888;" goto statement_identifier ;)) (expression_statement "iVar13 = (iVar26 + iVar22) / 2;" (assignment_expression "iVar13 = (iVar26 + iVar22) / 2" identifier = (binary_expression "(iVar26 + iVar22) / 2" (parenthesized_expression "(iVar26 + iVar22)" ( (binary_expression "iVar26 + iVar22" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c)" ( (binary_expression "PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c" (binary_expression "PTR_DAT_000b5230 + iVar13 * 0xc" identifier + (binary_expression "iVar13 * 0xc" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" identifier = identifier) ;) }) while (parenthesized_expression "((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16))" ( (binary_expression "(*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16)" (parenthesized_expression "(*piVar16 < *piVar6)" ( (binary_expression "*piVar16 < *piVar6" (pointer_expression "*piVar16" * identifier) < (pointer_expression "*piVar6" * identifier)) )) || (parenthesized_expression "(iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16)" ( (comma_expression "iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar11 = iVar26" identifier = identifier) , (comma_expression "iVar22 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar22 = iVar13" identifier = identifier) , (binary_expression "piVar6[1] < *piVar16" (subscript_expression "piVar6[1]" identifier [ number_literal ]) < (pointer_expression "*piVar16" * identifier)))) ))) )) ;) (if_statement "if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;" if (parenthesized_expression "(*(byte *)((int)piVar6 + 0xb) - 3 < 2)" ( (binary_expression "*(byte *)((int)piVar6 + 0xb) - 3 < 2" (binary_expression "*(byte *)((int)piVar6 + 0xb) - 3" (pointer_expression "*(byte *)((int)piVar6 + 0xb)" * (cast_expression "(byte *)((int)piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0xb)" ( (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - number_literal) < number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00033888:\n    iVar25 = iVar25 + 1;" statement_identifier : (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;)) (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" identifier = (binary_expression "piVar16 + 3" identifier + number_literal)) ;) (if_statement "if (param_2 == iVar25) {\n      return 0;\n    }" if (parenthesized_expression "(param_2 == iVar25)" ( (binary_expression "param_2 == iVar25" identifier == identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "pbVar7 = (byte *)safemalloc(param_2,1);" (assignment_expression "pbVar7 = (byte *)safemalloc(param_2,1)" identifier = (cast_expression "(byte *)safemalloc(param_2,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal ))))) ;) (expression_statement "pbVar8 = (byte *)safemalloc(param_2,1);" (assignment_expression "pbVar8 = (byte *)safemalloc(param_2,1)" identifier = (cast_expression "(byte *)safemalloc(param_2,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal ))))) ;) (expression_statement "puVar5 = PTR_DAT_000b5230;" (assignment_expression "puVar5 = PTR_DAT_000b5230" identifier = identifier) ;) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "piVar16 = piVar31;" (assignment_expression "piVar16 = piVar31" identifier = identifier) ;) (do_statement "do {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    uVar15 = piVar6[2];\n    if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }\n    bVar21 = (byte)uVar15;\n    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;\nLAB_00033978:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n  } while (param_2 != iVar25);" do (compound_statement "{\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    uVar15 = piVar6[2];\n    if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }\n    bVar21 = (byte)uVar15;\n    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;\nLAB_00033978:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n  }" { (expression_statement "iVar11 = 0x269;" (assignment_expression "iVar11 = 0x269" identifier = number_literal) ;) (expression_statement "iVar22 = -1;" (assignment_expression "iVar22 = -1" identifier = number_literal) ;) (do_statement "do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));" do (compound_statement "{\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    }" { (expression_statement "iVar26 = iVar11;" (assignment_expression "iVar26 = iVar11" identifier = identifier) ;) (if_statement "if (iVar26 - iVar22 < 2) goto LAB_00033978;" if (parenthesized_expression "(iVar26 - iVar22 < 2)" ( (binary_expression "iVar26 - iVar22 < 2" (binary_expression "iVar26 - iVar22" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_00033978;" goto statement_identifier ;)) (expression_statement "iVar13 = (iVar26 + iVar22) / 2;" (assignment_expression "iVar13 = (iVar26 + iVar22) / 2" identifier = (binary_expression "(iVar26 + iVar22) / 2" (parenthesized_expression "(iVar26 + iVar22)" ( (binary_expression "iVar26 + iVar22" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(puVar4 + iVar13 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar13 * 0xc + 0x5a9c)" ( (binary_expression "puVar4 + iVar13 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar13 * 0xc" identifier + (binary_expression "iVar13 * 0xc" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" identifier = identifier) ;) }) while (parenthesized_expression "((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16))" ( (binary_expression "(*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16)" (parenthesized_expression "(*piVar16 < *piVar6)" ( (binary_expression "*piVar16 < *piVar6" (pointer_expression "*piVar16" * identifier) < (pointer_expression "*piVar6" * identifier)) )) || (parenthesized_expression "(iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16)" ( (comma_expression "iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar11 = iVar26" identifier = identifier) , (comma_expression "iVar22 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar22 = iVar13" identifier = identifier) , (binary_expression "piVar6[1] < *piVar16" (subscript_expression "piVar6[1]" identifier [ number_literal ]) < (pointer_expression "*piVar16" * identifier)))) ))) )) ;) (expression_statement "uVar15 = piVar6[2];" (assignment_expression "uVar15 = piVar6[2]" identifier = (subscript_expression "piVar6[2]" identifier [ number_literal ])) ;) (if_statement "if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }" if (parenthesized_expression "((uVar15 & 0xff) - 3 < 2)" ( (binary_expression "(uVar15 & 0xff) - 3 < 2" (binary_expression "(uVar15 & 0xff) - 3" (parenthesized_expression "(uVar15 & 0xff)" ( (binary_expression "uVar15 & 0xff" identifier & number_literal) )) - number_literal) < number_literal) )) (compound_statement "{\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }" { (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000339c8;" goto statement_identifier ;) })) (expression_statement "bVar21 = (byte)uVar15;" (assignment_expression "bVar21 = (byte)uVar15" identifier = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if ((uVar15 & 0xff) == 0) goto LAB_000339c8;" if (parenthesized_expression "((uVar15 & 0xff) == 0)" ( (binary_expression "(uVar15 & 0xff) == 0" (parenthesized_expression "(uVar15 & 0xff)" ( (binary_expression "uVar15 & 0xff" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000339c8;" goto statement_identifier ;)) (labeled_statement "LAB_00033978:\n    iVar25 = iVar25 + 1;" statement_identifier : (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;)) (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" identifier = (binary_expression "piVar16 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_2 != iVar25)" ( (binary_expression "param_2 != iVar25" identifier != identifier) )) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000339c8:\n  iVar25 = 0;" statement_identifier : (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;)) (expression_statement "piVar16 = piVar31;" (assignment_expression "piVar16 = piVar31" identifier = identifier) ;) (do_statement "do {\n    iVar22 = iVar25;\n    iVar25 = 0x269;\n    iVar11 = -1;\n    do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));\n    bVar12 = *(byte *)((int)piVar6 + 0xb);\n    if (bVar12 < 0x12) {\n                    /* WARNING: Could not emulate address calculation at 0x00033a9c */\n                    /* WARNING: Treating indirect jump as call */\n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }\nswitchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;\n    iVar25 = iVar22 + 1;\n    piVar16 = piVar16 + 3;\n    pbVar7[iVar22] = bVar12;\n  } while (param_2 != iVar25);" do (compound_statement "{\n    iVar22 = iVar25;\n    iVar25 = 0x269;\n    iVar11 = -1;\n    do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));\n    bVar12 = *(byte *)((int)piVar6 + 0xb);\n    if (bVar12 < 0x12) {\n                    /* WARNING: Could not emulate address calculation at 0x00033a9c */\n                    /* WARNING: Treating indirect jump as call */\n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }\nswitchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;\n    iVar25 = iVar22 + 1;\n    piVar16 = piVar16 + 3;\n    pbVar7[iVar22] = bVar12;\n  }" { (expression_statement "iVar22 = iVar25;" (assignment_expression "iVar22 = iVar25" identifier = identifier) ;) (expression_statement "iVar25 = 0x269;" (assignment_expression "iVar25 = 0x269" identifier = number_literal) ;) (expression_statement "iVar11 = -1;" (assignment_expression "iVar11 = -1" identifier = number_literal) ;) (do_statement "do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));" do (compound_statement "{\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    }" { (expression_statement "iVar26 = iVar25;" (assignment_expression "iVar26 = iVar25" identifier = identifier) ;) (if_statement "if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }" if (parenthesized_expression "(iVar26 - iVar11 < 2)" ( (binary_expression "iVar26 - iVar11 < 2" (binary_expression "iVar26 - iVar11" identifier - identifier) < number_literal) )) (compound_statement "{\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }" { (expression_statement "bVar12 = 0x12;" (assignment_expression "bVar12 = 0x12" identifier = number_literal) ;) (goto_statement "goto switchD_00033aa8_caseD_0;" goto statement_identifier ;) })) (expression_statement "iVar13 = (iVar26 + iVar11) / 2;" (assignment_expression "iVar13 = (iVar26 + iVar11) / 2" identifier = (binary_expression "(iVar26 + iVar11) / 2" (parenthesized_expression "(iVar26 + iVar11)" ( (binary_expression "iVar26 + iVar11" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(puVar4 + iVar13 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar13 * 0xc + 0x5a9c)" ( (binary_expression "puVar4 + iVar13 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar13 * 0xc" identifier + (binary_expression "iVar13 * 0xc" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar25 = iVar13;" (assignment_expression "iVar25 = iVar13" identifier = identifier) ;) }) while (parenthesized_expression "((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16))" ( (binary_expression "(*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16)" (parenthesized_expression "(*piVar16 < *piVar6)" ( (binary_expression "*piVar16 < *piVar6" (pointer_expression "*piVar16" * identifier) < (pointer_expression "*piVar6" * identifier)) )) || (parenthesized_expression "(iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16)" ( (comma_expression "iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar25 = iVar26" identifier = identifier) , (comma_expression "iVar11 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar11 = iVar13" identifier = identifier) , (binary_expression "piVar6[1] < *piVar16" (subscript_expression "piVar6[1]" identifier [ number_literal ]) < (pointer_expression "*piVar16" * identifier)))) ))) )) ;) (expression_statement "bVar12 = *(byte *)((int)piVar6 + 0xb);" (assignment_expression "bVar12 = *(byte *)((int)piVar6 + 0xb)" identifier = (pointer_expression "*(byte *)((int)piVar6 + 0xb)" * (cast_expression "(byte *)((int)piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0xb)" ( (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (bVar12 < 0x12) {\n                    /* WARNING: Could not emulate address calculation at 0x00033a9c */\n                    /* WARNING: Treating indirect jump as call */\n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }" if (parenthesized_expression "(bVar12 < 0x12)" ( (binary_expression "bVar12 < 0x12" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00033a9c */\n                    /* WARNING: Treating indirect jump as call */\n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }" { comment comment (expression_statement "uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();" (assignment_expression "uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54))" ( (binary_expression "&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)" * (cast_expression "(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + (uint)bVar12 * 4 + 0x5a54)" ( (binary_expression "puVar5 + (uint)bVar12 * 4 + 0x5a54" (binary_expression "puVar5 + (uint)bVar12 * 4" identifier + (binary_expression "(uint)bVar12 * 4" (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar9;" return identifier ;) })) (labeled_statement "switchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;" statement_identifier : (expression_statement "pbVar8[iVar22] = bVar21;" (assignment_expression "pbVar8[iVar22] = bVar21" (subscript_expression "pbVar8[iVar22]" identifier [ identifier ]) = identifier) ;)) (expression_statement "iVar25 = iVar22 + 1;" (assignment_expression "iVar25 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" identifier = (binary_expression "piVar16 + 3" identifier + number_literal)) ;) (expression_statement "pbVar7[iVar22] = bVar12;" (assignment_expression "pbVar7[iVar22] = bVar12" (subscript_expression "pbVar7[iVar22]" identifier [ identifier ]) = identifier) ;) }) while (parenthesized_expression "(param_2 != iVar25)" ( (binary_expression "param_2 != iVar25" identifier != identifier) )) ;) (expression_statement "pbVar24 = pbVar7 + iVar25;" (assignment_expression "pbVar24 = pbVar7 + iVar25" identifier = (binary_expression "pbVar7 + iVar25" identifier + identifier)) ;) (expression_statement "pbVar14 = pbVar7;" (assignment_expression "pbVar14 = pbVar7" identifier = identifier) ;) (do_statement "do {\n    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }\n    pbVar14 = pbVar14 + 1;\n  } while (pbVar14 != pbVar24);" do (compound_statement "{\n    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }\n    pbVar14 = pbVar14 + 1;\n  }" { (if_statement "if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }" if (parenthesized_expression "((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0))" ( (binary_expression "(*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)" (parenthesized_expression "(*pbVar14 < 8)" ( (binary_expression "*pbVar14 < 8" (pointer_expression "*pbVar14" * identifier) < number_literal) )) && (parenthesized_expression "((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)" ( (binary_expression "(1 << (*pbVar14 & 0x1f) & 0xe6U) != 0" (parenthesized_expression "(1 << (*pbVar14 & 0x1f) & 0xe6U)" ( (binary_expression "1 << (*pbVar14 & 0x1f) & 0xe6U" (binary_expression "1 << (*pbVar14 & 0x1f)" number_literal << (parenthesized_expression "(*pbVar14 & 0x1f)" ( (binary_expression "*pbVar14 & 0x1f" (pointer_expression "*pbVar14" * identifier) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      *pbVar14 = 0xe;\n    }" { (expression_statement "*pbVar14 = 0xe;" (assignment_expression "*pbVar14 = 0xe" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) })) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar14 != pbVar24)" ( (binary_expression "pbVar14 != pbVar24" identifier != identifier) )) ;) (if_statement "if (*pbVar7 == 0xd) {\n    *pbVar7 = bVar21;\n  }" if (parenthesized_expression "(*pbVar7 == 0xd)" ( (binary_expression "*pbVar7 == 0xd" (pointer_expression "*pbVar7" * identifier) == number_literal) )) (compound_statement "{\n    *pbVar7 = bVar21;\n  }" { (expression_statement "*pbVar7 = bVar21;" (assignment_expression "*pbVar7 = bVar21" (pointer_expression "*pbVar7" * identifier) = identifier) ;) })) (expression_statement "pbVar14 = pbVar7 + 1;" (assignment_expression "pbVar14 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (if_statement "if (iVar25 != 1) {\n    do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);\n  }" if (parenthesized_expression "(iVar25 != 1)" ( (binary_expression "iVar25 != 1" identifier != number_literal) )) (compound_statement "{\n    do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);\n  }" { (do_statement "do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);" do (compound_statement "{\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    }" { (if_statement "if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }" if (parenthesized_expression "(*pbVar14 == 0xd)" ( (binary_expression "*pbVar14 == 0xd" (pointer_expression "*pbVar14" * identifier) == number_literal) )) (compound_statement "{\n        *pbVar14 = pbVar14[-1];\n      }" { (expression_statement "*pbVar14 = pbVar14[-1];" (assignment_expression "*pbVar14 = pbVar14[-1]" (pointer_expression "*pbVar14" * identifier) = (subscript_expression "pbVar14[-1]" identifier [ number_literal ])) ;) })) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar14 != pbVar24)" ( (binary_expression "pbVar14 != pbVar24" identifier != identifier) )) ;) })) (expression_statement "pbVar14 = pbVar7;" (assignment_expression "pbVar14 = pbVar7" identifier = identifier) ;) (do_statement "do {\n    pbVar10 = pbVar14;\n    if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }\n    pbVar14 = pbVar14 + 1;\n    pbVar10 = pbVar7;\n  } while (pbVar14 != pbVar24);" do (compound_statement "{\n    pbVar10 = pbVar14;\n    if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }\n    pbVar14 = pbVar14 + 1;\n    pbVar10 = pbVar7;\n  }" { (expression_statement "pbVar10 = pbVar14;" (assignment_expression "pbVar10 = pbVar14" identifier = identifier) ;) (if_statement "if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }" if (parenthesized_expression "(*pbVar14 == 8)" ( (binary_expression "*pbVar14 == 8" (pointer_expression "*pbVar14" * identifier) == number_literal) )) (compound_statement "{\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }" { (while_statement "while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }" while (parenthesized_expression "(pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1)" ( (comma_expression "pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1" (assignment_expression "pbVar10 = pbVar10 + -1" identifier = (binary_expression "pbVar10 + -1" identifier + number_literal)) , (binary_expression "pbVar10 != pbVar7 + -1" identifier != (binary_expression "pbVar7 + -1" identifier + number_literal))) )) (compound_statement "{\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }" { (expression_statement "bVar12 = *pbVar10;" (assignment_expression "bVar12 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (if_statement "if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }" if (parenthesized_expression "(bVar12 == 4)" ( (binary_expression "bVar12 == 4" identifier == number_literal) )) (compound_statement "{\n          *pbVar14 = 0xb;\n          break;\n        }" { (expression_statement "*pbVar14 = 0xb;" (assignment_expression "*pbVar14 = 0xb" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) (break_statement "break;" break ;) })) (if_statement "if ((bVar12 == 3) || (bVar12 == 0)) break;" if (parenthesized_expression "((bVar12 == 3) || (bVar12 == 0))" ( (binary_expression "(bVar12 == 3) || (bVar12 == 0)" (parenthesized_expression "(bVar12 == 3)" ( (binary_expression "bVar12 == 3" identifier == number_literal) )) || (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) ))) )) (break_statement "break;" break ;)) })) })) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar7;" (assignment_expression "pbVar10 = pbVar7" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar14 != pbVar24)" ( (binary_expression "pbVar14 != pbVar24" identifier != identifier) )) ;) (do_statement "do {\n    if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }\n    pbVar10 = pbVar10 + 1;\n  } while (pbVar10 != pbVar24);" do (compound_statement "{\n    if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }\n    pbVar10 = pbVar10 + 1;\n  }" { (if_statement "if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }" if (parenthesized_expression "(*pbVar10 == 4)" ( (binary_expression "*pbVar10 == 4" (pointer_expression "*pbVar10" * identifier) == number_literal) )) (compound_statement "{\n      *pbVar10 = 3;\n    }" { (expression_statement "*pbVar10 = 3;" (assignment_expression "*pbVar10 = 3" (pointer_expression "*pbVar10" * identifier) = number_literal) ;) })) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar10 != pbVar24)" ( (binary_expression "pbVar10 != pbVar24" identifier != identifier) )) ;) (expression_statement "bVar3 = 1 < iVar22;" (assignment_expression "bVar3 = 1 < iVar22" identifier = (binary_expression "1 < iVar22" number_literal < identifier)) ;) (if_statement "if (bVar3) {\n    pbVar14 = pbVar7;\n    do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);\n  }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n    pbVar14 = pbVar7;\n    do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);\n  }" { (expression_statement "pbVar14 = pbVar7;" (assignment_expression "pbVar14 = pbVar7" identifier = identifier) ;) (do_statement "do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);" do (compound_statement "{\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    }" { (while_statement "while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }" while (parenthesized_expression "(pbVar14[1] != 9)" ( (binary_expression "pbVar14[1] != 9" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }" { (if_statement "if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }" if (parenthesized_expression "(pbVar14[1] == 0xc)" ( (binary_expression "pbVar14[1] == 0xc" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }" { (if_statement "if (*pbVar14 == 8) goto LAB_00033c54;" if (parenthesized_expression "(*pbVar14 == 8)" ( (binary_expression "*pbVar14 == 8" (pointer_expression "*pbVar14" * identifier) == number_literal) )) (goto_statement "goto LAB_00033c54;" goto statement_identifier ;)) (if_statement "if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }" if (parenthesized_expression "((*pbVar14 == 0xb) && (pbVar14[2] == 0xb))" ( (binary_expression "(*pbVar14 == 0xb) && (pbVar14[2] == 0xb)" (parenthesized_expression "(*pbVar14 == 0xb)" ( (binary_expression "*pbVar14 == 0xb" (pointer_expression "*pbVar14" * identifier) == number_literal) )) && (parenthesized_expression "(pbVar14[2] == 0xb)" ( (binary_expression "pbVar14[2] == 0xb" (subscript_expression "pbVar14[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n            pbVar14[1] = 0xb;\n          }" { (expression_statement "pbVar14[1] = 0xb;" (assignment_expression "pbVar14[1] = 0xb" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) = number_literal) ;) })) })) (labeled_statement "LAB_00033c30:\n        pbVar14 = pbVar14 + 1;" statement_identifier : (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;)) (if_statement "if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;" if (parenthesized_expression "(pbVar7 + iVar22 + -1 == pbVar14)" ( (binary_expression "pbVar7 + iVar22 + -1 == pbVar14" (binary_expression "pbVar7 + iVar22 + -1" (binary_expression "pbVar7 + iVar22" identifier + identifier) + number_literal) == identifier) )) (goto_statement "goto LAB_00033c70;" goto statement_identifier ;)) })) (if_statement "if (*pbVar14 != 8) goto LAB_00033c30;" if (parenthesized_expression "(*pbVar14 != 8)" ( (binary_expression "*pbVar14 != 8" (pointer_expression "*pbVar14" * identifier) != number_literal) )) (goto_statement "goto LAB_00033c30;" goto statement_identifier ;)) (labeled_statement "LAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;" statement_identifier : (if_statement "if (pbVar14[2] != 8) goto LAB_00033c30;" if (parenthesized_expression "(pbVar14[2] != 8)" ( (binary_expression "pbVar14[2] != 8" (subscript_expression "pbVar14[2]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00033c30;" goto statement_identifier ;))) (expression_statement "pbVar14[1] = 8;" (assignment_expression "pbVar14[1] = 8" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar7 + iVar22 + -1 != pbVar14)" ( (binary_expression "pbVar7 + iVar22 + -1 != pbVar14" (binary_expression "pbVar7 + iVar22 + -1" (binary_expression "pbVar7 + iVar22" identifier + identifier) + number_literal) != identifier) )) ;) })) (labeled_statement "LAB_00033c70:\n  iVar11 = 0;" statement_identifier : (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;)) (expression_statement "pbVar14 = pbVar7;" (assignment_expression "pbVar14 = pbVar7" identifier = identifier) ;) (do_statement "do {\n    if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar2);" do (compound_statement "{\n    if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n    pbVar14 = pbVar14 + 1;\n  }" { (if_statement "if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }" if (parenthesized_expression "(*pbVar14 == 10)" ( (binary_expression "*pbVar14 == 10" (pointer_expression "*pbVar14" * identifier) == number_literal) )) (compound_statement "{\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }" { (if_statement "if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }" if (parenthesized_expression "((iVar11 == 0) || (pbVar14[-1] != 8))" ( (binary_expression "(iVar11 == 0) || (pbVar14[-1] != 8)" (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) || (parenthesized_expression "(pbVar14[-1] != 8)" ( (binary_expression "pbVar14[-1] != 8" (subscript_expression "pbVar14[-1]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }" { (if_statement "if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }" if (parenthesized_expression "(iVar11 < iVar22)" ( (binary_expression "iVar11 < iVar22" identifier < identifier) )) (compound_statement "{\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }" { (if_statement "if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }" if (parenthesized_expression "(pbVar14[1] == 8)" ( (binary_expression "pbVar14[1] == 8" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_000342a8:\n            *pbVar14 = 8;\n          }" { (labeled_statement "LAB_000342a8:\n            *pbVar14 = 8;" statement_identifier : (expression_statement "*pbVar14 = 8;" (assignment_expression "*pbVar14 = 8" (pointer_expression "*pbVar14" * identifier) = number_literal) ;)) }) (else_clause "else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }" else (if_statement "if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }" if (parenthesized_expression "(pbVar14[1] == 10)" ( (binary_expression "pbVar14[1] == 10" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }" { (expression_statement "pbVar24 = pbVar7 + iVar11 + 1;" (assignment_expression "pbVar24 = pbVar7 + iVar11 + 1" identifier = (binary_expression "pbVar7 + iVar11 + 1" (binary_expression "pbVar7 + iVar11" identifier + identifier) + number_literal)) ;) (do_statement "do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);" do (compound_statement "{\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            }" { (expression_statement "bVar12 = *pbVar24;" (assignment_expression "bVar12 = *pbVar24" identifier = (pointer_expression "*pbVar24" * identifier)) ;) (if_statement "if (pbVar7 + iVar22 == pbVar24) break;" if (parenthesized_expression "(pbVar7 + iVar22 == pbVar24)" ( (binary_expression "pbVar7 + iVar22 == pbVar24" (binary_expression "pbVar7 + iVar22" identifier + identifier) == identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar12 == 10)" ( (binary_expression "bVar12 == 10" identifier == number_literal) )) ;) (if_statement "if (bVar12 == 8) goto LAB_000342a8;" if (parenthesized_expression "(bVar12 == 8)" ( (binary_expression "bVar12 == 8" identifier == number_literal) )) (goto_statement "goto LAB_000342a8;" goto statement_identifier ;)) })))) })) }) (else_clause "else {\n        *pbVar14 = 8;\n      }" else (compound_statement "{\n        *pbVar14 = 8;\n      }" { (expression_statement "*pbVar14 = 8;" (assignment_expression "*pbVar14 = 8" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) }))) })) (expression_statement "bVar2 = iVar11 < iVar22;" (assignment_expression "bVar2 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n    uVar15 = (uint)pbVar7[iVar11];\n    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);" do (compound_statement "{\n    uVar15 = (uint)pbVar7[iVar11];\n    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  }" { (expression_statement "uVar15 = (uint)pbVar7[iVar11];" (assignment_expression "uVar15 = (uint)pbVar7[iVar11]" identifier = (cast_expression "(uint)pbVar7[iVar11]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar7[iVar11]" identifier [ identifier ]))) ;) (if_statement "if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }" if (parenthesized_expression "((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0))" ( (binary_expression "(uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)" (parenthesized_expression "(uVar15 < 0xd)" ( (binary_expression "uVar15 < 0xd" identifier < number_literal) )) && (parenthesized_expression "((1 << (uVar15 & 0x1f) & 0x1600U) != 0)" ( (binary_expression "(1 << (uVar15 & 0x1f) & 0x1600U) != 0" (parenthesized_expression "(1 << (uVar15 & 0x1f) & 0x1600U)" ( (binary_expression "1 << (uVar15 & 0x1f) & 0x1600U" (binary_expression "1 << (uVar15 & 0x1f)" number_literal << (parenthesized_expression "(uVar15 & 0x1f)" ( (binary_expression "uVar15 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      pbVar7[iVar11] = 0x12;\n    }" { (expression_statement "pbVar7[iVar11] = 0x12;" (assignment_expression "pbVar7[iVar11] = 0x12" (subscript_expression "pbVar7[iVar11]" identifier [ identifier ]) = number_literal) ;) })) (expression_statement "bVar2 = iVar11 < iVar22;" (assignment_expression "bVar2 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n    while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }\nLAB_00033cec:\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);" do (compound_statement "{\n    while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }\nLAB_00033cec:\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  }" { (while_statement "while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }" { (if_statement "if (pbVar7[iVar11] != 8) break;" if (parenthesized_expression "(pbVar7[iVar11] != 8)" ( (binary_expression "pbVar7[iVar11] != 8" (subscript_expression "pbVar7[iVar11]" identifier [ identifier ]) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar15 = 8;" (assignment_expression "uVar15 = 8" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar7 + -1 + iVar11;" (assignment_expression "pbVar14 = pbVar7 + -1 + iVar11" identifier = (binary_expression "pbVar7 + -1 + iVar11" (binary_expression "pbVar7 + -1" identifier + number_literal) + identifier)) ;) (do_statement "do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);" do (compound_statement "{\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      }" { (if_statement "if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;" if (parenthesized_expression "((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14))" ( (binary_expression "(uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)" (parenthesized_expression "(uVar15 - 3 < 2)" ( (binary_expression "uVar15 - 3 < 2" (binary_expression "uVar15 - 3" identifier - number_literal) < number_literal) )) || (parenthesized_expression "(pbVar7 + -1 == pbVar14)" ( (binary_expression "pbVar7 + -1 == pbVar14" (binary_expression "pbVar7 + -1" identifier + number_literal) == identifier) ))) )) (goto_statement "goto LAB_00033cec;" goto statement_identifier ;)) (expression_statement "uVar15 = (uint)*pbVar14;" (assignment_expression "uVar15 = (uint)*pbVar14" identifier = (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar14 = pbVar14 + -1;" (assignment_expression "pbVar14 = pbVar14 + -1" identifier = (binary_expression "pbVar14 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) ;) (expression_statement "bVar2 = iVar22 <= iVar11;" (assignment_expression "bVar2 = iVar22 <= iVar11" identifier = (binary_expression "iVar22 <= iVar11" identifier <= identifier)) ;) (expression_statement "pbVar7[iVar11] = 0;" (assignment_expression "pbVar7[iVar11] = 0" (subscript_expression "pbVar7[iVar11]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (if_statement "if (bVar2) goto LAB_00033d38;" if (parenthesized_expression "(bVar2)" ( identifier )) (goto_statement "goto LAB_00033d38;" goto statement_identifier ;)) })) (labeled_statement "LAB_00033cec:\n    bVar2 = iVar11 < iVar22;" statement_identifier : (expression_statement "bVar2 = iVar11 < iVar22;" (assignment_expression "bVar2 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;)) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;) (labeled_statement "LAB_00033d38:\n  if (iVar25 == 1) {\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }\n  else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }" statement_identifier : (if_statement "if (iVar25 == 1) {\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }\n  else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }" if (parenthesized_expression "(iVar25 == 1)" ( (binary_expression "iVar25 == 1" identifier == number_literal) )) (compound_statement "{\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }" { (if_statement "if (!bVar3) goto LAB_00033e60;" if (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) (goto_statement "goto LAB_00033e60;" goto statement_identifier ;)) (labeled_statement "LAB_00033d58:\n    iVar11 = 1;" statement_identifier : (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;)) (do_statement "do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);" do (compound_statement "{\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    }" { (while_statement "while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }" while (parenthesized_expression "(pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12)" ( (comma_expression "pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12" (assignment_expression "pbVar14 = pbVar7 + iVar11" identifier = (binary_expression "pbVar7 + iVar11" identifier + identifier)) , (binary_expression "*pbVar14 != 0x12" (pointer_expression "*pbVar14" * identifier) != number_literal)) )) (compound_statement "{\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }" { (labeled_statement "LAB_00033d74:\n        iVar11 = iVar11 + 1;" statement_identifier : (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;" statement_identifier : (if_statement "if (iVar22 <= iVar11) goto LAB_00033e38;" if (parenthesized_expression "(iVar22 <= iVar11)" ( (binary_expression "iVar22 <= iVar11" identifier <= identifier) )) (goto_statement "goto LAB_00033e38;" goto statement_identifier ;))) })) (expression_statement "bVar12 = pbVar14[-1];" (assignment_expression "bVar12 = pbVar14[-1]" identifier = (subscript_expression "pbVar14[-1]" identifier [ number_literal ])) ;) (expression_statement "iVar26 = iVar11;" (assignment_expression "iVar26 = iVar11" identifier = identifier) ;) (if_statement "if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }" { (do_statement "do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);" do (compound_statement "{\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        }" { (expression_statement "iVar13 = iVar26;" (assignment_expression "iVar13 = iVar26" identifier = identifier) ;) (expression_statement "iVar26 = iVar13 + 1;" (assignment_expression "iVar26 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (if_statement "if (iVar22 <= iVar26) break;" if (parenthesized_expression "(iVar22 <= iVar26)" ( (binary_expression "iVar22 <= iVar26" identifier <= identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(pbVar7[iVar26] == 0x12)" ( (binary_expression "pbVar7[iVar26] == 0x12" (subscript_expression "pbVar7[iVar26]" identifier [ identifier ]) == number_literal) )) ;) (if_statement "if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }" if (parenthesized_expression "(pbVar7[iVar26] == 0)" ( (binary_expression "pbVar7[iVar26] == 0" (subscript_expression "pbVar7[iVar26]" identifier [ identifier ]) == number_literal) )) (compound_statement "{\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }" { (if_statement "if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }" if (parenthesized_expression "(iVar11 < iVar26)" ( (binary_expression "iVar11 < iVar26" identifier < identifier) )) (compound_statement "{\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }" { (while_statement "while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }" { (expression_statement "*pbVar14 = 0;" (assignment_expression "*pbVar14 = 0" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) (if_statement "if (iVar13 <= iVar11) break;" if (parenthesized_expression "(iVar13 <= iVar11)" ( (binary_expression "iVar13 <= iVar11" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar14 = pbVar7 + iVar11 + 1;" (assignment_expression "pbVar14 = pbVar7 + iVar11 + 1" identifier = (binary_expression "pbVar7 + iVar11 + 1" (binary_expression "pbVar7 + iVar11" identifier + identifier) + number_literal)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar11 = iVar11 + 2;" (assignment_expression "iVar11 = iVar11 + 2" identifier = (binary_expression "iVar11 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n            iVar11 = iVar11 + 1;\n          }" else (compound_statement "{\n            iVar11 = iVar11 + 1;\n          }" { (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }))) (goto_statement "goto LAB_00033d78;" goto statement_identifier ;) })) (goto_statement "goto LAB_00033d74;" goto statement_identifier ;) })) (if_statement "if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;" if (parenthesized_expression "(((bVar12 & 0xf7) != 3) && (bVar12 != 8))" ( (binary_expression "((bVar12 & 0xf7) != 3) && (bVar12 != 8)" (parenthesized_expression "((bVar12 & 0xf7) != 3)" ( (binary_expression "(bVar12 & 0xf7) != 3" (parenthesized_expression "(bVar12 & 0xf7)" ( (binary_expression "bVar12 & 0xf7" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(bVar12 != 8)" ( (binary_expression "bVar12 != 8" identifier != number_literal) ))) )) (goto_statement "goto LAB_00033d74;" goto statement_identifier ;)) (if_statement "if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }" if (parenthesized_expression "(iVar22 <= iVar11)" ( (binary_expression "iVar22 <= iVar11" identifier <= identifier) )) (compound_statement "{\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }" { (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00033d78;" goto statement_identifier ;) })) (do_statement "do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);" do (compound_statement "{\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      }" { (expression_statement "iVar23 = iVar26;" (assignment_expression "iVar23 = iVar26" identifier = identifier) ;) (expression_statement "iVar26 = iVar23 + 1;" (assignment_expression "iVar26 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "bVar12 = pbVar7[iVar26];" (assignment_expression "bVar12 = pbVar7[iVar26]" identifier = (subscript_expression "pbVar7[iVar26]" identifier [ identifier ])) ;) (expression_statement "iVar13 = iVar22;" (assignment_expression "iVar13 = iVar22" identifier = identifier) ;) (if_statement "if (iVar26 == iVar22) break;" if (parenthesized_expression "(iVar26 == iVar22)" ( (binary_expression "iVar26 == iVar22" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar26;" (assignment_expression "iVar13 = iVar26" identifier = identifier) ;) }) while (parenthesized_expression "(bVar12 == 0x12)" ( (binary_expression "bVar12 == 0x12" identifier == number_literal) )) ;) (if_statement "if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;" if (parenthesized_expression "(((bVar12 & 0xf7) != 3) && (bVar12 != 8))" ( (binary_expression "((bVar12 & 0xf7) != 3) && (bVar12 != 8)" (parenthesized_expression "((bVar12 & 0xf7) != 3)" ( (binary_expression "(bVar12 & 0xf7) != 3" (parenthesized_expression "(bVar12 & 0xf7)" ( (binary_expression "bVar12 & 0xf7" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(bVar12 != 8)" ( (binary_expression "bVar12 != 8" identifier != number_literal) ))) )) (goto_statement "goto LAB_00033d74;" goto statement_identifier ;)) (if_statement "if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }" if (parenthesized_expression "(iVar13 <= iVar11)" ( (binary_expression "iVar13 <= iVar11" identifier <= identifier) )) (compound_statement "{\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }" { (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00033d78;" goto statement_identifier ;) })) (while_statement "while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }" { (expression_statement "*pbVar14 = 3;" (assignment_expression "*pbVar14 = 3" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) (if_statement "if (iVar23 <= iVar11) break;" if (parenthesized_expression "(iVar23 <= iVar11)" ( (binary_expression "iVar23 <= iVar11" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar14 = pbVar7 + iVar11 + 1;" (assignment_expression "pbVar14 = pbVar7 + iVar11 + 1" identifier = (binary_expression "pbVar7 + iVar11 + 1" (binary_expression "pbVar7 + iVar11" identifier + identifier) + number_literal)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar11 = iVar11 + 2;" (assignment_expression "iVar11 = iVar11 + 2" identifier = (binary_expression "iVar11 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 < iVar22)" ( (binary_expression "iVar11 < iVar22" identifier < identifier) )) ;) (labeled_statement "LAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;" statement_identifier : (if_statement "if (iVar25 == 1) goto LAB_00033e60;" if (parenthesized_expression "(iVar25 == 1)" ( (binary_expression "iVar25 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00033e60;" goto statement_identifier ;))) }) (else_clause "else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }" else (compound_statement "{\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }" { (if_statement "if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }" if (parenthesized_expression "(*pbVar7 == 0x12)" ( (binary_expression "*pbVar7 == 0x12" (pointer_expression "*pbVar7" * identifier) == number_literal) )) (compound_statement "{\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }" { (expression_statement "bVar12 = pbVar7[1];" (assignment_expression "bVar12 = pbVar7[1]" identifier = (subscript_expression "pbVar7[1]" identifier [ number_literal ])) ;) (if_statement "if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }" if (parenthesized_expression "(((bVar12 & 0xf7) == 3) || (bVar12 == 8))" ( (binary_expression "((bVar12 & 0xf7) == 3) || (bVar12 == 8)" (parenthesized_expression "((bVar12 & 0xf7) == 3)" ( (binary_expression "(bVar12 & 0xf7) == 3" (parenthesized_expression "(bVar12 & 0xf7)" ( (binary_expression "bVar12 & 0xf7" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar12 == 8)" ( (binary_expression "bVar12 == 8" identifier == number_literal) ))) )) (compound_statement "{\n        *pbVar7 = 3;\n      }" { (expression_statement "*pbVar7 = 3;" (assignment_expression "*pbVar7 = 3" (pointer_expression "*pbVar7" * identifier) = number_literal) ;) }) (else_clause "else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }" else (if_statement "if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        *pbVar7 = 0;\n      }" { (expression_statement "*pbVar7 = 0;" (assignment_expression "*pbVar7 = 0" (pointer_expression "*pbVar7" * identifier) = number_literal) ;) })))) })) (if_statement "if (bVar3) goto LAB_00033d58;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_00033d58;" goto statement_identifier ;)) })))) (expression_statement "pbVar14 = pbVar7 + param_2 + -1;" (assignment_expression "pbVar14 = pbVar7 + param_2 + -1" identifier = (binary_expression "pbVar7 + param_2 + -1" (binary_expression "pbVar7 + param_2" identifier + identifier) + number_literal)) ;) (if_statement "if (*pbVar14 == 0x12) {\n    bVar12 = pbVar7[param_2 + -2];\n    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }\n  }" if (parenthesized_expression "(*pbVar14 == 0x12)" ( (binary_expression "*pbVar14 == 0x12" (pointer_expression "*pbVar14" * identifier) == number_literal) )) (compound_statement "{\n    bVar12 = pbVar7[param_2 + -2];\n    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }\n  }" { (expression_statement "bVar12 = pbVar7[param_2 + -2];" (assignment_expression "bVar12 = pbVar7[param_2 + -2]" identifier = (subscript_expression "pbVar7[param_2 + -2]" identifier [ (binary_expression "param_2 + -2" identifier + number_literal) ])) ;) (if_statement "if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }" if (parenthesized_expression "(((bVar12 & 0xf7) == 3) || (bVar12 == 8))" ( (binary_expression "((bVar12 & 0xf7) == 3) || (bVar12 == 8)" (parenthesized_expression "((bVar12 & 0xf7) == 3)" ( (binary_expression "(bVar12 & 0xf7) == 3" (parenthesized_expression "(bVar12 & 0xf7)" ( (binary_expression "bVar12 & 0xf7" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar12 == 8)" ( (binary_expression "bVar12 == 8" identifier == number_literal) ))) )) (compound_statement "{\n      *pbVar14 = 3;\n    }" { (expression_statement "*pbVar14 = 3;" (assignment_expression "*pbVar14 = 3" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) }) (else_clause "else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }" else (if_statement "if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      *pbVar14 = 0;\n    }" { (expression_statement "*pbVar14 = 0;" (assignment_expression "*pbVar14 = 0" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) })))) })) (labeled_statement "LAB_00033e60:\n  iVar11 = 0;" statement_identifier : (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;)) (do_statement "do {\n    while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }\n    if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }\n    *pbVar14 = 0;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);" do (compound_statement "{\n    while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }\n    if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }\n    *pbVar14 = 0;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  }" { (while_statement "while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }" { (expression_statement "pbVar14 = pbVar7 + iVar11;" (assignment_expression "pbVar14 = pbVar7 + iVar11" identifier = (binary_expression "pbVar7 + iVar11" identifier + identifier)) ;) (if_statement "if (*pbVar14 == 0x12) break;" if (parenthesized_expression "(*pbVar14 == 0x12)" ( (binary_expression "*pbVar14 == 0x12" (pointer_expression "*pbVar14" * identifier) == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;" statement_identifier : (expression_statement "bVar3 = iVar22 <= iVar11;" (assignment_expression "bVar3 = iVar22 <= iVar11" identifier = (binary_expression "iVar22 <= iVar11" identifier <= identifier)) ;)) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (if_statement "if (bVar3) goto LAB_00033ea8;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_00033ea8;" goto statement_identifier ;)) })) (if_statement "if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }" if (parenthesized_expression "((pbVar8[iVar11] & 1) != 0)" ( (binary_expression "(pbVar8[iVar11] & 1) != 0" (parenthesized_expression "(pbVar8[iVar11] & 1)" ( (binary_expression "pbVar8[iVar11] & 1" (subscript_expression "pbVar8[iVar11]" identifier [ identifier ]) & number_literal) )) != number_literal) )) (compound_statement "{\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }" { (expression_statement "*pbVar14 = 3;" (assignment_expression "*pbVar14 = 3" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) (goto_statement "goto LAB_00033e6c;" goto statement_identifier ;) })) (expression_statement "*pbVar14 = 0;" (assignment_expression "*pbVar14 = 0" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) (expression_statement "bVar3 = iVar11 < iVar22;" (assignment_expression "bVar3 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar3)" ( identifier )) ;) (labeled_statement "LAB_00033ea8:\n  iVar11 = 0;" statement_identifier : (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;)) (do_statement "do {\n    while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }\n    bVar1 = pbVar7[iVar11];\n    if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }\n    *pbVar14 = bVar12 + 1;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);" do (compound_statement "{\n    while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }\n    bVar1 = pbVar7[iVar11];\n    if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }\n    *pbVar14 = bVar12 + 1;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  }" { (while_statement "while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }" { (expression_statement "pbVar14 = pbVar8 + iVar11;" (assignment_expression "pbVar14 = pbVar8 + iVar11" identifier = (binary_expression "pbVar8 + iVar11" identifier + identifier)) ;) (expression_statement "bVar12 = *pbVar14;" (assignment_expression "bVar12 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (if_statement "if ((bVar12 & 1) == 0) break;" if (parenthesized_expression "((bVar12 & 1) == 0)" ( (binary_expression "(bVar12 & 1) == 0" (parenthesized_expression "(bVar12 & 1)" ( (binary_expression "bVar12 & 1" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;" statement_identifier : (expression_statement "bVar3 = iVar22 <= iVar11;" (assignment_expression "bVar3 = iVar22 <= iVar11" identifier = (binary_expression "iVar22 <= iVar11" identifier <= identifier)) ;)) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (if_statement "if (bVar3) goto LAB_00033f0c;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_00033f0c;" goto statement_identifier ;)) })) (expression_statement "bVar1 = pbVar7[iVar11];" (assignment_expression "bVar1 = pbVar7[iVar11]" identifier = (subscript_expression "pbVar7[iVar11]" identifier [ identifier ])) ;) (if_statement "if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }" if (parenthesized_expression "(bVar1 != 3)" ( (binary_expression "bVar1 != 3" identifier != number_literal) )) (compound_statement "{\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }" { (if_statement "if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }" if (parenthesized_expression "((bVar1 == 0xb) || (bVar1 == 8))" ( (binary_expression "(bVar1 == 0xb) || (bVar1 == 8)" (parenthesized_expression "(bVar1 == 0xb)" ( (binary_expression "bVar1 == 0xb" identifier == number_literal) )) || (parenthesized_expression "(bVar1 == 8)" ( (binary_expression "bVar1 == 8" identifier == number_literal) ))) )) (compound_statement "{\n        *pbVar14 = bVar12 + 2;\n      }" { (expression_statement "*pbVar14 = bVar12 + 2;" (assignment_expression "*pbVar14 = bVar12 + 2" (pointer_expression "*pbVar14" * identifier) = (binary_expression "bVar12 + 2" identifier + number_literal)) ;) })) (goto_statement "goto LAB_00033ecc;" goto statement_identifier ;) })) (expression_statement "*pbVar14 = bVar12 + 1;" (assignment_expression "*pbVar14 = bVar12 + 1" (pointer_expression "*pbVar14" * identifier) = (binary_expression "bVar12 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = iVar11 < iVar22;" (assignment_expression "bVar3 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar3)" ( identifier )) ;) (labeled_statement "LAB_00033f0c:\n  iVar11 = 0;" statement_identifier : (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;)) (do_statement "do {\n    while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);" do (compound_statement "{\n    while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  }" { (while_statement "while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }" { (expression_statement "bVar12 = pbVar8[iVar11];" (assignment_expression "bVar12 = pbVar8[iVar11]" identifier = (subscript_expression "pbVar8[iVar11]" identifier [ identifier ])) ;) (if_statement "if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;" if (parenthesized_expression "(((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb))))" ( (binary_expression "((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))" (parenthesized_expression "((bVar12 & 1) == 0)" ( (binary_expression "(bVar12 & 1) == 0" (parenthesized_expression "(bVar12 & 1)" ( (binary_expression "bVar12 & 1" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))" ( (parenthesized_expression "((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb))" ( (binary_expression "(pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)" (binary_expression "(pbVar7[iVar11] & 0xf7) != 0" (parenthesized_expression "(pbVar7[iVar11] & 0xf7)" ( (binary_expression "pbVar7[iVar11] & 0xf7" (subscript_expression "pbVar7[iVar11]" identifier [ identifier ]) & number_literal) )) != number_literal) && (parenthesized_expression "(pbVar7[iVar11] != 0xb)" ( (binary_expression "pbVar7[iVar11] != 0xb" (subscript_expression "pbVar7[iVar11]" identifier [ identifier ]) != number_literal) ))) )) ))) )) (break_statement "break;" break ;)) (expression_statement "pbVar8[iVar11] = bVar12 + 1;" (assignment_expression "pbVar8[iVar11] = bVar12 + 1" (subscript_expression "pbVar8[iVar11]" identifier [ identifier ]) = (binary_expression "bVar12 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = iVar22 <= iVar11;" (assignment_expression "bVar3 = iVar22 <= iVar11" identifier = (binary_expression "iVar22 <= iVar11" identifier <= identifier)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (if_statement "if (bVar3) goto LAB_00033f68;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_00033f68;" goto statement_identifier ;)) })) (expression_statement "bVar3 = iVar11 < iVar22;" (assignment_expression "bVar3 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar3)" ( identifier )) ;) (labeled_statement "LAB_00033f68:\n  if (iVar22 != 0) {\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }" statement_identifier : (if_statement "if (iVar22 != 0) {\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }" { (expression_statement "iVar26 = param_1 + iVar25 * 0xc;" (assignment_expression "iVar26 = param_1 + iVar25 * 0xc" identifier = (binary_expression "param_1 + iVar25 * 0xc" identifier + (binary_expression "iVar25 * 0xc" identifier * number_literal))) ;) (expression_statement "iVar11 = iVar22;" (assignment_expression "iVar11 = iVar22" identifier = identifier) ;) (do_statement "do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);" do (compound_statement "{\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "iVar23 = 0x269;" (assignment_expression "iVar23 = 0x269" identifier = number_literal) ;) (do_statement "do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));" do (compound_statement "{\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      }" { (expression_statement "iVar27 = iVar23;" (assignment_expression "iVar27 = iVar23" identifier = identifier) ;) (if_statement "if (iVar27 - iVar13 < 2) goto LAB_00033fdc;" if (parenthesized_expression "(iVar27 - iVar13 < 2)" ( (binary_expression "iVar27 - iVar13 < 2" (binary_expression "iVar27 - iVar13" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_00033fdc;" goto statement_identifier ;)) (expression_statement "iVar23 = (iVar27 + iVar13) / 2;" (assignment_expression "iVar23 = (iVar27 + iVar13) / 2" identifier = (binary_expression "(iVar27 + iVar13) / 2" (parenthesized_expression "(iVar27 + iVar13)" ( (binary_expression "iVar27 + iVar13" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);" (assignment_expression "piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(puVar4 + iVar23 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar23 * 0xc + 0x5a9c)" ( (binary_expression "puVar4 + iVar23 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar23 * 0xc" identifier + (binary_expression "iVar23 * 0xc" identifier * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)))" ( (binary_expression "(*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8))" (parenthesized_expression "(*(int *)(iVar26 + -8) < *piVar16)" ( (binary_expression "*(int *)(iVar26 + -8) < *piVar16" (pointer_expression "*(int *)(iVar26 + -8)" * (cast_expression "(int *)(iVar26 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + -8)" ( (binary_expression "iVar26 + -8" identifier + number_literal) )))) < (pointer_expression "*piVar16" * identifier)) )) || (parenthesized_expression "(iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8))" ( (comma_expression "iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)" (assignment_expression "iVar13 = iVar23" identifier = identifier) , (comma_expression "iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)" (assignment_expression "iVar23 = iVar27" identifier = identifier) , (binary_expression "piVar16[1] < *(int *)(iVar26 + -8)" (subscript_expression "piVar16[1]" identifier [ number_literal ]) < (pointer_expression "*(int *)(iVar26 + -8)" * (cast_expression "(int *)(iVar26 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + -8)" ( (binary_expression "iVar26 + -8" identifier + number_literal) ))))))) ))) )) ;) (if_statement "if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }" if (parenthesized_expression "(*(char *)((int)piVar16 + 0xb) != '\x11')" ( (binary_expression "*(char *)((int)piVar16 + 0xb) != '\x11'" (pointer_expression "*(char *)((int)piVar16 + 0xb)" * (cast_expression "(char *)((int)piVar16 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0xb)" ( (binary_expression "(int)piVar16 + 0xb" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\x11'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }" { (labeled_statement "LAB_00033fdc:\n        bVar3 = iVar11 < iVar22;" statement_identifier : (expression_statement "bVar3 = iVar11 < iVar22;" (assignment_expression "bVar3 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;)) (if_statement "if (bVar3) goto LAB_000342f4;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_000342f4;" goto statement_identifier ;)) (goto_statement "goto LAB_00033fe8;" goto statement_identifier ;) })) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (expression_statement "iVar26 = iVar26 + -0xc;" (assignment_expression "iVar26 = iVar26 + -0xc" identifier = (binary_expression "iVar26 + -0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) (expression_statement "bVar3 = 0 < iVar22;" (assignment_expression "bVar3 = 0 < iVar22" identifier = (binary_expression "0 < iVar22" number_literal < identifier)) ;) (labeled_statement "LAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }" statement_identifier : (if_statement "if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }" { (expression_statement "pbVar14 = pbVar8 + iVar11 + 1;" (assignment_expression "pbVar14 = pbVar8 + iVar11 + 1" identifier = (binary_expression "pbVar8 + iVar11 + 1" (binary_expression "pbVar8 + iVar11" identifier + identifier) + number_literal)) ;) (do_statement "do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);" do (compound_statement "{\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      }" { (expression_statement "*pbVar14 = bVar21;" (assignment_expression "*pbVar14 = bVar21" (pointer_expression "*pbVar14" * identifier) = identifier) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar8 + iVar25 != pbVar14)" ( (binary_expression "pbVar8 + iVar25 != pbVar14" (binary_expression "pbVar8 + iVar25" identifier + identifier) != identifier) )) ;) }))) }))) (labeled_statement "LAB_00033fe8:\n  iVar11 = 0;" statement_identifier : (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;)) (expression_statement "piVar16 = piVar31;" (assignment_expression "piVar16 = piVar31" identifier = identifier) ;) (do_statement "do {\n    iVar23 = *piVar16;\n    iVar26 = 0x269;\n    iVar13 = -1;\n    do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));\n    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }\nLAB_00034050:\n    bVar3 = iVar11 < iVar22;\n    piVar16 = piVar16 + 3;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);" do (compound_statement "{\n    iVar23 = *piVar16;\n    iVar26 = 0x269;\n    iVar13 = -1;\n    do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));\n    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }\nLAB_00034050:\n    bVar3 = iVar11 < iVar22;\n    piVar16 = piVar16 + 3;\n    iVar11 = iVar11 + 1;\n  }" { (expression_statement "iVar23 = *piVar16;" (assignment_expression "iVar23 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "iVar26 = 0x269;" (assignment_expression "iVar26 = 0x269" identifier = number_literal) ;) (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (do_statement "do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));" do (compound_statement "{\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    }" { (expression_statement "iVar27 = iVar26;" (assignment_expression "iVar27 = iVar26" identifier = identifier) ;) (if_statement "if (iVar27 - iVar13 < 2) goto LAB_00034050;" if (parenthesized_expression "(iVar27 - iVar13 < 2)" ( (binary_expression "iVar27 - iVar13 < 2" (binary_expression "iVar27 - iVar13" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_00034050;" goto statement_identifier ;)) (expression_statement "iVar17 = (iVar27 + iVar13) / 2;" (assignment_expression "iVar17 = (iVar27 + iVar13) / 2" identifier = (binary_expression "(iVar27 + iVar13) / 2" (parenthesized_expression "(iVar27 + iVar13)" ( (binary_expression "iVar27 + iVar13" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(puVar4 + iVar17 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar17 * 0xc + 0x5a9c)" ( (binary_expression "puVar4 + iVar17 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar17 * 0xc" identifier + (binary_expression "iVar17 * 0xc" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar26 = iVar17;" (assignment_expression "iVar26 = iVar17" identifier = identifier) ;) }) while (parenthesized_expression "((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23))" ( (binary_expression "(iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23)" (parenthesized_expression "(iVar23 < *piVar6)" ( (binary_expression "iVar23 < *piVar6" identifier < (pointer_expression "*piVar6" * identifier)) )) || (parenthesized_expression "(iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23)" ( (comma_expression "iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23" (assignment_expression "iVar26 = iVar27" identifier = identifier) , (comma_expression "iVar13 = iVar17, piVar6[1] < iVar23" (assignment_expression "iVar13 = iVar17" identifier = identifier) , (binary_expression "piVar6[1] < iVar23" (subscript_expression "piVar6[1]" identifier [ number_literal ]) < identifier))) ))) )) ;) (if_statement "if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }" if (parenthesized_expression "(*(byte *)((int)piVar6 + 0xb) == 0x11)" ( (binary_expression "*(byte *)((int)piVar6 + 0xb) == 0x11" (pointer_expression "*(byte *)((int)piVar6 + 0xb)" * (cast_expression "(byte *)((int)piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0xb)" ( (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }" { (expression_statement "iVar26 = iVar11;" (assignment_expression "iVar26 = iVar11" identifier = identifier) ;) (if_statement "if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }" if (parenthesized_expression "(iVar11 < iVar25)" ( (binary_expression "iVar11 < iVar25" identifier < identifier) )) (compound_statement "{\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }" { (expression_statement "piVar6 = piVar16 + -1;" (assignment_expression "piVar6 = piVar16 + -1" identifier = (binary_expression "piVar16 + -1" identifier + number_literal)) ;) (while_statement "while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }" { (expression_statement "iVar13 = 0x269;" (assignment_expression "iVar13 = 0x269" identifier = number_literal) ;) (expression_statement "iVar27 = -1;" (assignment_expression "iVar27 = -1" identifier = number_literal) ;) (do_statement "do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));" do (compound_statement "{\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          }" { (expression_statement "iVar17 = iVar13;" (assignment_expression "iVar17 = iVar13" identifier = identifier) ;) (if_statement "if (iVar17 - iVar27 < 2) goto LAB_0003439c;" if (parenthesized_expression "(iVar17 - iVar27 < 2)" ( (binary_expression "iVar17 - iVar27 < 2" (binary_expression "iVar17 - iVar27" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_0003439c;" goto statement_identifier ;)) (expression_statement "iVar20 = (iVar17 + iVar27) / 2;" (assignment_expression "iVar20 = (iVar17 + iVar27) / 2" identifier = (binary_expression "(iVar17 + iVar27) / 2" (parenthesized_expression "(iVar17 + iVar27)" ( (binary_expression "iVar17 + iVar27" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);" (assignment_expression "piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(puVar4 + iVar20 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar20 * 0xc + 0x5a9c)" ( (binary_expression "puVar4 + iVar20 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar20 * 0xc" identifier + (binary_expression "iVar20 * 0xc" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar13 = iVar20;" (assignment_expression "iVar13 = iVar20" identifier = identifier) ;) }) while (parenthesized_expression "((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23))" ( (binary_expression "(iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23)" (parenthesized_expression "(iVar23 < *piVar18)" ( (binary_expression "iVar23 < *piVar18" identifier < (pointer_expression "*piVar18" * identifier)) )) || (parenthesized_expression "(iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23)" ( (comma_expression "iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23" (assignment_expression "iVar13 = iVar17" identifier = identifier) , (comma_expression "iVar27 = iVar20, piVar18[1] < iVar23" (assignment_expression "iVar27 = iVar20" identifier = identifier) , (binary_expression "piVar18[1] < iVar23" (subscript_expression "piVar18[1]" identifier [ number_literal ]) < identifier))) ))) )) ;) (expression_statement "iVar13 = iVar26 + 1;" (assignment_expression "iVar13 = iVar26 + 1" identifier = (binary_expression "iVar26 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;" if (parenthesized_expression "(*(char *)((int)piVar18 + 0xb) != '\x11')" ( (binary_expression "*(char *)((int)piVar18 + 0xb) != '\x11'" (pointer_expression "*(char *)((int)piVar18 + 0xb)" * (cast_expression "(char *)((int)piVar18 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar18 + 0xb)" ( (binary_expression "(int)piVar18 + 0xb" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\x11'" ' escape_sequence ')) )) (goto_statement "goto LAB_0003439c;" goto statement_identifier ;)) (if_statement "if (iVar26 == iVar22) break;" if (parenthesized_expression "(iVar26 == iVar22)" ( (binary_expression "iVar26 == iVar22" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar23 = piVar6[4];" (assignment_expression "iVar23 = piVar6[4]" identifier = (subscript_expression "piVar6[4]" identifier [ number_literal ])) ;) (expression_statement "iVar26 = iVar13;" (assignment_expression "iVar26 = iVar13" identifier = identifier) ;) (expression_statement "piVar6 = piVar6 + 3;" (assignment_expression "piVar6 = piVar6 + 3" identifier = (binary_expression "piVar6 + 3" identifier + number_literal)) ;) })) }) (else_clause "else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }" else (compound_statement "{\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }" { (labeled_statement "LAB_0003439c:\n        iVar13 = iVar25;" statement_identifier : (expression_statement "iVar13 = iVar25;" (assignment_expression "iVar13 = iVar25" identifier = identifier) ;)) (if_statement "if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }" if (parenthesized_expression "(iVar25 != iVar26)" ( (binary_expression "iVar25 != iVar26" identifier != identifier) )) (compound_statement "{\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }" { (expression_statement "iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);" (assignment_expression "iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4)" identifier = (pointer_expression "*(int *)(param_1 + iVar26 * 0xc + 4)" * (cast_expression "(int *)(param_1 + iVar26 * 0xc + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar26 * 0xc + 4)" ( (binary_expression "param_1 + iVar26 * 0xc + 4" (binary_expression "param_1 + iVar26 * 0xc" identifier + (binary_expression "iVar26 * 0xc" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar23 = 0x269;" (assignment_expression "iVar23 = 0x269" identifier = number_literal) ;) (expression_statement "iVar27 = -1;" (assignment_expression "iVar27 = -1" identifier = number_literal) ;) (do_statement "do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));" do (compound_statement "{\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          }" { (expression_statement "iVar20 = iVar23;" (assignment_expression "iVar20 = iVar23" identifier = identifier) ;) (expression_statement "iVar13 = iVar26;" (assignment_expression "iVar13 = iVar26" identifier = identifier) ;) (if_statement "if (iVar20 - iVar27 < 2) goto LAB_00034408;" if (parenthesized_expression "(iVar20 - iVar27 < 2)" ( (binary_expression "iVar20 - iVar27 < 2" (binary_expression "iVar20 - iVar27" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_00034408;" goto statement_identifier ;)) (expression_statement "iVar19 = (iVar20 + iVar27) / 2;" (assignment_expression "iVar19 = (iVar20 + iVar27) / 2" identifier = (binary_expression "(iVar20 + iVar27) / 2" (parenthesized_expression "(iVar20 + iVar27)" ( (binary_expression "iVar20 + iVar27" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(puVar4 + iVar19 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar19 * 0xc + 0x5a9c)" ( (binary_expression "puVar4 + iVar19 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar19 * 0xc" identifier + (binary_expression "iVar19 * 0xc" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar23 = iVar19;" (assignment_expression "iVar23 = iVar19" identifier = identifier) ;) }) while (parenthesized_expression "((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17))" ( (binary_expression "(iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17)" (parenthesized_expression "(iVar17 < *piVar6)" ( (binary_expression "iVar17 < *piVar6" identifier < (pointer_expression "*piVar6" * identifier)) )) || (parenthesized_expression "(iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17)" ( (comma_expression "iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17" (assignment_expression "iVar23 = iVar20" identifier = identifier) , (comma_expression "iVar27 = iVar19, piVar6[1] < iVar17" (assignment_expression "iVar27 = iVar19" identifier = identifier) , (binary_expression "piVar6[1] < iVar17" (subscript_expression "piVar6[1]" identifier [ number_literal ]) < identifier))) ))) )) ;) (if_statement "if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }" if (parenthesized_expression "(*(char *)((int)piVar6 + 0xb) != '\x0f')" ( (binary_expression "*(char *)((int)piVar6 + 0xb) != '\x0f'" (pointer_expression "*(char *)((int)piVar6 + 0xb)" * (cast_expression "(char *)((int)piVar6 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0xb)" ( (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\x0f'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }" { (labeled_statement "LAB_00034408:\n            iVar26 = 0x269;" statement_identifier : (expression_statement "iVar26 = 0x269;" (assignment_expression "iVar26 = 0x269" identifier = number_literal) ;)) (expression_statement "iVar23 = -1;" (assignment_expression "iVar23 = -1" identifier = number_literal) ;) (do_statement "do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));" do (compound_statement "{\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            }" { (expression_statement "iVar27 = iVar26;" (assignment_expression "iVar27 = iVar26" identifier = identifier) ;) (if_statement "if (iVar27 - iVar23 < 2) goto LAB_00034050;" if (parenthesized_expression "(iVar27 - iVar23 < 2)" ( (binary_expression "iVar27 - iVar23 < 2" (binary_expression "iVar27 - iVar23" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_00034050;" goto statement_identifier ;)) (expression_statement "iVar20 = (iVar27 + iVar23) / 2;" (assignment_expression "iVar20 = (iVar27 + iVar23) / 2" identifier = (binary_expression "(iVar27 + iVar23) / 2" (parenthesized_expression "(iVar27 + iVar23)" ( (binary_expression "iVar27 + iVar23" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(puVar4 + iVar20 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar20 * 0xc + 0x5a9c)" ( (binary_expression "puVar4 + iVar20 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar20 * 0xc" identifier + (binary_expression "iVar20 * 0xc" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar26 = iVar20;" (assignment_expression "iVar26 = iVar20" identifier = identifier) ;) }) while (parenthesized_expression "((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17))" ( (binary_expression "(iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17)" (parenthesized_expression "(iVar17 < *piVar6)" ( (binary_expression "iVar17 < *piVar6" identifier < (pointer_expression "*piVar6" * identifier)) )) || (parenthesized_expression "(iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17)" ( (comma_expression "iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17" (assignment_expression "iVar26 = iVar27" identifier = identifier) , (comma_expression "iVar23 = iVar20, piVar6[1] < iVar17" (assignment_expression "iVar23 = iVar20" identifier = identifier) , (binary_expression "piVar6[1] < iVar17" (subscript_expression "piVar6[1]" identifier [ number_literal ]) < identifier))) ))) )) ;) (if_statement "if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;" if (parenthesized_expression "(*(char *)((int)piVar6 + 0xb) != '\x10')" ( (binary_expression "*(char *)((int)piVar6 + 0xb) != '\x10'" (pointer_expression "*(char *)((int)piVar6 + 0xb)" * (cast_expression "(char *)((int)piVar6 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0xb)" ( (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\x10'" ' escape_sequence ')) )) (goto_statement "goto LAB_00034050;" goto statement_identifier ;)) })) })) }))) (expression_statement "pbVar14 = pbVar8 + iVar13 + -1;" (assignment_expression "pbVar14 = pbVar8 + iVar13 + -1" identifier = (binary_expression "pbVar8 + iVar13 + -1" (binary_expression "pbVar8 + iVar13" identifier + identifier) + number_literal)) ;) (if_statement "if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }" if (parenthesized_expression "(iVar11 <= iVar13 + -1)" ( (binary_expression "iVar11 <= iVar13 + -1" identifier <= (binary_expression "iVar13 + -1" identifier + number_literal)) )) (compound_statement "{\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }" { (do_statement "do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);" do (compound_statement "{\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        }" { (expression_statement "*pbVar14 = bVar21;" (assignment_expression "*pbVar14 = bVar21" (pointer_expression "*pbVar14" * identifier) = identifier) ;) (expression_statement "pbVar14 = pbVar14 + -1;" (assignment_expression "pbVar14 = pbVar14 + -1" identifier = (binary_expression "pbVar14 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar8 + iVar11 + -1 != pbVar14)" ( (binary_expression "pbVar8 + iVar11 + -1 != pbVar14" (binary_expression "pbVar8 + iVar11 + -1" (binary_expression "pbVar8 + iVar11" identifier + identifier) + number_literal) != identifier) )) ;) })) }) (else_clause "else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }" else (if_statement "if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }" if (parenthesized_expression "(*(byte *)((int)piVar6 + 0xb) - 0xf < 2)" ( (binary_expression "*(byte *)((int)piVar6 + 0xb) - 0xf < 2" (binary_expression "*(byte *)((int)piVar6 + 0xb) - 0xf" (pointer_expression "*(byte *)((int)piVar6 + 0xb)" * (cast_expression "(byte *)((int)piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0xb)" ( (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - number_literal) < number_literal) )) (compound_statement "{\n      pbVar8[iVar11] = bVar21;\n    }" { (expression_statement "pbVar8[iVar11] = bVar21;" (assignment_expression "pbVar8[iVar11] = bVar21" (subscript_expression "pbVar8[iVar11]" identifier [ identifier ]) = identifier) ;) })))) (labeled_statement "LAB_00034050:\n    bVar3 = iVar11 < iVar22;" statement_identifier : (expression_statement "bVar3 = iVar11 < iVar22;" (assignment_expression "bVar3 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;)) (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" identifier = (binary_expression "piVar16 + 3" identifier + number_literal)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar3)" ( identifier )) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }\n    doMirror(piVar31 + iVar11 * 3);\n    uVar15 = (uint)(iVar11 < iVar22);\n    iVar11 = iVar11 + 1;\n  } while (uVar15 != 0);" do (compound_statement "{\n    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }\n    doMirror(piVar31 + iVar11 * 3);\n    uVar15 = (uint)(iVar11 < iVar22);\n    iVar11 = iVar11 + 1;\n  }" { (while_statement "while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }" while (parenthesized_expression "(uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0)" ( (comma_expression "uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0" (assignment_expression "uVar15 = (uint)(iVar11 < iVar22)" identifier = (call_expression "(uint)(iVar11 < iVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 < iVar22)" ( (binary_expression "iVar11 < iVar22" identifier < identifier) )))) , (binary_expression "(pbVar8[iVar11] & 1) == 0" (parenthesized_expression "(pbVar8[iVar11] & 1)" ( (binary_expression "pbVar8[iVar11] & 1" (subscript_expression "pbVar8[iVar11]" identifier [ identifier ]) & number_literal) )) == number_literal)) )) (compound_statement "{\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }" { (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (if_statement "if (uVar15 == 0) goto LAB_000340a4;" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000340a4;" goto statement_identifier ;)) })) (expression_statement "doMirror(piVar31 + iVar11 * 3);" (call_expression "doMirror(piVar31 + iVar11 * 3)" identifier (argument_list "(piVar31 + iVar11 * 3)" ( (binary_expression "piVar31 + iVar11 * 3" identifier + (binary_expression "iVar11 * 3" identifier * number_literal)) ))) ;) (expression_statement "uVar15 = (uint)(iVar11 < iVar22);" (assignment_expression "uVar15 = (uint)(iVar11 < iVar22)" identifier = (call_expression "(uint)(iVar11 < iVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 < iVar22)" ( (binary_expression "iVar11 < iVar22" identifier < identifier) )))) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_000340a4:\n  uVar28 = (uint)*pbVar8;" statement_identifier : (expression_statement "uVar28 = (uint)*pbVar8;" (assignment_expression "uVar28 = (uint)*pbVar8" identifier = (binary_expression "(uint)*pbVar8" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;)) (expression_statement "uVar29 = uVar28;" (assignment_expression "uVar29 = uVar28" identifier = identifier) ;) (while_statement "while( true ) {\n    bVar3 = iVar22 <= (int)uVar15;\n    uVar30 = uVar28;\n    if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }\n    uVar15 = uVar15 + 1;\n    if (bVar3) break;\n    uVar28 = (uint)pbVar8[uVar15];\n    uVar29 = uVar30;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    bVar3 = iVar22 <= (int)uVar15;\n    uVar30 = uVar28;\n    if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }\n    uVar15 = uVar15 + 1;\n    if (bVar3) break;\n    uVar28 = (uint)pbVar8[uVar15];\n    uVar29 = uVar30;\n  }" { (expression_statement "bVar3 = iVar22 <= (int)uVar15;" (assignment_expression "bVar3 = iVar22 <= (int)uVar15" identifier = (binary_expression "iVar22 <= (int)uVar15" identifier <= (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar30 = uVar28;" (assignment_expression "uVar30 = uVar28" identifier = identifier) ;) (if_statement "if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }" if (parenthesized_expression "(uVar28 < uVar29)" ( (binary_expression "uVar28 < uVar29" identifier < identifier) )) (compound_statement "{\n      uVar30 = uVar29;\n    }" { (expression_statement "uVar30 = uVar29;" (assignment_expression "uVar30 = uVar29" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar15 + 1;" (assignment_expression "uVar15 = uVar15 + 1" identifier = (binary_expression "uVar15 + 1" identifier + number_literal)) ;) (if_statement "if (bVar3) break;" if (parenthesized_expression "(bVar3)" ( identifier )) (break_statement "break;" break ;)) (expression_statement "uVar28 = (uint)pbVar8[uVar15];" (assignment_expression "uVar28 = (uint)pbVar8[uVar15]" identifier = (cast_expression "(uint)pbVar8[uVar15]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar8[uVar15]" identifier [ identifier ]))) ;) (expression_statement "uVar29 = uVar30;" (assignment_expression "uVar29 = uVar30" identifier = identifier) ;) })) (for_statement "for (; uVar30 != 0; uVar30 = uVar30 - 1) {\n    flipThisRun(param_1,pbVar8,uVar30,iVar25);\n  }" for ( ; (binary_expression "uVar30 != 0" identifier != number_literal) ; (assignment_expression "uVar30 = uVar30 - 1" identifier = (binary_expression "uVar30 - 1" identifier - number_literal)) ) (compound_statement "{\n    flipThisRun(param_1,pbVar8,uVar30,iVar25);\n  }" { (expression_statement "flipThisRun(param_1,pbVar8,uVar30,iVar25);" (call_expression "flipThisRun(param_1,pbVar8,uVar30,iVar25)" identifier (argument_list "(param_1,pbVar8,uVar30,iVar25)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "safefree(pbVar7);" (call_expression "safefree(pbVar7)" identifier (argument_list "(pbVar7)" ( identifier ))) ;) (expression_statement "safefree(pbVar8);" (call_expression "safefree(pbVar8)" identifier (argument_list "(pbVar8)" ( identifier ))) ;) (return_statement "return 3;" return number_literal ;) })))
(translation_unit "int do_bidi(bidi_char *line,int count)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint *puVar6;\n  int iVar7;\n  \n  if (count < 1) {\n    return 0;\n  }\n  iVar7 = 0;\n  puVar6 = &line->wc;\n  do {\n    iVar1 = 0x269;\n    iVar5 = -1;\n    do {\n      iVar4 = iVar1;\n      if (iVar4 - iVar5 < 2) goto LAB_00033888;\n      iVar3 = (iVar4 + iVar5) / 2;\n      piVar2 = (int *)(PTR_data_CS_ISO8859_4_sbcs2ucs_194__000b5230 + iVar3 * 0xc + 0x5a9c);\n      iVar1 = iVar3;\n    } while (((int)*puVar6 < *piVar2) || (iVar1 = iVar4, iVar5 = iVar3, piVar2[1] < (int)*puVar6));\n    if (*(byte *)((int)piVar2 + 0xb) - 3 < 2) {\n                    /* WARNING: Subroutine does not return */\n      safemalloc(count,1);\n    }\nLAB_00033888:\n    iVar7 = iVar7 + 1;\n    puVar6 = puVar6 + 3;\n    if (count == iVar7) {\n      return 0;\n    }\n  } while( true );\n}\n\n" (function_definition "int do_bidi(bidi_char *line,int count)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint *puVar6;\n  int iVar7;\n  \n  if (count < 1) {\n    return 0;\n  }\n  iVar7 = 0;\n  puVar6 = &line->wc;\n  do {\n    iVar1 = 0x269;\n    iVar5 = -1;\n    do {\n      iVar4 = iVar1;\n      if (iVar4 - iVar5 < 2) goto LAB_00033888;\n      iVar3 = (iVar4 + iVar5) / 2;\n      piVar2 = (int *)(PTR_data_CS_ISO8859_4_sbcs2ucs_194__000b5230 + iVar3 * 0xc + 0x5a9c);\n      iVar1 = iVar3;\n    } while (((int)*puVar6 < *piVar2) || (iVar1 = iVar4, iVar5 = iVar3, piVar2[1] < (int)*puVar6));\n    if (*(byte *)((int)piVar2 + 0xb) - 3 < 2) {\n                    /* WARNING: Subroutine does not return */\n      safemalloc(count,1);\n    }\nLAB_00033888:\n    iVar7 = iVar7 + 1;\n    puVar6 = puVar6 + 3;\n    if (count == iVar7) {\n      return 0;\n    }\n  } while( true );\n}" primitive_type (function_declarator "do_bidi(bidi_char *line,int count)" identifier (parameter_list "(bidi_char *line,int count)" ( (parameter_declaration "bidi_char *line" type_identifier (pointer_declarator "*line" * identifier)) , (parameter_declaration "int count" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint *puVar6;\n  int iVar7;\n  \n  if (count < 1) {\n    return 0;\n  }\n  iVar7 = 0;\n  puVar6 = &line->wc;\n  do {\n    iVar1 = 0x269;\n    iVar5 = -1;\n    do {\n      iVar4 = iVar1;\n      if (iVar4 - iVar5 < 2) goto LAB_00033888;\n      iVar3 = (iVar4 + iVar5) / 2;\n      piVar2 = (int *)(PTR_data_CS_ISO8859_4_sbcs2ucs_194__000b5230 + iVar3 * 0xc + 0x5a9c);\n      iVar1 = iVar3;\n    } while (((int)*puVar6 < *piVar2) || (iVar1 = iVar4, iVar5 = iVar3, piVar2[1] < (int)*puVar6));\n    if (*(byte *)((int)piVar2 + 0xb) - 3 < 2) {\n                    /* WARNING: Subroutine does not return */\n      safemalloc(count,1);\n    }\nLAB_00033888:\n    iVar7 = iVar7 + 1;\n    puVar6 = puVar6 + 3;\n    if (count == iVar7) {\n      return 0;\n    }\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (if_statement "if (count < 1) {\n    return 0;\n  }" if (parenthesized_expression "(count < 1)" ( (binary_expression "count < 1" identifier < number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "puVar6 = &line->wc;" (assignment_expression "puVar6 = &line->wc" identifier = (pointer_expression "&line->wc" & (field_expression "line->wc" identifier -> field_identifier))) ;) (do_statement "do {\n    iVar1 = 0x269;\n    iVar5 = -1;\n    do {\n      iVar4 = iVar1;\n      if (iVar4 - iVar5 < 2) goto LAB_00033888;\n      iVar3 = (iVar4 + iVar5) / 2;\n      piVar2 = (int *)(PTR_data_CS_ISO8859_4_sbcs2ucs_194__000b5230 + iVar3 * 0xc + 0x5a9c);\n      iVar1 = iVar3;\n    } while (((int)*puVar6 < *piVar2) || (iVar1 = iVar4, iVar5 = iVar3, piVar2[1] < (int)*puVar6));\n    if (*(byte *)((int)piVar2 + 0xb) - 3 < 2) {\n                    /* WARNING: Subroutine does not return */\n      safemalloc(count,1);\n    }\nLAB_00033888:\n    iVar7 = iVar7 + 1;\n    puVar6 = puVar6 + 3;\n    if (count == iVar7) {\n      return 0;\n    }\n  } while( true );" do (compound_statement "{\n    iVar1 = 0x269;\n    iVar5 = -1;\n    do {\n      iVar4 = iVar1;\n      if (iVar4 - iVar5 < 2) goto LAB_00033888;\n      iVar3 = (iVar4 + iVar5) / 2;\n      piVar2 = (int *)(PTR_data_CS_ISO8859_4_sbcs2ucs_194__000b5230 + iVar3 * 0xc + 0x5a9c);\n      iVar1 = iVar3;\n    } while (((int)*puVar6 < *piVar2) || (iVar1 = iVar4, iVar5 = iVar3, piVar2[1] < (int)*puVar6));\n    if (*(byte *)((int)piVar2 + 0xb) - 3 < 2) {\n                    /* WARNING: Subroutine does not return */\n      safemalloc(count,1);\n    }\nLAB_00033888:\n    iVar7 = iVar7 + 1;\n    puVar6 = puVar6 + 3;\n    if (count == iVar7) {\n      return 0;\n    }\n  }" { (expression_statement "iVar1 = 0x269;" (assignment_expression "iVar1 = 0x269" identifier = number_literal) ;) (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) (do_statement "do {\n      iVar4 = iVar1;\n      if (iVar4 - iVar5 < 2) goto LAB_00033888;\n      iVar3 = (iVar4 + iVar5) / 2;\n      piVar2 = (int *)(PTR_data_CS_ISO8859_4_sbcs2ucs_194__000b5230 + iVar3 * 0xc + 0x5a9c);\n      iVar1 = iVar3;\n    } while (((int)*puVar6 < *piVar2) || (iVar1 = iVar4, iVar5 = iVar3, piVar2[1] < (int)*puVar6));" do (compound_statement "{\n      iVar4 = iVar1;\n      if (iVar4 - iVar5 < 2) goto LAB_00033888;\n      iVar3 = (iVar4 + iVar5) / 2;\n      piVar2 = (int *)(PTR_data_CS_ISO8859_4_sbcs2ucs_194__000b5230 + iVar3 * 0xc + 0x5a9c);\n      iVar1 = iVar3;\n    }" { (expression_statement "iVar4 = iVar1;" (assignment_expression "iVar4 = iVar1" identifier = identifier) ;) (if_statement "if (iVar4 - iVar5 < 2) goto LAB_00033888;" if (parenthesized_expression "(iVar4 - iVar5 < 2)" ( (binary_expression "iVar4 - iVar5 < 2" (binary_expression "iVar4 - iVar5" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_00033888;" goto statement_identifier ;)) (expression_statement "iVar3 = (iVar4 + iVar5) / 2;" (assignment_expression "iVar3 = (iVar4 + iVar5) / 2" identifier = (binary_expression "(iVar4 + iVar5) / 2" (parenthesized_expression "(iVar4 + iVar5)" ( (binary_expression "iVar4 + iVar5" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar2 = (int *)(PTR_data_CS_ISO8859_4_sbcs2ucs_194__000b5230 + iVar3 * 0xc + 0x5a9c);" (assignment_expression "piVar2 = (int *)(PTR_data_CS_ISO8859_4_sbcs2ucs_194__000b5230 + iVar3 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(PTR_data_CS_ISO8859_4_sbcs2ucs_194__000b5230 + iVar3 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_CS_ISO8859_4_sbcs2ucs_194__000b5230 + iVar3 * 0xc + 0x5a9c)" ( (binary_expression "PTR_data_CS_ISO8859_4_sbcs2ucs_194__000b5230 + iVar3 * 0xc + 0x5a9c" (binary_expression "PTR_data_CS_ISO8859_4_sbcs2ucs_194__000b5230 + iVar3 * 0xc" identifier + (binary_expression "iVar3 * 0xc" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar1 = iVar3;" (assignment_expression "iVar1 = iVar3" identifier = identifier) ;) }) while (parenthesized_expression "(((int)*puVar6 < *piVar2) || (iVar1 = iVar4, iVar5 = iVar3, piVar2[1] < (int)*puVar6))" ( (binary_expression "((int)*puVar6 < *piVar2) || (iVar1 = iVar4, iVar5 = iVar3, piVar2[1] < (int)*puVar6)" (parenthesized_expression "((int)*puVar6 < *piVar2)" ( (binary_expression "(int)*puVar6 < *piVar2" (cast_expression "(int)*puVar6" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*puVar6" * identifier)) < (pointer_expression "*piVar2" * identifier)) )) || (parenthesized_expression "(iVar1 = iVar4, iVar5 = iVar3, piVar2[1] < (int)*puVar6)" ( (comma_expression "iVar1 = iVar4, iVar5 = iVar3, piVar2[1] < (int)*puVar6" (assignment_expression "iVar1 = iVar4" identifier = identifier) , (comma_expression "iVar5 = iVar3, piVar2[1] < (int)*puVar6" (assignment_expression "iVar5 = iVar3" identifier = identifier) , (binary_expression "piVar2[1] < (int)*puVar6" (subscript_expression "piVar2[1]" identifier [ number_literal ]) < (cast_expression "(int)*puVar6" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*puVar6" * identifier))))) ))) )) ;) (if_statement "if (*(byte *)((int)piVar2 + 0xb) - 3 < 2) {\n                    /* WARNING: Subroutine does not return */\n      safemalloc(count,1);\n    }" if (parenthesized_expression "(*(byte *)((int)piVar2 + 0xb) - 3 < 2)" ( (binary_expression "*(byte *)((int)piVar2 + 0xb) - 3 < 2" (binary_expression "*(byte *)((int)piVar2 + 0xb) - 3" (pointer_expression "*(byte *)((int)piVar2 + 0xb)" * (cast_expression "(byte *)((int)piVar2 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + 0xb)" ( (binary_expression "(int)piVar2 + 0xb" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      safemalloc(count,1);\n    }" { comment (expression_statement "safemalloc(count,1);" (call_expression "safemalloc(count,1)" identifier (argument_list "(count,1)" ( identifier , number_literal ))) ;) })) (labeled_statement "LAB_00033888:\n    iVar7 = iVar7 + 1;" statement_identifier : (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;)) (expression_statement "puVar6 = puVar6 + 3;" (assignment_expression "puVar6 = puVar6 + 3" identifier = (binary_expression "puVar6 + 3" identifier + number_literal)) ;) (if_statement "if (count == iVar7) {\n      return 0;\n    }" if (parenthesized_expression "(count == iVar7)" ( (binary_expression "count == iVar7" identifier == identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "undefined4 do_bidi(int param_1,int param_2)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar12;\n  undefined4 uVar9;\n  byte *pbVar10;\n  int iVar11;\n  int iVar13;\n  byte *pbVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  byte bVar21;\n  int iVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  uint uVar28;\n  uint uVar29;\n  uint uVar30;\n  int *piVar31;\n  \n  puVar4 = PTR_DAT_000b5230;\n  if (param_2 < 1) {\n    return 0;\n  }\n  iVar25 = 0;\n  piVar31 = (int *)(param_1 + 4);\n  piVar16 = piVar31;\n  while( true ) {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;\nLAB_00033888:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n    if (param_2 == iVar25) {\n      return 0;\n    }\n  }\n  pbVar7 = (byte *)safemalloc(param_2,1);\n  pbVar8 = (byte *)safemalloc(param_2,1);\n  puVar5 = PTR_DAT_000b5230;\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    uVar15 = piVar6[2];\n    if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }\n    bVar21 = (byte)uVar15;\n    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;\nLAB_00033978:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n  } while (param_2 != iVar25);\n  bVar21 = 0;\nLAB_000339c8:\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar22 = iVar25;\n    iVar25 = 0x269;\n    iVar11 = -1;\n    do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));\n    bVar12 = *(byte *)((int)piVar6 + 0xb);\n    if (bVar12 < 0x12) {\n                    \n                    \n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }\nswitchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;\n    iVar25 = iVar22 + 1;\n    piVar16 = piVar16 + 3;\n    pbVar7[iVar22] = bVar12;\n  } while (param_2 != iVar25);\n  pbVar24 = pbVar7 + iVar25;\n  pbVar14 = pbVar7;\n  do {\n    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }\n    pbVar14 = pbVar14 + 1;\n  } while (pbVar14 != pbVar24);\n  if (*pbVar7 == 0xd) {\n    *pbVar7 = bVar21;\n  }\n  pbVar14 = pbVar7 + 1;\n  if (iVar25 != 1) {\n    do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);\n  }\n  pbVar14 = pbVar7;\n  do {\n    pbVar10 = pbVar14;\n    if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }\n    pbVar14 = pbVar14 + 1;\n    pbVar10 = pbVar7;\n  } while (pbVar14 != pbVar24);\n  do {\n    if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }\n    pbVar10 = pbVar10 + 1;\n  } while (pbVar10 != pbVar24);\n  bVar3 = 1 < iVar22;\n  if (bVar3) {\n    pbVar14 = pbVar7;\n    do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);\n  }\nLAB_00033c70:\n  iVar11 = 0;\n  pbVar14 = pbVar7;\n  do {\n    if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    uVar15 = (uint)pbVar7[iVar11];\n    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }\nLAB_00033cec:\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\nLAB_00033d38:\n  if (iVar25 == 1) {\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }\n  else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }\n  pbVar14 = pbVar7 + param_2 + -1;\n  if (*pbVar14 == 0x12) {\n    bVar12 = pbVar7[param_2 + -2];\n    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }\n  }\nLAB_00033e60:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }\n    if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }\n    *pbVar14 = 0;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033ea8:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }\n    bVar1 = pbVar7[iVar11];\n    if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }\n    *pbVar14 = bVar12 + 1;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f0c:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f68:\n  if (iVar22 != 0) {\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }\nLAB_00033fe8:\n  iVar11 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar23 = *piVar16;\n    iVar26 = 0x269;\n    iVar13 = -1;\n    do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));\n    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }\nLAB_00034050:\n    bVar3 = iVar11 < iVar22;\n    piVar16 = piVar16 + 3;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\n  iVar11 = 0;\n  do {\n    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }\n    doMirror(piVar31 + iVar11 * 3);\n    uVar15 = (uint)(iVar11 < iVar22);\n    iVar11 = iVar11 + 1;\n  } while (uVar15 != 0);\nLAB_000340a4:\n  uVar28 = (uint)*pbVar8;\n  uVar29 = uVar28;\n  while( true ) {\n    bVar3 = iVar22 <= (int)uVar15;\n    uVar30 = uVar28;\n    if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }\n    uVar15 = uVar15 + 1;\n    if (bVar3) break;\n    uVar28 = (uint)pbVar8[uVar15];\n    uVar29 = uVar30;\n  }\n  for (; uVar30 != 0; uVar30 = uVar30 - 1) {\n    flipThisRun(param_1,pbVar8,uVar30,iVar25);\n  }\n  safefree(pbVar7);\n  safefree(pbVar8);\n  return 3;\n}\n\n" (function_definition "undefined4 do_bidi(int param_1,int param_2)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar12;\n  undefined4 uVar9;\n  byte *pbVar10;\n  int iVar11;\n  int iVar13;\n  byte *pbVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  byte bVar21;\n  int iVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  uint uVar28;\n  uint uVar29;\n  uint uVar30;\n  int *piVar31;\n  \n  puVar4 = PTR_DAT_000b5230;\n  if (param_2 < 1) {\n    return 0;\n  }\n  iVar25 = 0;\n  piVar31 = (int *)(param_1 + 4);\n  piVar16 = piVar31;\n  while( true ) {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;\nLAB_00033888:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n    if (param_2 == iVar25) {\n      return 0;\n    }\n  }\n  pbVar7 = (byte *)safemalloc(param_2,1);\n  pbVar8 = (byte *)safemalloc(param_2,1);\n  puVar5 = PTR_DAT_000b5230;\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    uVar15 = piVar6[2];\n    if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }\n    bVar21 = (byte)uVar15;\n    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;\nLAB_00033978:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n  } while (param_2 != iVar25);\n  bVar21 = 0;\nLAB_000339c8:\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar22 = iVar25;\n    iVar25 = 0x269;\n    iVar11 = -1;\n    do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));\n    bVar12 = *(byte *)((int)piVar6 + 0xb);\n    if (bVar12 < 0x12) {\n                    \n                    \n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }\nswitchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;\n    iVar25 = iVar22 + 1;\n    piVar16 = piVar16 + 3;\n    pbVar7[iVar22] = bVar12;\n  } while (param_2 != iVar25);\n  pbVar24 = pbVar7 + iVar25;\n  pbVar14 = pbVar7;\n  do {\n    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }\n    pbVar14 = pbVar14 + 1;\n  } while (pbVar14 != pbVar24);\n  if (*pbVar7 == 0xd) {\n    *pbVar7 = bVar21;\n  }\n  pbVar14 = pbVar7 + 1;\n  if (iVar25 != 1) {\n    do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);\n  }\n  pbVar14 = pbVar7;\n  do {\n    pbVar10 = pbVar14;\n    if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }\n    pbVar14 = pbVar14 + 1;\n    pbVar10 = pbVar7;\n  } while (pbVar14 != pbVar24);\n  do {\n    if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }\n    pbVar10 = pbVar10 + 1;\n  } while (pbVar10 != pbVar24);\n  bVar3 = 1 < iVar22;\n  if (bVar3) {\n    pbVar14 = pbVar7;\n    do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);\n  }\nLAB_00033c70:\n  iVar11 = 0;\n  pbVar14 = pbVar7;\n  do {\n    if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    uVar15 = (uint)pbVar7[iVar11];\n    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }\nLAB_00033cec:\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\nLAB_00033d38:\n  if (iVar25 == 1) {\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }\n  else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }\n  pbVar14 = pbVar7 + param_2 + -1;\n  if (*pbVar14 == 0x12) {\n    bVar12 = pbVar7[param_2 + -2];\n    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }\n  }\nLAB_00033e60:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }\n    if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }\n    *pbVar14 = 0;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033ea8:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }\n    bVar1 = pbVar7[iVar11];\n    if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }\n    *pbVar14 = bVar12 + 1;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f0c:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f68:\n  if (iVar22 != 0) {\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }\nLAB_00033fe8:\n  iVar11 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar23 = *piVar16;\n    iVar26 = 0x269;\n    iVar13 = -1;\n    do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));\n    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }\nLAB_00034050:\n    bVar3 = iVar11 < iVar22;\n    piVar16 = piVar16 + 3;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\n  iVar11 = 0;\n  do {\n    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }\n    doMirror(piVar31 + iVar11 * 3);\n    uVar15 = (uint)(iVar11 < iVar22);\n    iVar11 = iVar11 + 1;\n  } while (uVar15 != 0);\nLAB_000340a4:\n  uVar28 = (uint)*pbVar8;\n  uVar29 = uVar28;\n  while( true ) {\n    bVar3 = iVar22 <= (int)uVar15;\n    uVar30 = uVar28;\n    if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }\n    uVar15 = uVar15 + 1;\n    if (bVar3) break;\n    uVar28 = (uint)pbVar8[uVar15];\n    uVar29 = uVar30;\n  }\n  for (; uVar30 != 0; uVar30 = uVar30 - 1) {\n    flipThisRun(param_1,pbVar8,uVar30,iVar25);\n  }\n  safefree(pbVar7);\n  safefree(pbVar8);\n  return 3;\n}" type_identifier (function_declarator "do_bidi(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar12;\n  undefined4 uVar9;\n  byte *pbVar10;\n  int iVar11;\n  int iVar13;\n  byte *pbVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  byte bVar21;\n  int iVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  uint uVar28;\n  uint uVar29;\n  uint uVar30;\n  int *piVar31;\n  \n  puVar4 = PTR_DAT_000b5230;\n  if (param_2 < 1) {\n    return 0;\n  }\n  iVar25 = 0;\n  piVar31 = (int *)(param_1 + 4);\n  piVar16 = piVar31;\n  while( true ) {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;\nLAB_00033888:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n    if (param_2 == iVar25) {\n      return 0;\n    }\n  }\n  pbVar7 = (byte *)safemalloc(param_2,1);\n  pbVar8 = (byte *)safemalloc(param_2,1);\n  puVar5 = PTR_DAT_000b5230;\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    uVar15 = piVar6[2];\n    if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }\n    bVar21 = (byte)uVar15;\n    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;\nLAB_00033978:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n  } while (param_2 != iVar25);\n  bVar21 = 0;\nLAB_000339c8:\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar22 = iVar25;\n    iVar25 = 0x269;\n    iVar11 = -1;\n    do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));\n    bVar12 = *(byte *)((int)piVar6 + 0xb);\n    if (bVar12 < 0x12) {\n                    \n                    \n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }\nswitchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;\n    iVar25 = iVar22 + 1;\n    piVar16 = piVar16 + 3;\n    pbVar7[iVar22] = bVar12;\n  } while (param_2 != iVar25);\n  pbVar24 = pbVar7 + iVar25;\n  pbVar14 = pbVar7;\n  do {\n    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }\n    pbVar14 = pbVar14 + 1;\n  } while (pbVar14 != pbVar24);\n  if (*pbVar7 == 0xd) {\n    *pbVar7 = bVar21;\n  }\n  pbVar14 = pbVar7 + 1;\n  if (iVar25 != 1) {\n    do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);\n  }\n  pbVar14 = pbVar7;\n  do {\n    pbVar10 = pbVar14;\n    if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }\n    pbVar14 = pbVar14 + 1;\n    pbVar10 = pbVar7;\n  } while (pbVar14 != pbVar24);\n  do {\n    if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }\n    pbVar10 = pbVar10 + 1;\n  } while (pbVar10 != pbVar24);\n  bVar3 = 1 < iVar22;\n  if (bVar3) {\n    pbVar14 = pbVar7;\n    do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);\n  }\nLAB_00033c70:\n  iVar11 = 0;\n  pbVar14 = pbVar7;\n  do {\n    if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    uVar15 = (uint)pbVar7[iVar11];\n    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }\nLAB_00033cec:\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\nLAB_00033d38:\n  if (iVar25 == 1) {\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }\n  else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }\n  pbVar14 = pbVar7 + param_2 + -1;\n  if (*pbVar14 == 0x12) {\n    bVar12 = pbVar7[param_2 + -2];\n    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }\n  }\nLAB_00033e60:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }\n    if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }\n    *pbVar14 = 0;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033ea8:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }\n    bVar1 = pbVar7[iVar11];\n    if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }\n    *pbVar14 = bVar12 + 1;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f0c:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f68:\n  if (iVar22 != 0) {\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }\nLAB_00033fe8:\n  iVar11 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar23 = *piVar16;\n    iVar26 = 0x269;\n    iVar13 = -1;\n    do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));\n    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }\nLAB_00034050:\n    bVar3 = iVar11 < iVar22;\n    piVar16 = piVar16 + 3;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\n  iVar11 = 0;\n  do {\n    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }\n    doMirror(piVar31 + iVar11 * 3);\n    uVar15 = (uint)(iVar11 < iVar22);\n    iVar11 = iVar11 + 1;\n  } while (uVar15 != 0);\nLAB_000340a4:\n  uVar28 = (uint)*pbVar8;\n  uVar29 = uVar28;\n  while( true ) {\n    bVar3 = iVar22 <= (int)uVar15;\n    uVar30 = uVar28;\n    if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }\n    uVar15 = uVar15 + 1;\n    if (bVar3) break;\n    uVar28 = (uint)pbVar8[uVar15];\n    uVar29 = uVar30;\n  }\n  for (; uVar30 != 0; uVar30 = uVar30 - 1) {\n    flipThisRun(param_1,pbVar8,uVar30,iVar25);\n  }\n  safefree(pbVar7);\n  safefree(pbVar8);\n  return 3;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "int *piVar31;" primitive_type (pointer_declarator "*piVar31" * identifier) ;) (expression_statement "puVar4 = PTR_DAT_000b5230;" (assignment_expression "puVar4 = PTR_DAT_000b5230" identifier = identifier) ;) (if_statement "if (param_2 < 1) {\n    return 0;\n  }" if (parenthesized_expression "(param_2 < 1)" ( (binary_expression "param_2 < 1" identifier < number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "piVar31 = (int *)(param_1 + 4);" (assignment_expression "piVar31 = (int *)(param_1 + 4)" identifier = (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) ;) (expression_statement "piVar16 = piVar31;" (assignment_expression "piVar16 = piVar31" identifier = identifier) ;) (while_statement "while( true ) {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;\nLAB_00033888:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n    if (param_2 == iVar25) {\n      return 0;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;\nLAB_00033888:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n    if (param_2 == iVar25) {\n      return 0;\n    }\n  }" { (expression_statement "iVar11 = 0x269;" (assignment_expression "iVar11 = 0x269" identifier = number_literal) ;) (expression_statement "iVar22 = -1;" (assignment_expression "iVar22 = -1" identifier = number_literal) ;) (do_statement "do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));" do (compound_statement "{\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    }" { (expression_statement "iVar26 = iVar11;" (assignment_expression "iVar26 = iVar11" identifier = identifier) ;) (if_statement "if (iVar26 - iVar22 < 2) goto LAB_00033888;" if (parenthesized_expression "(iVar26 - iVar22 < 2)" ( (binary_expression "iVar26 - iVar22 < 2" (binary_expression "iVar26 - iVar22" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_00033888;" goto statement_identifier ;)) (expression_statement "iVar13 = (iVar26 + iVar22) / 2;" (assignment_expression "iVar13 = (iVar26 + iVar22) / 2" identifier = (binary_expression "(iVar26 + iVar22) / 2" (parenthesized_expression "(iVar26 + iVar22)" ( (binary_expression "iVar26 + iVar22" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c)" ( (binary_expression "PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c" (binary_expression "PTR_DAT_000b5230 + iVar13 * 0xc" identifier + (binary_expression "iVar13 * 0xc" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" identifier = identifier) ;) }) while (parenthesized_expression "((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16))" ( (binary_expression "(*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16)" (parenthesized_expression "(*piVar16 < *piVar6)" ( (binary_expression "*piVar16 < *piVar6" (pointer_expression "*piVar16" * identifier) < (pointer_expression "*piVar6" * identifier)) )) || (parenthesized_expression "(iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16)" ( (comma_expression "iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar11 = iVar26" identifier = identifier) , (comma_expression "iVar22 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar22 = iVar13" identifier = identifier) , (binary_expression "piVar6[1] < *piVar16" (subscript_expression "piVar6[1]" identifier [ number_literal ]) < (pointer_expression "*piVar16" * identifier)))) ))) )) ;) (if_statement "if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;" if (parenthesized_expression "(*(byte *)((int)piVar6 + 0xb) - 3 < 2)" ( (binary_expression "*(byte *)((int)piVar6 + 0xb) - 3 < 2" (binary_expression "*(byte *)((int)piVar6 + 0xb) - 3" (pointer_expression "*(byte *)((int)piVar6 + 0xb)" * (cast_expression "(byte *)((int)piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0xb)" ( (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - number_literal) < number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00033888:\n    iVar25 = iVar25 + 1;" statement_identifier : (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;)) (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" identifier = (binary_expression "piVar16 + 3" identifier + number_literal)) ;) (if_statement "if (param_2 == iVar25) {\n      return 0;\n    }" if (parenthesized_expression "(param_2 == iVar25)" ( (binary_expression "param_2 == iVar25" identifier == identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "pbVar7 = (byte *)safemalloc(param_2,1);" (assignment_expression "pbVar7 = (byte *)safemalloc(param_2,1)" identifier = (cast_expression "(byte *)safemalloc(param_2,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal ))))) ;) (expression_statement "pbVar8 = (byte *)safemalloc(param_2,1);" (assignment_expression "pbVar8 = (byte *)safemalloc(param_2,1)" identifier = (cast_expression "(byte *)safemalloc(param_2,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal ))))) ;) (expression_statement "puVar5 = PTR_DAT_000b5230;" (assignment_expression "puVar5 = PTR_DAT_000b5230" identifier = identifier) ;) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "piVar16 = piVar31;" (assignment_expression "piVar16 = piVar31" identifier = identifier) ;) (do_statement "do {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    uVar15 = piVar6[2];\n    if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }\n    bVar21 = (byte)uVar15;\n    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;\nLAB_00033978:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n  } while (param_2 != iVar25);" do (compound_statement "{\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    uVar15 = piVar6[2];\n    if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }\n    bVar21 = (byte)uVar15;\n    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;\nLAB_00033978:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n  }" { (expression_statement "iVar11 = 0x269;" (assignment_expression "iVar11 = 0x269" identifier = number_literal) ;) (expression_statement "iVar22 = -1;" (assignment_expression "iVar22 = -1" identifier = number_literal) ;) (do_statement "do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));" do (compound_statement "{\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    }" { (expression_statement "iVar26 = iVar11;" (assignment_expression "iVar26 = iVar11" identifier = identifier) ;) (if_statement "if (iVar26 - iVar22 < 2) goto LAB_00033978;" if (parenthesized_expression "(iVar26 - iVar22 < 2)" ( (binary_expression "iVar26 - iVar22 < 2" (binary_expression "iVar26 - iVar22" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_00033978;" goto statement_identifier ;)) (expression_statement "iVar13 = (iVar26 + iVar22) / 2;" (assignment_expression "iVar13 = (iVar26 + iVar22) / 2" identifier = (binary_expression "(iVar26 + iVar22) / 2" (parenthesized_expression "(iVar26 + iVar22)" ( (binary_expression "iVar26 + iVar22" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(puVar4 + iVar13 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar13 * 0xc + 0x5a9c)" ( (binary_expression "puVar4 + iVar13 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar13 * 0xc" identifier + (binary_expression "iVar13 * 0xc" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" identifier = identifier) ;) }) while (parenthesized_expression "((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16))" ( (binary_expression "(*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16)" (parenthesized_expression "(*piVar16 < *piVar6)" ( (binary_expression "*piVar16 < *piVar6" (pointer_expression "*piVar16" * identifier) < (pointer_expression "*piVar6" * identifier)) )) || (parenthesized_expression "(iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16)" ( (comma_expression "iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar11 = iVar26" identifier = identifier) , (comma_expression "iVar22 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar22 = iVar13" identifier = identifier) , (binary_expression "piVar6[1] < *piVar16" (subscript_expression "piVar6[1]" identifier [ number_literal ]) < (pointer_expression "*piVar16" * identifier)))) ))) )) ;) (expression_statement "uVar15 = piVar6[2];" (assignment_expression "uVar15 = piVar6[2]" identifier = (subscript_expression "piVar6[2]" identifier [ number_literal ])) ;) (if_statement "if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }" if (parenthesized_expression "((uVar15 & 0xff) - 3 < 2)" ( (binary_expression "(uVar15 & 0xff) - 3 < 2" (binary_expression "(uVar15 & 0xff) - 3" (parenthesized_expression "(uVar15 & 0xff)" ( (binary_expression "uVar15 & 0xff" identifier & number_literal) )) - number_literal) < number_literal) )) (compound_statement "{\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }" { (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000339c8;" goto statement_identifier ;) })) (expression_statement "bVar21 = (byte)uVar15;" (assignment_expression "bVar21 = (byte)uVar15" identifier = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if ((uVar15 & 0xff) == 0) goto LAB_000339c8;" if (parenthesized_expression "((uVar15 & 0xff) == 0)" ( (binary_expression "(uVar15 & 0xff) == 0" (parenthesized_expression "(uVar15 & 0xff)" ( (binary_expression "uVar15 & 0xff" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000339c8;" goto statement_identifier ;)) (labeled_statement "LAB_00033978:\n    iVar25 = iVar25 + 1;" statement_identifier : (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;)) (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" identifier = (binary_expression "piVar16 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_2 != iVar25)" ( (binary_expression "param_2 != iVar25" identifier != identifier) )) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000339c8:\n  iVar25 = 0;" statement_identifier : (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;)) (expression_statement "piVar16 = piVar31;" (assignment_expression "piVar16 = piVar31" identifier = identifier) ;) (do_statement "do {\n    iVar22 = iVar25;\n    iVar25 = 0x269;\n    iVar11 = -1;\n    do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));\n    bVar12 = *(byte *)((int)piVar6 + 0xb);\n    if (bVar12 < 0x12) {\n                    \n                    \n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }\nswitchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;\n    iVar25 = iVar22 + 1;\n    piVar16 = piVar16 + 3;\n    pbVar7[iVar22] = bVar12;\n  } while (param_2 != iVar25);" do (compound_statement "{\n    iVar22 = iVar25;\n    iVar25 = 0x269;\n    iVar11 = -1;\n    do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));\n    bVar12 = *(byte *)((int)piVar6 + 0xb);\n    if (bVar12 < 0x12) {\n                    \n                    \n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }\nswitchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;\n    iVar25 = iVar22 + 1;\n    piVar16 = piVar16 + 3;\n    pbVar7[iVar22] = bVar12;\n  }" { (expression_statement "iVar22 = iVar25;" (assignment_expression "iVar22 = iVar25" identifier = identifier) ;) (expression_statement "iVar25 = 0x269;" (assignment_expression "iVar25 = 0x269" identifier = number_literal) ;) (expression_statement "iVar11 = -1;" (assignment_expression "iVar11 = -1" identifier = number_literal) ;) (do_statement "do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));" do (compound_statement "{\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    }" { (expression_statement "iVar26 = iVar25;" (assignment_expression "iVar26 = iVar25" identifier = identifier) ;) (if_statement "if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }" if (parenthesized_expression "(iVar26 - iVar11 < 2)" ( (binary_expression "iVar26 - iVar11 < 2" (binary_expression "iVar26 - iVar11" identifier - identifier) < number_literal) )) (compound_statement "{\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }" { (expression_statement "bVar12 = 0x12;" (assignment_expression "bVar12 = 0x12" identifier = number_literal) ;) (goto_statement "goto switchD_00033aa8_caseD_0;" goto statement_identifier ;) })) (expression_statement "iVar13 = (iVar26 + iVar11) / 2;" (assignment_expression "iVar13 = (iVar26 + iVar11) / 2" identifier = (binary_expression "(iVar26 + iVar11) / 2" (parenthesized_expression "(iVar26 + iVar11)" ( (binary_expression "iVar26 + iVar11" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(puVar4 + iVar13 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar13 * 0xc + 0x5a9c)" ( (binary_expression "puVar4 + iVar13 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar13 * 0xc" identifier + (binary_expression "iVar13 * 0xc" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar25 = iVar13;" (assignment_expression "iVar25 = iVar13" identifier = identifier) ;) }) while (parenthesized_expression "((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16))" ( (binary_expression "(*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16)" (parenthesized_expression "(*piVar16 < *piVar6)" ( (binary_expression "*piVar16 < *piVar6" (pointer_expression "*piVar16" * identifier) < (pointer_expression "*piVar6" * identifier)) )) || (parenthesized_expression "(iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16)" ( (comma_expression "iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar25 = iVar26" identifier = identifier) , (comma_expression "iVar11 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar11 = iVar13" identifier = identifier) , (binary_expression "piVar6[1] < *piVar16" (subscript_expression "piVar6[1]" identifier [ number_literal ]) < (pointer_expression "*piVar16" * identifier)))) ))) )) ;) (expression_statement "bVar12 = *(byte *)((int)piVar6 + 0xb);" (assignment_expression "bVar12 = *(byte *)((int)piVar6 + 0xb)" identifier = (pointer_expression "*(byte *)((int)piVar6 + 0xb)" * (cast_expression "(byte *)((int)piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0xb)" ( (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (bVar12 < 0x12) {\n                    \n                    \n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }" if (parenthesized_expression "(bVar12 < 0x12)" ( (binary_expression "bVar12 < 0x12" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }" { (expression_statement "uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();" (assignment_expression "uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))()" identifier = (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54))" * (cast_expression "(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54))" ( (binary_expression "&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)" * (cast_expression "(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + (uint)bVar12 * 4 + 0x5a54)" ( (binary_expression "puVar5 + (uint)bVar12 * 4 + 0x5a54" (binary_expression "puVar5 + (uint)bVar12 * 4" identifier + (binary_expression "(uint)bVar12 * 4" (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( )))) ;) (return_statement "return uVar9;" return identifier ;) })) (labeled_statement "switchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;" statement_identifier : (expression_statement "pbVar8[iVar22] = bVar21;" (assignment_expression "pbVar8[iVar22] = bVar21" (subscript_expression "pbVar8[iVar22]" identifier [ identifier ]) = identifier) ;)) (expression_statement "iVar25 = iVar22 + 1;" (assignment_expression "iVar25 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" identifier = (binary_expression "piVar16 + 3" identifier + number_literal)) ;) (expression_statement "pbVar7[iVar22] = bVar12;" (assignment_expression "pbVar7[iVar22] = bVar12" (subscript_expression "pbVar7[iVar22]" identifier [ identifier ]) = identifier) ;) }) while (parenthesized_expression "(param_2 != iVar25)" ( (binary_expression "param_2 != iVar25" identifier != identifier) )) ;) (expression_statement "pbVar24 = pbVar7 + iVar25;" (assignment_expression "pbVar24 = pbVar7 + iVar25" identifier = (binary_expression "pbVar7 + iVar25" identifier + identifier)) ;) (expression_statement "pbVar14 = pbVar7;" (assignment_expression "pbVar14 = pbVar7" identifier = identifier) ;) (do_statement "do {\n    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }\n    pbVar14 = pbVar14 + 1;\n  } while (pbVar14 != pbVar24);" do (compound_statement "{\n    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }\n    pbVar14 = pbVar14 + 1;\n  }" { (if_statement "if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }" if (parenthesized_expression "((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0))" ( (binary_expression "(*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)" (parenthesized_expression "(*pbVar14 < 8)" ( (binary_expression "*pbVar14 < 8" (pointer_expression "*pbVar14" * identifier) < number_literal) )) && (parenthesized_expression "((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)" ( (binary_expression "(1 << (*pbVar14 & 0x1f) & 0xe6U) != 0" (parenthesized_expression "(1 << (*pbVar14 & 0x1f) & 0xe6U)" ( (binary_expression "1 << (*pbVar14 & 0x1f) & 0xe6U" (binary_expression "1 << (*pbVar14 & 0x1f)" number_literal << (parenthesized_expression "(*pbVar14 & 0x1f)" ( (binary_expression "*pbVar14 & 0x1f" (pointer_expression "*pbVar14" * identifier) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      *pbVar14 = 0xe;\n    }" { (expression_statement "*pbVar14 = 0xe;" (assignment_expression "*pbVar14 = 0xe" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) })) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar14 != pbVar24)" ( (binary_expression "pbVar14 != pbVar24" identifier != identifier) )) ;) (if_statement "if (*pbVar7 == 0xd) {\n    *pbVar7 = bVar21;\n  }" if (parenthesized_expression "(*pbVar7 == 0xd)" ( (binary_expression "*pbVar7 == 0xd" (pointer_expression "*pbVar7" * identifier) == number_literal) )) (compound_statement "{\n    *pbVar7 = bVar21;\n  }" { (expression_statement "*pbVar7 = bVar21;" (assignment_expression "*pbVar7 = bVar21" (pointer_expression "*pbVar7" * identifier) = identifier) ;) })) (expression_statement "pbVar14 = pbVar7 + 1;" (assignment_expression "pbVar14 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (if_statement "if (iVar25 != 1) {\n    do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);\n  }" if (parenthesized_expression "(iVar25 != 1)" ( (binary_expression "iVar25 != 1" identifier != number_literal) )) (compound_statement "{\n    do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);\n  }" { (do_statement "do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);" do (compound_statement "{\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    }" { (if_statement "if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }" if (parenthesized_expression "(*pbVar14 == 0xd)" ( (binary_expression "*pbVar14 == 0xd" (pointer_expression "*pbVar14" * identifier) == number_literal) )) (compound_statement "{\n        *pbVar14 = pbVar14[-1];\n      }" { (expression_statement "*pbVar14 = pbVar14[-1];" (assignment_expression "*pbVar14 = pbVar14[-1]" (pointer_expression "*pbVar14" * identifier) = (subscript_expression "pbVar14[-1]" identifier [ number_literal ])) ;) })) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar14 != pbVar24)" ( (binary_expression "pbVar14 != pbVar24" identifier != identifier) )) ;) })) (expression_statement "pbVar14 = pbVar7;" (assignment_expression "pbVar14 = pbVar7" identifier = identifier) ;) (do_statement "do {\n    pbVar10 = pbVar14;\n    if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }\n    pbVar14 = pbVar14 + 1;\n    pbVar10 = pbVar7;\n  } while (pbVar14 != pbVar24);" do (compound_statement "{\n    pbVar10 = pbVar14;\n    if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }\n    pbVar14 = pbVar14 + 1;\n    pbVar10 = pbVar7;\n  }" { (expression_statement "pbVar10 = pbVar14;" (assignment_expression "pbVar10 = pbVar14" identifier = identifier) ;) (if_statement "if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }" if (parenthesized_expression "(*pbVar14 == 8)" ( (binary_expression "*pbVar14 == 8" (pointer_expression "*pbVar14" * identifier) == number_literal) )) (compound_statement "{\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }" { (while_statement "while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }" while (parenthesized_expression "(pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1)" ( (comma_expression "pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1" (assignment_expression "pbVar10 = pbVar10 + -1" identifier = (binary_expression "pbVar10 + -1" identifier + number_literal)) , (binary_expression "pbVar10 != pbVar7 + -1" identifier != (binary_expression "pbVar7 + -1" identifier + number_literal))) )) (compound_statement "{\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }" { (expression_statement "bVar12 = *pbVar10;" (assignment_expression "bVar12 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (if_statement "if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }" if (parenthesized_expression "(bVar12 == 4)" ( (binary_expression "bVar12 == 4" identifier == number_literal) )) (compound_statement "{\n          *pbVar14 = 0xb;\n          break;\n        }" { (expression_statement "*pbVar14 = 0xb;" (assignment_expression "*pbVar14 = 0xb" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) (break_statement "break;" break ;) })) (if_statement "if ((bVar12 == 3) || (bVar12 == 0)) break;" if (parenthesized_expression "((bVar12 == 3) || (bVar12 == 0))" ( (binary_expression "(bVar12 == 3) || (bVar12 == 0)" (parenthesized_expression "(bVar12 == 3)" ( (binary_expression "bVar12 == 3" identifier == number_literal) )) || (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) ))) )) (break_statement "break;" break ;)) })) })) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "pbVar10 = pbVar7;" (assignment_expression "pbVar10 = pbVar7" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar14 != pbVar24)" ( (binary_expression "pbVar14 != pbVar24" identifier != identifier) )) ;) (do_statement "do {\n    if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }\n    pbVar10 = pbVar10 + 1;\n  } while (pbVar10 != pbVar24);" do (compound_statement "{\n    if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }\n    pbVar10 = pbVar10 + 1;\n  }" { (if_statement "if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }" if (parenthesized_expression "(*pbVar10 == 4)" ( (binary_expression "*pbVar10 == 4" (pointer_expression "*pbVar10" * identifier) == number_literal) )) (compound_statement "{\n      *pbVar10 = 3;\n    }" { (expression_statement "*pbVar10 = 3;" (assignment_expression "*pbVar10 = 3" (pointer_expression "*pbVar10" * identifier) = number_literal) ;) })) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar10 != pbVar24)" ( (binary_expression "pbVar10 != pbVar24" identifier != identifier) )) ;) (expression_statement "bVar3 = 1 < iVar22;" (assignment_expression "bVar3 = 1 < iVar22" identifier = (binary_expression "1 < iVar22" number_literal < identifier)) ;) (if_statement "if (bVar3) {\n    pbVar14 = pbVar7;\n    do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);\n  }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n    pbVar14 = pbVar7;\n    do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);\n  }" { (expression_statement "pbVar14 = pbVar7;" (assignment_expression "pbVar14 = pbVar7" identifier = identifier) ;) (do_statement "do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);" do (compound_statement "{\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    }" { (while_statement "while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }" while (parenthesized_expression "(pbVar14[1] != 9)" ( (binary_expression "pbVar14[1] != 9" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }" { (if_statement "if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }" if (parenthesized_expression "(pbVar14[1] == 0xc)" ( (binary_expression "pbVar14[1] == 0xc" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }" { (if_statement "if (*pbVar14 == 8) goto LAB_00033c54;" if (parenthesized_expression "(*pbVar14 == 8)" ( (binary_expression "*pbVar14 == 8" (pointer_expression "*pbVar14" * identifier) == number_literal) )) (goto_statement "goto LAB_00033c54;" goto statement_identifier ;)) (if_statement "if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }" if (parenthesized_expression "((*pbVar14 == 0xb) && (pbVar14[2] == 0xb))" ( (binary_expression "(*pbVar14 == 0xb) && (pbVar14[2] == 0xb)" (parenthesized_expression "(*pbVar14 == 0xb)" ( (binary_expression "*pbVar14 == 0xb" (pointer_expression "*pbVar14" * identifier) == number_literal) )) && (parenthesized_expression "(pbVar14[2] == 0xb)" ( (binary_expression "pbVar14[2] == 0xb" (subscript_expression "pbVar14[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n            pbVar14[1] = 0xb;\n          }" { (expression_statement "pbVar14[1] = 0xb;" (assignment_expression "pbVar14[1] = 0xb" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) = number_literal) ;) })) })) (labeled_statement "LAB_00033c30:\n        pbVar14 = pbVar14 + 1;" statement_identifier : (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;)) (if_statement "if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;" if (parenthesized_expression "(pbVar7 + iVar22 + -1 == pbVar14)" ( (binary_expression "pbVar7 + iVar22 + -1 == pbVar14" (binary_expression "pbVar7 + iVar22 + -1" (binary_expression "pbVar7 + iVar22" identifier + identifier) + number_literal) == identifier) )) (goto_statement "goto LAB_00033c70;" goto statement_identifier ;)) })) (if_statement "if (*pbVar14 != 8) goto LAB_00033c30;" if (parenthesized_expression "(*pbVar14 != 8)" ( (binary_expression "*pbVar14 != 8" (pointer_expression "*pbVar14" * identifier) != number_literal) )) (goto_statement "goto LAB_00033c30;" goto statement_identifier ;)) (labeled_statement "LAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;" statement_identifier : (if_statement "if (pbVar14[2] != 8) goto LAB_00033c30;" if (parenthesized_expression "(pbVar14[2] != 8)" ( (binary_expression "pbVar14[2] != 8" (subscript_expression "pbVar14[2]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00033c30;" goto statement_identifier ;))) (expression_statement "pbVar14[1] = 8;" (assignment_expression "pbVar14[1] = 8" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar7 + iVar22 + -1 != pbVar14)" ( (binary_expression "pbVar7 + iVar22 + -1 != pbVar14" (binary_expression "pbVar7 + iVar22 + -1" (binary_expression "pbVar7 + iVar22" identifier + identifier) + number_literal) != identifier) )) ;) })) (labeled_statement "LAB_00033c70:\n  iVar11 = 0;" statement_identifier : (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;)) (expression_statement "pbVar14 = pbVar7;" (assignment_expression "pbVar14 = pbVar7" identifier = identifier) ;) (do_statement "do {\n    if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar2);" do (compound_statement "{\n    if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n    pbVar14 = pbVar14 + 1;\n  }" { (if_statement "if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }" if (parenthesized_expression "(*pbVar14 == 10)" ( (binary_expression "*pbVar14 == 10" (pointer_expression "*pbVar14" * identifier) == number_literal) )) (compound_statement "{\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }" { (if_statement "if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }" if (parenthesized_expression "((iVar11 == 0) || (pbVar14[-1] != 8))" ( (binary_expression "(iVar11 == 0) || (pbVar14[-1] != 8)" (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) || (parenthesized_expression "(pbVar14[-1] != 8)" ( (binary_expression "pbVar14[-1] != 8" (subscript_expression "pbVar14[-1]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }" { (if_statement "if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }" if (parenthesized_expression "(iVar11 < iVar22)" ( (binary_expression "iVar11 < iVar22" identifier < identifier) )) (compound_statement "{\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }" { (if_statement "if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }" if (parenthesized_expression "(pbVar14[1] == 8)" ( (binary_expression "pbVar14[1] == 8" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_000342a8:\n            *pbVar14 = 8;\n          }" { (labeled_statement "LAB_000342a8:\n            *pbVar14 = 8;" statement_identifier : (expression_statement "*pbVar14 = 8;" (assignment_expression "*pbVar14 = 8" (pointer_expression "*pbVar14" * identifier) = number_literal) ;)) }) (else_clause "else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }" else (if_statement "if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }" if (parenthesized_expression "(pbVar14[1] == 10)" ( (binary_expression "pbVar14[1] == 10" (subscript_expression "pbVar14[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }" { (expression_statement "pbVar24 = pbVar7 + iVar11 + 1;" (assignment_expression "pbVar24 = pbVar7 + iVar11 + 1" identifier = (binary_expression "pbVar7 + iVar11 + 1" (binary_expression "pbVar7 + iVar11" identifier + identifier) + number_literal)) ;) (do_statement "do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);" do (compound_statement "{\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            }" { (expression_statement "bVar12 = *pbVar24;" (assignment_expression "bVar12 = *pbVar24" identifier = (pointer_expression "*pbVar24" * identifier)) ;) (if_statement "if (pbVar7 + iVar22 == pbVar24) break;" if (parenthesized_expression "(pbVar7 + iVar22 == pbVar24)" ( (binary_expression "pbVar7 + iVar22 == pbVar24" (binary_expression "pbVar7 + iVar22" identifier + identifier) == identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar12 == 10)" ( (binary_expression "bVar12 == 10" identifier == number_literal) )) ;) (if_statement "if (bVar12 == 8) goto LAB_000342a8;" if (parenthesized_expression "(bVar12 == 8)" ( (binary_expression "bVar12 == 8" identifier == number_literal) )) (goto_statement "goto LAB_000342a8;" goto statement_identifier ;)) })))) })) }) (else_clause "else {\n        *pbVar14 = 8;\n      }" else (compound_statement "{\n        *pbVar14 = 8;\n      }" { (expression_statement "*pbVar14 = 8;" (assignment_expression "*pbVar14 = 8" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) }))) })) (expression_statement "bVar2 = iVar11 < iVar22;" (assignment_expression "bVar2 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n    uVar15 = (uint)pbVar7[iVar11];\n    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);" do (compound_statement "{\n    uVar15 = (uint)pbVar7[iVar11];\n    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  }" { (expression_statement "uVar15 = (uint)pbVar7[iVar11];" (assignment_expression "uVar15 = (uint)pbVar7[iVar11]" identifier = (cast_expression "(uint)pbVar7[iVar11]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar7[iVar11]" identifier [ identifier ]))) ;) (if_statement "if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }" if (parenthesized_expression "((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0))" ( (binary_expression "(uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)" (parenthesized_expression "(uVar15 < 0xd)" ( (binary_expression "uVar15 < 0xd" identifier < number_literal) )) && (parenthesized_expression "((1 << (uVar15 & 0x1f) & 0x1600U) != 0)" ( (binary_expression "(1 << (uVar15 & 0x1f) & 0x1600U) != 0" (parenthesized_expression "(1 << (uVar15 & 0x1f) & 0x1600U)" ( (binary_expression "1 << (uVar15 & 0x1f) & 0x1600U" (binary_expression "1 << (uVar15 & 0x1f)" number_literal << (parenthesized_expression "(uVar15 & 0x1f)" ( (binary_expression "uVar15 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      pbVar7[iVar11] = 0x12;\n    }" { (expression_statement "pbVar7[iVar11] = 0x12;" (assignment_expression "pbVar7[iVar11] = 0x12" (subscript_expression "pbVar7[iVar11]" identifier [ identifier ]) = number_literal) ;) })) (expression_statement "bVar2 = iVar11 < iVar22;" (assignment_expression "bVar2 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n    while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }\nLAB_00033cec:\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);" do (compound_statement "{\n    while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }\nLAB_00033cec:\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  }" { (while_statement "while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }" { (if_statement "if (pbVar7[iVar11] != 8) break;" if (parenthesized_expression "(pbVar7[iVar11] != 8)" ( (binary_expression "pbVar7[iVar11] != 8" (subscript_expression "pbVar7[iVar11]" identifier [ identifier ]) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar15 = 8;" (assignment_expression "uVar15 = 8" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar7 + -1 + iVar11;" (assignment_expression "pbVar14 = pbVar7 + -1 + iVar11" identifier = (binary_expression "pbVar7 + -1 + iVar11" (binary_expression "pbVar7 + -1" identifier + number_literal) + identifier)) ;) (do_statement "do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);" do (compound_statement "{\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      }" { (if_statement "if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;" if (parenthesized_expression "((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14))" ( (binary_expression "(uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)" (parenthesized_expression "(uVar15 - 3 < 2)" ( (binary_expression "uVar15 - 3 < 2" (binary_expression "uVar15 - 3" identifier - number_literal) < number_literal) )) || (parenthesized_expression "(pbVar7 + -1 == pbVar14)" ( (binary_expression "pbVar7 + -1 == pbVar14" (binary_expression "pbVar7 + -1" identifier + number_literal) == identifier) ))) )) (goto_statement "goto LAB_00033cec;" goto statement_identifier ;)) (expression_statement "uVar15 = (uint)*pbVar14;" (assignment_expression "uVar15 = (uint)*pbVar14" identifier = (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar14 = pbVar14 + -1;" (assignment_expression "pbVar14 = pbVar14 + -1" identifier = (binary_expression "pbVar14 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) ;) (expression_statement "bVar2 = iVar22 <= iVar11;" (assignment_expression "bVar2 = iVar22 <= iVar11" identifier = (binary_expression "iVar22 <= iVar11" identifier <= identifier)) ;) (expression_statement "pbVar7[iVar11] = 0;" (assignment_expression "pbVar7[iVar11] = 0" (subscript_expression "pbVar7[iVar11]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (if_statement "if (bVar2) goto LAB_00033d38;" if (parenthesized_expression "(bVar2)" ( identifier )) (goto_statement "goto LAB_00033d38;" goto statement_identifier ;)) })) (labeled_statement "LAB_00033cec:\n    bVar2 = iVar11 < iVar22;" statement_identifier : (expression_statement "bVar2 = iVar11 < iVar22;" (assignment_expression "bVar2 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;)) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;) (labeled_statement "LAB_00033d38:\n  if (iVar25 == 1) {\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }\n  else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }" statement_identifier : (if_statement "if (iVar25 == 1) {\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }\n  else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }" if (parenthesized_expression "(iVar25 == 1)" ( (binary_expression "iVar25 == 1" identifier == number_literal) )) (compound_statement "{\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }" { (if_statement "if (!bVar3) goto LAB_00033e60;" if (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) (goto_statement "goto LAB_00033e60;" goto statement_identifier ;)) (labeled_statement "LAB_00033d58:\n    iVar11 = 1;" statement_identifier : (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;)) (do_statement "do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);" do (compound_statement "{\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    }" { (while_statement "while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }" while (parenthesized_expression "(pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12)" ( (comma_expression "pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12" (assignment_expression "pbVar14 = pbVar7 + iVar11" identifier = (binary_expression "pbVar7 + iVar11" identifier + identifier)) , (binary_expression "*pbVar14 != 0x12" (pointer_expression "*pbVar14" * identifier) != number_literal)) )) (compound_statement "{\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }" { (labeled_statement "LAB_00033d74:\n        iVar11 = iVar11 + 1;" statement_identifier : (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;" statement_identifier : (if_statement "if (iVar22 <= iVar11) goto LAB_00033e38;" if (parenthesized_expression "(iVar22 <= iVar11)" ( (binary_expression "iVar22 <= iVar11" identifier <= identifier) )) (goto_statement "goto LAB_00033e38;" goto statement_identifier ;))) })) (expression_statement "bVar12 = pbVar14[-1];" (assignment_expression "bVar12 = pbVar14[-1]" identifier = (subscript_expression "pbVar14[-1]" identifier [ number_literal ])) ;) (expression_statement "iVar26 = iVar11;" (assignment_expression "iVar26 = iVar11" identifier = identifier) ;) (if_statement "if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }" { (do_statement "do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);" do (compound_statement "{\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        }" { (expression_statement "iVar13 = iVar26;" (assignment_expression "iVar13 = iVar26" identifier = identifier) ;) (expression_statement "iVar26 = iVar13 + 1;" (assignment_expression "iVar26 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (if_statement "if (iVar22 <= iVar26) break;" if (parenthesized_expression "(iVar22 <= iVar26)" ( (binary_expression "iVar22 <= iVar26" identifier <= identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(pbVar7[iVar26] == 0x12)" ( (binary_expression "pbVar7[iVar26] == 0x12" (subscript_expression "pbVar7[iVar26]" identifier [ identifier ]) == number_literal) )) ;) (if_statement "if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }" if (parenthesized_expression "(pbVar7[iVar26] == 0)" ( (binary_expression "pbVar7[iVar26] == 0" (subscript_expression "pbVar7[iVar26]" identifier [ identifier ]) == number_literal) )) (compound_statement "{\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }" { (if_statement "if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }" if (parenthesized_expression "(iVar11 < iVar26)" ( (binary_expression "iVar11 < iVar26" identifier < identifier) )) (compound_statement "{\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }" { (while_statement "while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }" { (expression_statement "*pbVar14 = 0;" (assignment_expression "*pbVar14 = 0" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) (if_statement "if (iVar13 <= iVar11) break;" if (parenthesized_expression "(iVar13 <= iVar11)" ( (binary_expression "iVar13 <= iVar11" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar14 = pbVar7 + iVar11 + 1;" (assignment_expression "pbVar14 = pbVar7 + iVar11 + 1" identifier = (binary_expression "pbVar7 + iVar11 + 1" (binary_expression "pbVar7 + iVar11" identifier + identifier) + number_literal)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar11 = iVar11 + 2;" (assignment_expression "iVar11 = iVar11 + 2" identifier = (binary_expression "iVar11 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n            iVar11 = iVar11 + 1;\n          }" else (compound_statement "{\n            iVar11 = iVar11 + 1;\n          }" { (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }))) (goto_statement "goto LAB_00033d78;" goto statement_identifier ;) })) (goto_statement "goto LAB_00033d74;" goto statement_identifier ;) })) (if_statement "if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;" if (parenthesized_expression "(((bVar12 & 0xf7) != 3) && (bVar12 != 8))" ( (binary_expression "((bVar12 & 0xf7) != 3) && (bVar12 != 8)" (parenthesized_expression "((bVar12 & 0xf7) != 3)" ( (binary_expression "(bVar12 & 0xf7) != 3" (parenthesized_expression "(bVar12 & 0xf7)" ( (binary_expression "bVar12 & 0xf7" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(bVar12 != 8)" ( (binary_expression "bVar12 != 8" identifier != number_literal) ))) )) (goto_statement "goto LAB_00033d74;" goto statement_identifier ;)) (if_statement "if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }" if (parenthesized_expression "(iVar22 <= iVar11)" ( (binary_expression "iVar22 <= iVar11" identifier <= identifier) )) (compound_statement "{\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }" { (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00033d78;" goto statement_identifier ;) })) (do_statement "do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);" do (compound_statement "{\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      }" { (expression_statement "iVar23 = iVar26;" (assignment_expression "iVar23 = iVar26" identifier = identifier) ;) (expression_statement "iVar26 = iVar23 + 1;" (assignment_expression "iVar26 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "bVar12 = pbVar7[iVar26];" (assignment_expression "bVar12 = pbVar7[iVar26]" identifier = (subscript_expression "pbVar7[iVar26]" identifier [ identifier ])) ;) (expression_statement "iVar13 = iVar22;" (assignment_expression "iVar13 = iVar22" identifier = identifier) ;) (if_statement "if (iVar26 == iVar22) break;" if (parenthesized_expression "(iVar26 == iVar22)" ( (binary_expression "iVar26 == iVar22" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar26;" (assignment_expression "iVar13 = iVar26" identifier = identifier) ;) }) while (parenthesized_expression "(bVar12 == 0x12)" ( (binary_expression "bVar12 == 0x12" identifier == number_literal) )) ;) (if_statement "if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;" if (parenthesized_expression "(((bVar12 & 0xf7) != 3) && (bVar12 != 8))" ( (binary_expression "((bVar12 & 0xf7) != 3) && (bVar12 != 8)" (parenthesized_expression "((bVar12 & 0xf7) != 3)" ( (binary_expression "(bVar12 & 0xf7) != 3" (parenthesized_expression "(bVar12 & 0xf7)" ( (binary_expression "bVar12 & 0xf7" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(bVar12 != 8)" ( (binary_expression "bVar12 != 8" identifier != number_literal) ))) )) (goto_statement "goto LAB_00033d74;" goto statement_identifier ;)) (if_statement "if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }" if (parenthesized_expression "(iVar13 <= iVar11)" ( (binary_expression "iVar13 <= iVar11" identifier <= identifier) )) (compound_statement "{\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }" { (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00033d78;" goto statement_identifier ;) })) (while_statement "while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }" { (expression_statement "*pbVar14 = 3;" (assignment_expression "*pbVar14 = 3" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) (if_statement "if (iVar23 <= iVar11) break;" if (parenthesized_expression "(iVar23 <= iVar11)" ( (binary_expression "iVar23 <= iVar11" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar14 = pbVar7 + iVar11 + 1;" (assignment_expression "pbVar14 = pbVar7 + iVar11 + 1" identifier = (binary_expression "pbVar7 + iVar11 + 1" (binary_expression "pbVar7 + iVar11" identifier + identifier) + number_literal)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar11 = iVar11 + 2;" (assignment_expression "iVar11 = iVar11 + 2" identifier = (binary_expression "iVar11 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 < iVar22)" ( (binary_expression "iVar11 < iVar22" identifier < identifier) )) ;) (labeled_statement "LAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;" statement_identifier : (if_statement "if (iVar25 == 1) goto LAB_00033e60;" if (parenthesized_expression "(iVar25 == 1)" ( (binary_expression "iVar25 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00033e60;" goto statement_identifier ;))) }) (else_clause "else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }" else (compound_statement "{\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }" { (if_statement "if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }" if (parenthesized_expression "(*pbVar7 == 0x12)" ( (binary_expression "*pbVar7 == 0x12" (pointer_expression "*pbVar7" * identifier) == number_literal) )) (compound_statement "{\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }" { (expression_statement "bVar12 = pbVar7[1];" (assignment_expression "bVar12 = pbVar7[1]" identifier = (subscript_expression "pbVar7[1]" identifier [ number_literal ])) ;) (if_statement "if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }" if (parenthesized_expression "(((bVar12 & 0xf7) == 3) || (bVar12 == 8))" ( (binary_expression "((bVar12 & 0xf7) == 3) || (bVar12 == 8)" (parenthesized_expression "((bVar12 & 0xf7) == 3)" ( (binary_expression "(bVar12 & 0xf7) == 3" (parenthesized_expression "(bVar12 & 0xf7)" ( (binary_expression "bVar12 & 0xf7" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar12 == 8)" ( (binary_expression "bVar12 == 8" identifier == number_literal) ))) )) (compound_statement "{\n        *pbVar7 = 3;\n      }" { (expression_statement "*pbVar7 = 3;" (assignment_expression "*pbVar7 = 3" (pointer_expression "*pbVar7" * identifier) = number_literal) ;) }) (else_clause "else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }" else (if_statement "if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        *pbVar7 = 0;\n      }" { (expression_statement "*pbVar7 = 0;" (assignment_expression "*pbVar7 = 0" (pointer_expression "*pbVar7" * identifier) = number_literal) ;) })))) })) (if_statement "if (bVar3) goto LAB_00033d58;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_00033d58;" goto statement_identifier ;)) })))) (expression_statement "pbVar14 = pbVar7 + param_2 + -1;" (assignment_expression "pbVar14 = pbVar7 + param_2 + -1" identifier = (binary_expression "pbVar7 + param_2 + -1" (binary_expression "pbVar7 + param_2" identifier + identifier) + number_literal)) ;) (if_statement "if (*pbVar14 == 0x12) {\n    bVar12 = pbVar7[param_2 + -2];\n    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }\n  }" if (parenthesized_expression "(*pbVar14 == 0x12)" ( (binary_expression "*pbVar14 == 0x12" (pointer_expression "*pbVar14" * identifier) == number_literal) )) (compound_statement "{\n    bVar12 = pbVar7[param_2 + -2];\n    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }\n  }" { (expression_statement "bVar12 = pbVar7[param_2 + -2];" (assignment_expression "bVar12 = pbVar7[param_2 + -2]" identifier = (subscript_expression "pbVar7[param_2 + -2]" identifier [ (binary_expression "param_2 + -2" identifier + number_literal) ])) ;) (if_statement "if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }" if (parenthesized_expression "(((bVar12 & 0xf7) == 3) || (bVar12 == 8))" ( (binary_expression "((bVar12 & 0xf7) == 3) || (bVar12 == 8)" (parenthesized_expression "((bVar12 & 0xf7) == 3)" ( (binary_expression "(bVar12 & 0xf7) == 3" (parenthesized_expression "(bVar12 & 0xf7)" ( (binary_expression "bVar12 & 0xf7" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar12 == 8)" ( (binary_expression "bVar12 == 8" identifier == number_literal) ))) )) (compound_statement "{\n      *pbVar14 = 3;\n    }" { (expression_statement "*pbVar14 = 3;" (assignment_expression "*pbVar14 = 3" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) }) (else_clause "else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }" else (if_statement "if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      *pbVar14 = 0;\n    }" { (expression_statement "*pbVar14 = 0;" (assignment_expression "*pbVar14 = 0" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) })))) })) (labeled_statement "LAB_00033e60:\n  iVar11 = 0;" statement_identifier : (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;)) (do_statement "do {\n    while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }\n    if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }\n    *pbVar14 = 0;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);" do (compound_statement "{\n    while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }\n    if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }\n    *pbVar14 = 0;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  }" { (while_statement "while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }" { (expression_statement "pbVar14 = pbVar7 + iVar11;" (assignment_expression "pbVar14 = pbVar7 + iVar11" identifier = (binary_expression "pbVar7 + iVar11" identifier + identifier)) ;) (if_statement "if (*pbVar14 == 0x12) break;" if (parenthesized_expression "(*pbVar14 == 0x12)" ( (binary_expression "*pbVar14 == 0x12" (pointer_expression "*pbVar14" * identifier) == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;" statement_identifier : (expression_statement "bVar3 = iVar22 <= iVar11;" (assignment_expression "bVar3 = iVar22 <= iVar11" identifier = (binary_expression "iVar22 <= iVar11" identifier <= identifier)) ;)) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (if_statement "if (bVar3) goto LAB_00033ea8;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_00033ea8;" goto statement_identifier ;)) })) (if_statement "if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }" if (parenthesized_expression "((pbVar8[iVar11] & 1) != 0)" ( (binary_expression "(pbVar8[iVar11] & 1) != 0" (parenthesized_expression "(pbVar8[iVar11] & 1)" ( (binary_expression "pbVar8[iVar11] & 1" (subscript_expression "pbVar8[iVar11]" identifier [ identifier ]) & number_literal) )) != number_literal) )) (compound_statement "{\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }" { (expression_statement "*pbVar14 = 3;" (assignment_expression "*pbVar14 = 3" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) (goto_statement "goto LAB_00033e6c;" goto statement_identifier ;) })) (expression_statement "*pbVar14 = 0;" (assignment_expression "*pbVar14 = 0" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) (expression_statement "bVar3 = iVar11 < iVar22;" (assignment_expression "bVar3 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar3)" ( identifier )) ;) (labeled_statement "LAB_00033ea8:\n  iVar11 = 0;" statement_identifier : (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;)) (do_statement "do {\n    while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }\n    bVar1 = pbVar7[iVar11];\n    if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }\n    *pbVar14 = bVar12 + 1;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);" do (compound_statement "{\n    while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }\n    bVar1 = pbVar7[iVar11];\n    if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }\n    *pbVar14 = bVar12 + 1;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  }" { (while_statement "while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }" { (expression_statement "pbVar14 = pbVar8 + iVar11;" (assignment_expression "pbVar14 = pbVar8 + iVar11" identifier = (binary_expression "pbVar8 + iVar11" identifier + identifier)) ;) (expression_statement "bVar12 = *pbVar14;" (assignment_expression "bVar12 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (if_statement "if ((bVar12 & 1) == 0) break;" if (parenthesized_expression "((bVar12 & 1) == 0)" ( (binary_expression "(bVar12 & 1) == 0" (parenthesized_expression "(bVar12 & 1)" ( (binary_expression "bVar12 & 1" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;" statement_identifier : (expression_statement "bVar3 = iVar22 <= iVar11;" (assignment_expression "bVar3 = iVar22 <= iVar11" identifier = (binary_expression "iVar22 <= iVar11" identifier <= identifier)) ;)) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (if_statement "if (bVar3) goto LAB_00033f0c;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_00033f0c;" goto statement_identifier ;)) })) (expression_statement "bVar1 = pbVar7[iVar11];" (assignment_expression "bVar1 = pbVar7[iVar11]" identifier = (subscript_expression "pbVar7[iVar11]" identifier [ identifier ])) ;) (if_statement "if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }" if (parenthesized_expression "(bVar1 != 3)" ( (binary_expression "bVar1 != 3" identifier != number_literal) )) (compound_statement "{\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }" { (if_statement "if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }" if (parenthesized_expression "((bVar1 == 0xb) || (bVar1 == 8))" ( (binary_expression "(bVar1 == 0xb) || (bVar1 == 8)" (parenthesized_expression "(bVar1 == 0xb)" ( (binary_expression "bVar1 == 0xb" identifier == number_literal) )) || (parenthesized_expression "(bVar1 == 8)" ( (binary_expression "bVar1 == 8" identifier == number_literal) ))) )) (compound_statement "{\n        *pbVar14 = bVar12 + 2;\n      }" { (expression_statement "*pbVar14 = bVar12 + 2;" (assignment_expression "*pbVar14 = bVar12 + 2" (pointer_expression "*pbVar14" * identifier) = (binary_expression "bVar12 + 2" identifier + number_literal)) ;) })) (goto_statement "goto LAB_00033ecc;" goto statement_identifier ;) })) (expression_statement "*pbVar14 = bVar12 + 1;" (assignment_expression "*pbVar14 = bVar12 + 1" (pointer_expression "*pbVar14" * identifier) = (binary_expression "bVar12 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = iVar11 < iVar22;" (assignment_expression "bVar3 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar3)" ( identifier )) ;) (labeled_statement "LAB_00033f0c:\n  iVar11 = 0;" statement_identifier : (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;)) (do_statement "do {\n    while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);" do (compound_statement "{\n    while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  }" { (while_statement "while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }" { (expression_statement "bVar12 = pbVar8[iVar11];" (assignment_expression "bVar12 = pbVar8[iVar11]" identifier = (subscript_expression "pbVar8[iVar11]" identifier [ identifier ])) ;) (if_statement "if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;" if (parenthesized_expression "(((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb))))" ( (binary_expression "((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))" (parenthesized_expression "((bVar12 & 1) == 0)" ( (binary_expression "(bVar12 & 1) == 0" (parenthesized_expression "(bVar12 & 1)" ( (binary_expression "bVar12 & 1" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))" ( (parenthesized_expression "((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb))" ( (binary_expression "(pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)" (binary_expression "(pbVar7[iVar11] & 0xf7) != 0" (parenthesized_expression "(pbVar7[iVar11] & 0xf7)" ( (binary_expression "pbVar7[iVar11] & 0xf7" (subscript_expression "pbVar7[iVar11]" identifier [ identifier ]) & number_literal) )) != number_literal) && (parenthesized_expression "(pbVar7[iVar11] != 0xb)" ( (binary_expression "pbVar7[iVar11] != 0xb" (subscript_expression "pbVar7[iVar11]" identifier [ identifier ]) != number_literal) ))) )) ))) )) (break_statement "break;" break ;)) (expression_statement "pbVar8[iVar11] = bVar12 + 1;" (assignment_expression "pbVar8[iVar11] = bVar12 + 1" (subscript_expression "pbVar8[iVar11]" identifier [ identifier ]) = (binary_expression "bVar12 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = iVar22 <= iVar11;" (assignment_expression "bVar3 = iVar22 <= iVar11" identifier = (binary_expression "iVar22 <= iVar11" identifier <= identifier)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (if_statement "if (bVar3) goto LAB_00033f68;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_00033f68;" goto statement_identifier ;)) })) (expression_statement "bVar3 = iVar11 < iVar22;" (assignment_expression "bVar3 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar3)" ( identifier )) ;) (labeled_statement "LAB_00033f68:\n  if (iVar22 != 0) {\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }" statement_identifier : (if_statement "if (iVar22 != 0) {\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }" { (expression_statement "iVar26 = param_1 + iVar25 * 0xc;" (assignment_expression "iVar26 = param_1 + iVar25 * 0xc" identifier = (binary_expression "param_1 + iVar25 * 0xc" identifier + (binary_expression "iVar25 * 0xc" identifier * number_literal))) ;) (expression_statement "iVar11 = iVar22;" (assignment_expression "iVar11 = iVar22" identifier = identifier) ;) (do_statement "do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);" do (compound_statement "{\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "iVar23 = 0x269;" (assignment_expression "iVar23 = 0x269" identifier = number_literal) ;) (do_statement "do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));" do (compound_statement "{\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      }" { (expression_statement "iVar27 = iVar23;" (assignment_expression "iVar27 = iVar23" identifier = identifier) ;) (if_statement "if (iVar27 - iVar13 < 2) goto LAB_00033fdc;" if (parenthesized_expression "(iVar27 - iVar13 < 2)" ( (binary_expression "iVar27 - iVar13 < 2" (binary_expression "iVar27 - iVar13" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_00033fdc;" goto statement_identifier ;)) (expression_statement "iVar23 = (iVar27 + iVar13) / 2;" (assignment_expression "iVar23 = (iVar27 + iVar13) / 2" identifier = (binary_expression "(iVar27 + iVar13) / 2" (parenthesized_expression "(iVar27 + iVar13)" ( (binary_expression "iVar27 + iVar13" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);" (assignment_expression "piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(puVar4 + iVar23 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar23 * 0xc + 0x5a9c)" ( (binary_expression "puVar4 + iVar23 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar23 * 0xc" identifier + (binary_expression "iVar23 * 0xc" identifier * number_literal)) + number_literal) )))) ;) }) while (parenthesized_expression "((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)))" ( (binary_expression "(*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8))" (parenthesized_expression "(*(int *)(iVar26 + -8) < *piVar16)" ( (binary_expression "*(int *)(iVar26 + -8) < *piVar16" (pointer_expression "*(int *)(iVar26 + -8)" * (cast_expression "(int *)(iVar26 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + -8)" ( (binary_expression "iVar26 + -8" identifier + number_literal) )))) < (pointer_expression "*piVar16" * identifier)) )) || (parenthesized_expression "(iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8))" ( (comma_expression "iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)" (assignment_expression "iVar13 = iVar23" identifier = identifier) , (comma_expression "iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)" (assignment_expression "iVar23 = iVar27" identifier = identifier) , (binary_expression "piVar16[1] < *(int *)(iVar26 + -8)" (subscript_expression "piVar16[1]" identifier [ number_literal ]) < (pointer_expression "*(int *)(iVar26 + -8)" * (cast_expression "(int *)(iVar26 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + -8)" ( (binary_expression "iVar26 + -8" identifier + number_literal) ))))))) ))) )) ;) (if_statement "if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }" if (parenthesized_expression "(*(char *)((int)piVar16 + 0xb) != '\x11')" ( (binary_expression "*(char *)((int)piVar16 + 0xb) != '\x11'" (pointer_expression "*(char *)((int)piVar16 + 0xb)" * (cast_expression "(char *)((int)piVar16 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0xb)" ( (binary_expression "(int)piVar16 + 0xb" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\x11'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }" { (labeled_statement "LAB_00033fdc:\n        bVar3 = iVar11 < iVar22;" statement_identifier : (expression_statement "bVar3 = iVar11 < iVar22;" (assignment_expression "bVar3 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;)) (if_statement "if (bVar3) goto LAB_000342f4;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_000342f4;" goto statement_identifier ;)) (goto_statement "goto LAB_00033fe8;" goto statement_identifier ;) })) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (expression_statement "iVar26 = iVar26 + -0xc;" (assignment_expression "iVar26 = iVar26 + -0xc" identifier = (binary_expression "iVar26 + -0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) ;) (expression_statement "bVar3 = 0 < iVar22;" (assignment_expression "bVar3 = 0 < iVar22" identifier = (binary_expression "0 < iVar22" number_literal < identifier)) ;) (labeled_statement "LAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }" statement_identifier : (if_statement "if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }" { (expression_statement "pbVar14 = pbVar8 + iVar11 + 1;" (assignment_expression "pbVar14 = pbVar8 + iVar11 + 1" identifier = (binary_expression "pbVar8 + iVar11 + 1" (binary_expression "pbVar8 + iVar11" identifier + identifier) + number_literal)) ;) (do_statement "do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);" do (compound_statement "{\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      }" { (expression_statement "*pbVar14 = bVar21;" (assignment_expression "*pbVar14 = bVar21" (pointer_expression "*pbVar14" * identifier) = identifier) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar8 + iVar25 != pbVar14)" ( (binary_expression "pbVar8 + iVar25 != pbVar14" (binary_expression "pbVar8 + iVar25" identifier + identifier) != identifier) )) ;) }))) }))) (labeled_statement "LAB_00033fe8:\n  iVar11 = 0;" statement_identifier : (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;)) (expression_statement "piVar16 = piVar31;" (assignment_expression "piVar16 = piVar31" identifier = identifier) ;) (do_statement "do {\n    iVar23 = *piVar16;\n    iVar26 = 0x269;\n    iVar13 = -1;\n    do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));\n    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }\nLAB_00034050:\n    bVar3 = iVar11 < iVar22;\n    piVar16 = piVar16 + 3;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);" do (compound_statement "{\n    iVar23 = *piVar16;\n    iVar26 = 0x269;\n    iVar13 = -1;\n    do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));\n    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }\nLAB_00034050:\n    bVar3 = iVar11 < iVar22;\n    piVar16 = piVar16 + 3;\n    iVar11 = iVar11 + 1;\n  }" { (expression_statement "iVar23 = *piVar16;" (assignment_expression "iVar23 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "iVar26 = 0x269;" (assignment_expression "iVar26 = 0x269" identifier = number_literal) ;) (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (do_statement "do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));" do (compound_statement "{\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    }" { (expression_statement "iVar27 = iVar26;" (assignment_expression "iVar27 = iVar26" identifier = identifier) ;) (if_statement "if (iVar27 - iVar13 < 2) goto LAB_00034050;" if (parenthesized_expression "(iVar27 - iVar13 < 2)" ( (binary_expression "iVar27 - iVar13 < 2" (binary_expression "iVar27 - iVar13" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_00034050;" goto statement_identifier ;)) (expression_statement "iVar17 = (iVar27 + iVar13) / 2;" (assignment_expression "iVar17 = (iVar27 + iVar13) / 2" identifier = (binary_expression "(iVar27 + iVar13) / 2" (parenthesized_expression "(iVar27 + iVar13)" ( (binary_expression "iVar27 + iVar13" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(puVar4 + iVar17 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar17 * 0xc + 0x5a9c)" ( (binary_expression "puVar4 + iVar17 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar17 * 0xc" identifier + (binary_expression "iVar17 * 0xc" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar26 = iVar17;" (assignment_expression "iVar26 = iVar17" identifier = identifier) ;) }) while (parenthesized_expression "((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23))" ( (binary_expression "(iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23)" (parenthesized_expression "(iVar23 < *piVar6)" ( (binary_expression "iVar23 < *piVar6" identifier < (pointer_expression "*piVar6" * identifier)) )) || (parenthesized_expression "(iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23)" ( (comma_expression "iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23" (assignment_expression "iVar26 = iVar27" identifier = identifier) , (comma_expression "iVar13 = iVar17, piVar6[1] < iVar23" (assignment_expression "iVar13 = iVar17" identifier = identifier) , (binary_expression "piVar6[1] < iVar23" (subscript_expression "piVar6[1]" identifier [ number_literal ]) < identifier))) ))) )) ;) (if_statement "if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }" if (parenthesized_expression "(*(byte *)((int)piVar6 + 0xb) == 0x11)" ( (binary_expression "*(byte *)((int)piVar6 + 0xb) == 0x11" (pointer_expression "*(byte *)((int)piVar6 + 0xb)" * (cast_expression "(byte *)((int)piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0xb)" ( (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }" { (expression_statement "iVar26 = iVar11;" (assignment_expression "iVar26 = iVar11" identifier = identifier) ;) (if_statement "if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }" if (parenthesized_expression "(iVar11 < iVar25)" ( (binary_expression "iVar11 < iVar25" identifier < identifier) )) (compound_statement "{\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }" { (expression_statement "piVar6 = piVar16 + -1;" (assignment_expression "piVar6 = piVar16 + -1" identifier = (binary_expression "piVar16 + -1" identifier + number_literal)) ;) (while_statement "while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }" { (expression_statement "iVar13 = 0x269;" (assignment_expression "iVar13 = 0x269" identifier = number_literal) ;) (expression_statement "iVar27 = -1;" (assignment_expression "iVar27 = -1" identifier = number_literal) ;) (do_statement "do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));" do (compound_statement "{\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          }" { (expression_statement "iVar17 = iVar13;" (assignment_expression "iVar17 = iVar13" identifier = identifier) ;) (if_statement "if (iVar17 - iVar27 < 2) goto LAB_0003439c;" if (parenthesized_expression "(iVar17 - iVar27 < 2)" ( (binary_expression "iVar17 - iVar27 < 2" (binary_expression "iVar17 - iVar27" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_0003439c;" goto statement_identifier ;)) (expression_statement "iVar20 = (iVar17 + iVar27) / 2;" (assignment_expression "iVar20 = (iVar17 + iVar27) / 2" identifier = (binary_expression "(iVar17 + iVar27) / 2" (parenthesized_expression "(iVar17 + iVar27)" ( (binary_expression "iVar17 + iVar27" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);" (assignment_expression "piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(puVar4 + iVar20 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar20 * 0xc + 0x5a9c)" ( (binary_expression "puVar4 + iVar20 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar20 * 0xc" identifier + (binary_expression "iVar20 * 0xc" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar13 = iVar20;" (assignment_expression "iVar13 = iVar20" identifier = identifier) ;) }) while (parenthesized_expression "((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23))" ( (binary_expression "(iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23)" (parenthesized_expression "(iVar23 < *piVar18)" ( (binary_expression "iVar23 < *piVar18" identifier < (pointer_expression "*piVar18" * identifier)) )) || (parenthesized_expression "(iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23)" ( (comma_expression "iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23" (assignment_expression "iVar13 = iVar17" identifier = identifier) , (comma_expression "iVar27 = iVar20, piVar18[1] < iVar23" (assignment_expression "iVar27 = iVar20" identifier = identifier) , (binary_expression "piVar18[1] < iVar23" (subscript_expression "piVar18[1]" identifier [ number_literal ]) < identifier))) ))) )) ;) (expression_statement "iVar13 = iVar26 + 1;" (assignment_expression "iVar13 = iVar26 + 1" identifier = (binary_expression "iVar26 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;" if (parenthesized_expression "(*(char *)((int)piVar18 + 0xb) != '\x11')" ( (binary_expression "*(char *)((int)piVar18 + 0xb) != '\x11'" (pointer_expression "*(char *)((int)piVar18 + 0xb)" * (cast_expression "(char *)((int)piVar18 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar18 + 0xb)" ( (binary_expression "(int)piVar18 + 0xb" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\x11'" ' escape_sequence ')) )) (goto_statement "goto LAB_0003439c;" goto statement_identifier ;)) (if_statement "if (iVar26 == iVar22) break;" if (parenthesized_expression "(iVar26 == iVar22)" ( (binary_expression "iVar26 == iVar22" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar23 = piVar6[4];" (assignment_expression "iVar23 = piVar6[4]" identifier = (subscript_expression "piVar6[4]" identifier [ number_literal ])) ;) (expression_statement "iVar26 = iVar13;" (assignment_expression "iVar26 = iVar13" identifier = identifier) ;) (expression_statement "piVar6 = piVar6 + 3;" (assignment_expression "piVar6 = piVar6 + 3" identifier = (binary_expression "piVar6 + 3" identifier + number_literal)) ;) })) }) (else_clause "else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }" else (compound_statement "{\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }" { (labeled_statement "LAB_0003439c:\n        iVar13 = iVar25;" statement_identifier : (expression_statement "iVar13 = iVar25;" (assignment_expression "iVar13 = iVar25" identifier = identifier) ;)) (if_statement "if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }" if (parenthesized_expression "(iVar25 != iVar26)" ( (binary_expression "iVar25 != iVar26" identifier != identifier) )) (compound_statement "{\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }" { (expression_statement "iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);" (assignment_expression "iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4)" identifier = (pointer_expression "*(int *)(param_1 + iVar26 * 0xc + 4)" * (cast_expression "(int *)(param_1 + iVar26 * 0xc + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + iVar26 * 0xc + 4)" ( (binary_expression "param_1 + iVar26 * 0xc + 4" (binary_expression "param_1 + iVar26 * 0xc" identifier + (binary_expression "iVar26 * 0xc" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "iVar23 = 0x269;" (assignment_expression "iVar23 = 0x269" identifier = number_literal) ;) (expression_statement "iVar27 = -1;" (assignment_expression "iVar27 = -1" identifier = number_literal) ;) (do_statement "do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));" do (compound_statement "{\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          }" { (expression_statement "iVar20 = iVar23;" (assignment_expression "iVar20 = iVar23" identifier = identifier) ;) (expression_statement "iVar13 = iVar26;" (assignment_expression "iVar13 = iVar26" identifier = identifier) ;) (if_statement "if (iVar20 - iVar27 < 2) goto LAB_00034408;" if (parenthesized_expression "(iVar20 - iVar27 < 2)" ( (binary_expression "iVar20 - iVar27 < 2" (binary_expression "iVar20 - iVar27" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_00034408;" goto statement_identifier ;)) (expression_statement "iVar19 = (iVar20 + iVar27) / 2;" (assignment_expression "iVar19 = (iVar20 + iVar27) / 2" identifier = (binary_expression "(iVar20 + iVar27) / 2" (parenthesized_expression "(iVar20 + iVar27)" ( (binary_expression "iVar20 + iVar27" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(puVar4 + iVar19 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar19 * 0xc + 0x5a9c)" ( (binary_expression "puVar4 + iVar19 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar19 * 0xc" identifier + (binary_expression "iVar19 * 0xc" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar23 = iVar19;" (assignment_expression "iVar23 = iVar19" identifier = identifier) ;) }) while (parenthesized_expression "((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17))" ( (binary_expression "(iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17)" (parenthesized_expression "(iVar17 < *piVar6)" ( (binary_expression "iVar17 < *piVar6" identifier < (pointer_expression "*piVar6" * identifier)) )) || (parenthesized_expression "(iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17)" ( (comma_expression "iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17" (assignment_expression "iVar23 = iVar20" identifier = identifier) , (comma_expression "iVar27 = iVar19, piVar6[1] < iVar17" (assignment_expression "iVar27 = iVar19" identifier = identifier) , (binary_expression "piVar6[1] < iVar17" (subscript_expression "piVar6[1]" identifier [ number_literal ]) < identifier))) ))) )) ;) (if_statement "if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }" if (parenthesized_expression "(*(char *)((int)piVar6 + 0xb) != '\x0f')" ( (binary_expression "*(char *)((int)piVar6 + 0xb) != '\x0f'" (pointer_expression "*(char *)((int)piVar6 + 0xb)" * (cast_expression "(char *)((int)piVar6 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0xb)" ( (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\x0f'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }" { (labeled_statement "LAB_00034408:\n            iVar26 = 0x269;" statement_identifier : (expression_statement "iVar26 = 0x269;" (assignment_expression "iVar26 = 0x269" identifier = number_literal) ;)) (expression_statement "iVar23 = -1;" (assignment_expression "iVar23 = -1" identifier = number_literal) ;) (do_statement "do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));" do (compound_statement "{\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            }" { (expression_statement "iVar27 = iVar26;" (assignment_expression "iVar27 = iVar26" identifier = identifier) ;) (if_statement "if (iVar27 - iVar23 < 2) goto LAB_00034050;" if (parenthesized_expression "(iVar27 - iVar23 < 2)" ( (binary_expression "iVar27 - iVar23 < 2" (binary_expression "iVar27 - iVar23" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_00034050;" goto statement_identifier ;)) (expression_statement "iVar20 = (iVar27 + iVar23) / 2;" (assignment_expression "iVar20 = (iVar27 + iVar23) / 2" identifier = (binary_expression "(iVar27 + iVar23) / 2" (parenthesized_expression "(iVar27 + iVar23)" ( (binary_expression "iVar27 + iVar23" identifier + identifier) )) / number_literal)) ;) (expression_statement "piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c)" identifier = (cast_expression "(int *)(puVar4 + iVar20 * 0xc + 0x5a9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + iVar20 * 0xc + 0x5a9c)" ( (binary_expression "puVar4 + iVar20 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar20 * 0xc" identifier + (binary_expression "iVar20 * 0xc" identifier * number_literal)) + number_literal) )))) ;) (expression_statement "iVar26 = iVar20;" (assignment_expression "iVar26 = iVar20" identifier = identifier) ;) }) while (parenthesized_expression "((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17))" ( (binary_expression "(iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17)" (parenthesized_expression "(iVar17 < *piVar6)" ( (binary_expression "iVar17 < *piVar6" identifier < (pointer_expression "*piVar6" * identifier)) )) || (parenthesized_expression "(iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17)" ( (comma_expression "iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17" (assignment_expression "iVar26 = iVar27" identifier = identifier) , (comma_expression "iVar23 = iVar20, piVar6[1] < iVar17" (assignment_expression "iVar23 = iVar20" identifier = identifier) , (binary_expression "piVar6[1] < iVar17" (subscript_expression "piVar6[1]" identifier [ number_literal ]) < identifier))) ))) )) ;) (if_statement "if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;" if (parenthesized_expression "(*(char *)((int)piVar6 + 0xb) != '\x10')" ( (binary_expression "*(char *)((int)piVar6 + 0xb) != '\x10'" (pointer_expression "*(char *)((int)piVar6 + 0xb)" * (cast_expression "(char *)((int)piVar6 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0xb)" ( (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\x10'" ' escape_sequence ')) )) (goto_statement "goto LAB_00034050;" goto statement_identifier ;)) })) })) }))) (expression_statement "pbVar14 = pbVar8 + iVar13 + -1;" (assignment_expression "pbVar14 = pbVar8 + iVar13 + -1" identifier = (binary_expression "pbVar8 + iVar13 + -1" (binary_expression "pbVar8 + iVar13" identifier + identifier) + number_literal)) ;) (if_statement "if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }" if (parenthesized_expression "(iVar11 <= iVar13 + -1)" ( (binary_expression "iVar11 <= iVar13 + -1" identifier <= (binary_expression "iVar13 + -1" identifier + number_literal)) )) (compound_statement "{\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }" { (do_statement "do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);" do (compound_statement "{\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        }" { (expression_statement "*pbVar14 = bVar21;" (assignment_expression "*pbVar14 = bVar21" (pointer_expression "*pbVar14" * identifier) = identifier) ;) (expression_statement "pbVar14 = pbVar14 + -1;" (assignment_expression "pbVar14 = pbVar14 + -1" identifier = (binary_expression "pbVar14 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar8 + iVar11 + -1 != pbVar14)" ( (binary_expression "pbVar8 + iVar11 + -1 != pbVar14" (binary_expression "pbVar8 + iVar11 + -1" (binary_expression "pbVar8 + iVar11" identifier + identifier) + number_literal) != identifier) )) ;) })) }) (else_clause "else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }" else (if_statement "if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }" if (parenthesized_expression "(*(byte *)((int)piVar6 + 0xb) - 0xf < 2)" ( (binary_expression "*(byte *)((int)piVar6 + 0xb) - 0xf < 2" (binary_expression "*(byte *)((int)piVar6 + 0xb) - 0xf" (pointer_expression "*(byte *)((int)piVar6 + 0xb)" * (cast_expression "(byte *)((int)piVar6 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar6 + 0xb)" ( (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - number_literal) < number_literal) )) (compound_statement "{\n      pbVar8[iVar11] = bVar21;\n    }" { (expression_statement "pbVar8[iVar11] = bVar21;" (assignment_expression "pbVar8[iVar11] = bVar21" (subscript_expression "pbVar8[iVar11]" identifier [ identifier ]) = identifier) ;) })))) (labeled_statement "LAB_00034050:\n    bVar3 = iVar11 < iVar22;" statement_identifier : (expression_statement "bVar3 = iVar11 < iVar22;" (assignment_expression "bVar3 = iVar11 < iVar22" identifier = (binary_expression "iVar11 < iVar22" identifier < identifier)) ;)) (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" identifier = (binary_expression "piVar16 + 3" identifier + number_literal)) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar3)" ( identifier )) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }\n    doMirror(piVar31 + iVar11 * 3);\n    uVar15 = (uint)(iVar11 < iVar22);\n    iVar11 = iVar11 + 1;\n  } while (uVar15 != 0);" do (compound_statement "{\n    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }\n    doMirror(piVar31 + iVar11 * 3);\n    uVar15 = (uint)(iVar11 < iVar22);\n    iVar11 = iVar11 + 1;\n  }" { (while_statement "while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }" while (parenthesized_expression "(uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0)" ( (comma_expression "uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0" (assignment_expression "uVar15 = (uint)(iVar11 < iVar22)" identifier = (call_expression "(uint)(iVar11 < iVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 < iVar22)" ( (binary_expression "iVar11 < iVar22" identifier < identifier) )))) , (binary_expression "(pbVar8[iVar11] & 1) == 0" (parenthesized_expression "(pbVar8[iVar11] & 1)" ( (binary_expression "pbVar8[iVar11] & 1" (subscript_expression "pbVar8[iVar11]" identifier [ identifier ]) & number_literal) )) == number_literal)) )) (compound_statement "{\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }" { (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (if_statement "if (uVar15 == 0) goto LAB_000340a4;" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000340a4;" goto statement_identifier ;)) })) (expression_statement "doMirror(piVar31 + iVar11 * 3);" (call_expression "doMirror(piVar31 + iVar11 * 3)" identifier (argument_list "(piVar31 + iVar11 * 3)" ( (binary_expression "piVar31 + iVar11 * 3" identifier + (binary_expression "iVar11 * 3" identifier * number_literal)) ))) ;) (expression_statement "uVar15 = (uint)(iVar11 < iVar22);" (assignment_expression "uVar15 = (uint)(iVar11 < iVar22)" identifier = (call_expression "(uint)(iVar11 < iVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 < iVar22)" ( (binary_expression "iVar11 < iVar22" identifier < identifier) )))) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_000340a4:\n  uVar28 = (uint)*pbVar8;" statement_identifier : (expression_statement "uVar28 = (uint)*pbVar8;" (assignment_expression "uVar28 = (uint)*pbVar8" identifier = (binary_expression "(uint)*pbVar8" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;)) (expression_statement "uVar29 = uVar28;" (assignment_expression "uVar29 = uVar28" identifier = identifier) ;) (while_statement "while( true ) {\n    bVar3 = iVar22 <= (int)uVar15;\n    uVar30 = uVar28;\n    if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }\n    uVar15 = uVar15 + 1;\n    if (bVar3) break;\n    uVar28 = (uint)pbVar8[uVar15];\n    uVar29 = uVar30;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    bVar3 = iVar22 <= (int)uVar15;\n    uVar30 = uVar28;\n    if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }\n    uVar15 = uVar15 + 1;\n    if (bVar3) break;\n    uVar28 = (uint)pbVar8[uVar15];\n    uVar29 = uVar30;\n  }" { (expression_statement "bVar3 = iVar22 <= (int)uVar15;" (assignment_expression "bVar3 = iVar22 <= (int)uVar15" identifier = (binary_expression "iVar22 <= (int)uVar15" identifier <= (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar30 = uVar28;" (assignment_expression "uVar30 = uVar28" identifier = identifier) ;) (if_statement "if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }" if (parenthesized_expression "(uVar28 < uVar29)" ( (binary_expression "uVar28 < uVar29" identifier < identifier) )) (compound_statement "{\n      uVar30 = uVar29;\n    }" { (expression_statement "uVar30 = uVar29;" (assignment_expression "uVar30 = uVar29" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar15 + 1;" (assignment_expression "uVar15 = uVar15 + 1" identifier = (binary_expression "uVar15 + 1" identifier + number_literal)) ;) (if_statement "if (bVar3) break;" if (parenthesized_expression "(bVar3)" ( identifier )) (break_statement "break;" break ;)) (expression_statement "uVar28 = (uint)pbVar8[uVar15];" (assignment_expression "uVar28 = (uint)pbVar8[uVar15]" identifier = (cast_expression "(uint)pbVar8[uVar15]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar8[uVar15]" identifier [ identifier ]))) ;) (expression_statement "uVar29 = uVar30;" (assignment_expression "uVar29 = uVar30" identifier = identifier) ;) })) (for_statement "for (; uVar30 != 0; uVar30 = uVar30 - 1) {\n    flipThisRun(param_1,pbVar8,uVar30,iVar25);\n  }" for ( ; (binary_expression "uVar30 != 0" identifier != number_literal) ; (assignment_expression "uVar30 = uVar30 - 1" identifier = (binary_expression "uVar30 - 1" identifier - number_literal)) ) (compound_statement "{\n    flipThisRun(param_1,pbVar8,uVar30,iVar25);\n  }" { (expression_statement "flipThisRun(param_1,pbVar8,uVar30,iVar25);" (call_expression "flipThisRun(param_1,pbVar8,uVar30,iVar25)" identifier (argument_list "(param_1,pbVar8,uVar30,iVar25)" ( identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "safefree(pbVar7);" (call_expression "safefree(pbVar7)" identifier (argument_list "(pbVar7)" ( identifier ))) ;) (expression_statement "safefree(pbVar8);" (call_expression "safefree(pbVar8)" identifier (argument_list "(pbVar8)" ( identifier ))) ;) (return_statement "return 3;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) / LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) < (pointer_expression * IDENT)))) ))) )) ;) (if_statement if (parenthesized_expression ( (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) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return LIT ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) / LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) < (pointer_expression * IDENT)))) ))) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) / LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) < (pointer_expression * 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < 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 (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) ))))) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT != (binary_expression IDENT + LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (break_statement break ;)) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) + LIT) == IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) + LIT) != IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == IDENT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT <= IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + IDENT)) , (binary_expression (pointer_expression * IDENT) != LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;))) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) == LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })))) })) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) })))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT <= IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT <= IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) & LIT) )) != LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != LIT) ))) )) ))) )) (break_statement break ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT <= IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) / LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ))) )) ;) (if_statement if (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) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;)) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) / LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) / LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT))) ))) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (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) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) / LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) / LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) })) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) + LIT) != IDENT) )) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (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) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) })))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) , (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) & LIT) )) == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (for_statement for ( ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT - LIT)) ) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 do_bidi(int param_1,int param_2)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar12;\n  undefined4 uVar9;\n  byte *pbVar10;\n  int iVar11;\n  int iVar13;\n  byte *pbVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  byte bVar21;\n  int iVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  uint uVar28;\n  uint uVar29;\n  uint uVar30;\n  int *piVar31;\n  \n  puVar4 = PTR_DAT_000b5230;\n  if (param_2 < 1) {\n    return 0;\n  }\n  iVar25 = 0;\n  piVar31 = (int *)(param_1 + 4);\n  piVar16 = piVar31;\n  while( true ) {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;\nLAB_00033888:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n    if (param_2 == iVar25) {\n      return 0;\n    }\n  }\n  pbVar7 = (byte *)safemalloc(param_2,1);\n  pbVar8 = (byte *)safemalloc(param_2,1);\n  puVar5 = PTR_DAT_000b5230;\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    uVar15 = piVar6[2];\n    if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }\n    bVar21 = (byte)uVar15;\n    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;\nLAB_00033978:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n  } while (param_2 != iVar25);\n  bVar21 = 0;\nLAB_000339c8:\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar22 = iVar25;\n    iVar25 = 0x269;\n    iVar11 = -1;\n    do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));\n    bVar12 = *(byte *)((int)piVar6 + 0xb);\n    if (bVar12 < 0x12) {\n                    \n                    \n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }\nswitchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;\n    iVar25 = iVar22 + 1;\n    piVar16 = piVar16 + 3;\n    pbVar7[iVar22] = bVar12;\n  } while (param_2 != iVar25);\n  pbVar24 = pbVar7 + iVar25;\n  pbVar14 = pbVar7;\n  do {\n    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }\n    pbVar14 = pbVar14 + 1;\n  } while (pbVar14 != pbVar24);\n  if (*pbVar7 == 0xd) {\n    *pbVar7 = bVar21;\n  }\n  pbVar14 = pbVar7 + 1;\n  if (iVar25 != 1) {\n    do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);\n  }\n  pbVar14 = pbVar7;\n  do {\n    pbVar10 = pbVar14;\n    if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }\n    pbVar14 = pbVar14 + 1;\n    pbVar10 = pbVar7;\n  } while (pbVar14 != pbVar24);\n  do {\n    if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }\n    pbVar10 = pbVar10 + 1;\n  } while (pbVar10 != pbVar24);\n  bVar3 = 1 < iVar22;\n  if (bVar3) {\n    pbVar14 = pbVar7;\n    do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);\n  }\nLAB_00033c70:\n  iVar11 = 0;\n  pbVar14 = pbVar7;\n  do {\n    if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    uVar15 = (uint)pbVar7[iVar11];\n    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }\nLAB_00033cec:\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\nLAB_00033d38:\n  if (iVar25 == 1) {\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }\n  else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }\n  pbVar14 = pbVar7 + param_2 + -1;\n  if (*pbVar14 == 0x12) {\n    bVar12 = pbVar7[param_2 + -2];\n    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }\n  }\nLAB_00033e60:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }\n    if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }\n    *pbVar14 = 0;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033ea8:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }\n    bVar1 = pbVar7[iVar11];\n    if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }\n    *pbVar14 = bVar12 + 1;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f0c:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f68:\n  if (iVar22 != 0) {\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }\nLAB_00033fe8:\n  iVar11 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar23 = *piVar16;\n    iVar26 = 0x269;\n    iVar13 = -1;\n    do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));\n    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }\nLAB_00034050:\n    bVar3 = iVar11 < iVar22;\n    piVar16 = piVar16 + 3;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\n  iVar11 = 0;\n  do {\n    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }\n    doMirror(piVar31 + iVar11 * 3);\n    uVar15 = (uint)(iVar11 < iVar22);\n    iVar11 = iVar11 + 1;\n  } while (uVar15 != 0);\nLAB_000340a4:\n  uVar28 = (uint)*pbVar8;\n  uVar29 = uVar28;\n  while( true ) {\n    bVar3 = iVar22 <= (int)uVar15;\n    uVar30 = uVar28;\n    if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }\n    uVar15 = uVar15 + 1;\n    if (bVar3) break;\n    uVar28 = (uint)pbVar8[uVar15];\n    uVar29 = uVar30;\n  }\n  for (; uVar30 != 0; uVar30 = uVar30 - 1) {\n    flipThisRun(param_1,pbVar8,uVar30,iVar25);\n  }\n  safefree(pbVar7);\n  safefree(pbVar8);\n  return 3;\n}" (type_identifier "undefined4") (function_declarator "do_bidi(int param_1,int param_2)" (identifier "do_bidi") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  int *piVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte bVar12;\n  undefined4 uVar9;\n  byte *pbVar10;\n  int iVar11;\n  int iVar13;\n  byte *pbVar14;\n  uint uVar15;\n  int *piVar16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  int iVar20;\n  byte bVar21;\n  int iVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  uint uVar28;\n  uint uVar29;\n  uint uVar30;\n  int *piVar31;\n  \n  puVar4 = PTR_DAT_000b5230;\n  if (param_2 < 1) {\n    return 0;\n  }\n  iVar25 = 0;\n  piVar31 = (int *)(param_1 + 4);\n  piVar16 = piVar31;\n  while( true ) {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;\nLAB_00033888:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n    if (param_2 == iVar25) {\n      return 0;\n    }\n  }\n  pbVar7 = (byte *)safemalloc(param_2,1);\n  pbVar8 = (byte *)safemalloc(param_2,1);\n  puVar5 = PTR_DAT_000b5230;\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    uVar15 = piVar6[2];\n    if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }\n    bVar21 = (byte)uVar15;\n    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;\nLAB_00033978:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n  } while (param_2 != iVar25);\n  bVar21 = 0;\nLAB_000339c8:\n  iVar25 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar22 = iVar25;\n    iVar25 = 0x269;\n    iVar11 = -1;\n    do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));\n    bVar12 = *(byte *)((int)piVar6 + 0xb);\n    if (bVar12 < 0x12) {\n                    \n                    \n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }\nswitchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;\n    iVar25 = iVar22 + 1;\n    piVar16 = piVar16 + 3;\n    pbVar7[iVar22] = bVar12;\n  } while (param_2 != iVar25);\n  pbVar24 = pbVar7 + iVar25;\n  pbVar14 = pbVar7;\n  do {\n    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }\n    pbVar14 = pbVar14 + 1;\n  } while (pbVar14 != pbVar24);\n  if (*pbVar7 == 0xd) {\n    *pbVar7 = bVar21;\n  }\n  pbVar14 = pbVar7 + 1;\n  if (iVar25 != 1) {\n    do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);\n  }\n  pbVar14 = pbVar7;\n  do {\n    pbVar10 = pbVar14;\n    if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }\n    pbVar14 = pbVar14 + 1;\n    pbVar10 = pbVar7;\n  } while (pbVar14 != pbVar24);\n  do {\n    if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }\n    pbVar10 = pbVar10 + 1;\n  } while (pbVar10 != pbVar24);\n  bVar3 = 1 < iVar22;\n  if (bVar3) {\n    pbVar14 = pbVar7;\n    do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);\n  }\nLAB_00033c70:\n  iVar11 = 0;\n  pbVar14 = pbVar7;\n  do {\n    if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    uVar15 = (uint)pbVar7[iVar11];\n    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\n  iVar11 = 0;\n  do {\n    while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }\nLAB_00033cec:\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);\nLAB_00033d38:\n  if (iVar25 == 1) {\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }\n  else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }\n  pbVar14 = pbVar7 + param_2 + -1;\n  if (*pbVar14 == 0x12) {\n    bVar12 = pbVar7[param_2 + -2];\n    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }\n  }\nLAB_00033e60:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }\n    if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }\n    *pbVar14 = 0;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033ea8:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }\n    bVar1 = pbVar7[iVar11];\n    if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }\n    *pbVar14 = bVar12 + 1;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f0c:\n  iVar11 = 0;\n  do {\n    while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\nLAB_00033f68:\n  if (iVar22 != 0) {\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }\nLAB_00033fe8:\n  iVar11 = 0;\n  piVar16 = piVar31;\n  do {\n    iVar23 = *piVar16;\n    iVar26 = 0x269;\n    iVar13 = -1;\n    do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));\n    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }\nLAB_00034050:\n    bVar3 = iVar11 < iVar22;\n    piVar16 = piVar16 + 3;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);\n  iVar11 = 0;\n  do {\n    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }\n    doMirror(piVar31 + iVar11 * 3);\n    uVar15 = (uint)(iVar11 < iVar22);\n    iVar11 = iVar11 + 1;\n  } while (uVar15 != 0);\nLAB_000340a4:\n  uVar28 = (uint)*pbVar8;\n  uVar29 = uVar28;\n  while( true ) {\n    bVar3 = iVar22 <= (int)uVar15;\n    uVar30 = uVar28;\n    if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }\n    uVar15 = uVar15 + 1;\n    if (bVar3) break;\n    uVar28 = (uint)pbVar8[uVar15];\n    uVar29 = uVar30;\n  }\n  for (; uVar30 != 0; uVar30 = uVar30 - 1) {\n    flipThisRun(param_1,pbVar8,uVar30,iVar25);\n  }\n  safefree(pbVar7);\n  safefree(pbVar8);\n  return 3;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "byte bVar12;" (type_identifier "byte") (identifier "bVar12") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int *piVar18;" (primitive_type "int") (pointer_declarator "*piVar18" (* "*") (identifier "piVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "byte bVar21;" (type_identifier "byte") (identifier "bVar21") (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "byte *pbVar24;" (type_identifier "byte") (pointer_declarator "*pbVar24" (* "*") (identifier "pbVar24")) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "int iVar27;" (primitive_type "int") (identifier "iVar27") (; ";")) (declaration "uint uVar28;" (type_identifier "uint") (identifier "uVar28") (; ";")) (declaration "uint uVar29;" (type_identifier "uint") (identifier "uVar29") (; ";")) (declaration "uint uVar30;" (type_identifier "uint") (identifier "uVar30") (; ";")) (declaration "int *piVar31;" (primitive_type "int") (pointer_declarator "*piVar31" (* "*") (identifier "piVar31")) (; ";")) (expression_statement "puVar4 = PTR_DAT_000b5230;" (assignment_expression "puVar4 = PTR_DAT_000b5230" (identifier "puVar4") (= "=") (identifier "PTR_DAT_000b5230")) (; ";")) (if_statement "if (param_2 < 1) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(param_2 < 1)" (( "(") (binary_expression "param_2 < 1" (identifier "param_2") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar31 = (int *)(param_1 + 4);" (assignment_expression "piVar31 = (int *)(param_1 + 4)" (identifier "piVar31") (= "=") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "piVar16 = piVar31;" (assignment_expression "piVar16 = piVar31" (identifier "piVar16") (= "=") (identifier "piVar31")) (; ";")) (while_statement "while( true ) {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;\nLAB_00033888:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n    if (param_2 == iVar25) {\n      return 0;\n    }\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;\nLAB_00033888:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n    if (param_2 == iVar25) {\n      return 0;\n    }\n  }" ({ "{") (expression_statement "iVar11 = 0x269;" (assignment_expression "iVar11 = 0x269" (identifier "iVar11") (= "=") (number_literal "0x269")) (; ";")) (expression_statement "iVar22 = -1;" (assignment_expression "iVar22 = -1" (identifier "iVar22") (= "=") (number_literal "-1")) (; ";")) (do_statement "do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));" (do "do") (compound_statement "{\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033888;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    }" ({ "{") (expression_statement "iVar26 = iVar11;" (assignment_expression "iVar26 = iVar11" (identifier "iVar26") (= "=") (identifier "iVar11")) (; ";")) (if_statement "if (iVar26 - iVar22 < 2) goto LAB_00033888;" (if "if") (parenthesized_expression "(iVar26 - iVar22 < 2)" (( "(") (binary_expression "iVar26 - iVar22 < 2" (binary_expression "iVar26 - iVar22" (identifier "iVar26") (- "-") (identifier "iVar22")) (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_00033888;" (goto "goto") (statement_identifier "LAB_00033888") (; ";"))) (expression_statement "iVar13 = (iVar26 + iVar22) / 2;" (assignment_expression "iVar13 = (iVar26 + iVar22) / 2" (identifier "iVar13") (= "=") (binary_expression "(iVar26 + iVar22) / 2" (parenthesized_expression "(iVar26 + iVar22)" (( "(") (binary_expression "iVar26 + iVar22" (identifier "iVar26") (+ "+") (identifier "iVar22")) () ")")) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c)" (identifier "piVar6") (= "=") (cast_expression "(int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c)" (( "(") (binary_expression "PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c" (binary_expression "PTR_DAT_000b5230 + iVar13 * 0xc" (identifier "PTR_DAT_000b5230") (+ "+") (binary_expression "iVar13 * 0xc" (identifier "iVar13") (* "*") (number_literal "0xc"))) (+ "+") (number_literal "0x5a9c")) () ")")))) (; ";")) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" (identifier "iVar11") (= "=") (identifier "iVar13")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16))" (( "(") (binary_expression "(*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16)" (parenthesized_expression "(*piVar16 < *piVar6)" (( "(") (binary_expression "*piVar16 < *piVar6" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (< "<") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) () ")")) (|| "||") (parenthesized_expression "(iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16)" (( "(") (comma_expression "iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar11 = iVar26" (identifier "iVar11") (= "=") (identifier "iVar26")) (, ",") (comma_expression "iVar22 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar22 = iVar13" (identifier "iVar22") (= "=") (identifier "iVar13")) (, ",") (binary_expression "piVar6[1] < *piVar16" (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) (< "<") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))))) () ")"))) () ")")) (; ";")) (if_statement "if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;" (if "if") (parenthesized_expression "(*(byte *)((int)piVar6 + 0xb) - 3 < 2)" (( "(") (binary_expression "*(byte *)((int)piVar6 + 0xb) - 3 < 2" (binary_expression "*(byte *)((int)piVar6 + 0xb) - 3" (pointer_expression "*(byte *)((int)piVar6 + 0xb)" (* "*") (cast_expression "(byte *)((int)piVar6 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + 0xb)" (( "(") (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (number_literal "0xb")) () ")")))) (- "-") (number_literal "3")) (< "<") (number_literal "2")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00033888:\n    iVar25 = iVar25 + 1;" (statement_identifier "LAB_00033888") (: ":") (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" (identifier "piVar16") (= "=") (binary_expression "piVar16 + 3" (identifier "piVar16") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (param_2 == iVar25) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_2 == iVar25)" (( "(") (binary_expression "param_2 == iVar25" (identifier "param_2") (== "==") (identifier "iVar25")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "pbVar7 = (byte *)safemalloc(param_2,1);" (assignment_expression "pbVar7 = (byte *)safemalloc(param_2,1)" (identifier "pbVar7") (= "=") (cast_expression "(byte *)safemalloc(param_2,1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "safemalloc(param_2,1)" (identifier "safemalloc") (argument_list "(param_2,1)" (( "(") (identifier "param_2") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "pbVar8 = (byte *)safemalloc(param_2,1);" (assignment_expression "pbVar8 = (byte *)safemalloc(param_2,1)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)safemalloc(param_2,1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "safemalloc(param_2,1)" (identifier "safemalloc") (argument_list "(param_2,1)" (( "(") (identifier "param_2") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "puVar5 = PTR_DAT_000b5230;" (assignment_expression "puVar5 = PTR_DAT_000b5230" (identifier "puVar5") (= "=") (identifier "PTR_DAT_000b5230")) (; ";")) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar16 = piVar31;" (assignment_expression "piVar16 = piVar31" (identifier "piVar16") (= "=") (identifier "piVar31")) (; ";")) (do_statement "do {\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    uVar15 = piVar6[2];\n    if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }\n    bVar21 = (byte)uVar15;\n    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;\nLAB_00033978:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n  } while (param_2 != iVar25);" (do "do") (compound_statement "{\n    iVar11 = 0x269;\n    iVar22 = -1;\n    do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));\n    uVar15 = piVar6[2];\n    if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }\n    bVar21 = (byte)uVar15;\n    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;\nLAB_00033978:\n    iVar25 = iVar25 + 1;\n    piVar16 = piVar16 + 3;\n  }" ({ "{") (expression_statement "iVar11 = 0x269;" (assignment_expression "iVar11 = 0x269" (identifier "iVar11") (= "=") (number_literal "0x269")) (; ";")) (expression_statement "iVar22 = -1;" (assignment_expression "iVar22 = -1" (identifier "iVar22") (= "=") (number_literal "-1")) (; ";")) (do_statement "do {\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));" (do "do") (compound_statement "{\n      iVar26 = iVar11;\n      if (iVar26 - iVar22 < 2) goto LAB_00033978;\n      iVar13 = (iVar26 + iVar22) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar11 = iVar13;\n    }" ({ "{") (expression_statement "iVar26 = iVar11;" (assignment_expression "iVar26 = iVar11" (identifier "iVar26") (= "=") (identifier "iVar11")) (; ";")) (if_statement "if (iVar26 - iVar22 < 2) goto LAB_00033978;" (if "if") (parenthesized_expression "(iVar26 - iVar22 < 2)" (( "(") (binary_expression "iVar26 - iVar22 < 2" (binary_expression "iVar26 - iVar22" (identifier "iVar26") (- "-") (identifier "iVar22")) (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_00033978;" (goto "goto") (statement_identifier "LAB_00033978") (; ";"))) (expression_statement "iVar13 = (iVar26 + iVar22) / 2;" (assignment_expression "iVar13 = (iVar26 + iVar22) / 2" (identifier "iVar13") (= "=") (binary_expression "(iVar26 + iVar22) / 2" (parenthesized_expression "(iVar26 + iVar22)" (( "(") (binary_expression "iVar26 + iVar22" (identifier "iVar26") (+ "+") (identifier "iVar22")) () ")")) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c)" (identifier "piVar6") (= "=") (cast_expression "(int *)(puVar4 + iVar13 * 0xc + 0x5a9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + iVar13 * 0xc + 0x5a9c)" (( "(") (binary_expression "puVar4 + iVar13 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar13 * 0xc" (identifier "puVar4") (+ "+") (binary_expression "iVar13 * 0xc" (identifier "iVar13") (* "*") (number_literal "0xc"))) (+ "+") (number_literal "0x5a9c")) () ")")))) (; ";")) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" (identifier "iVar11") (= "=") (identifier "iVar13")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16))" (( "(") (binary_expression "(*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16)" (parenthesized_expression "(*piVar16 < *piVar6)" (( "(") (binary_expression "*piVar16 < *piVar6" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (< "<") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) () ")")) (|| "||") (parenthesized_expression "(iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16)" (( "(") (comma_expression "iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar11 = iVar26" (identifier "iVar11") (= "=") (identifier "iVar26")) (, ",") (comma_expression "iVar22 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar22 = iVar13" (identifier "iVar22") (= "=") (identifier "iVar13")) (, ",") (binary_expression "piVar6[1] < *piVar16" (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) (< "<") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))))) () ")"))) () ")")) (; ";")) (expression_statement "uVar15 = piVar6[2];" (assignment_expression "uVar15 = piVar6[2]" (identifier "uVar15") (= "=") (subscript_expression "piVar6[2]" (identifier "piVar6") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if ((uVar15 & 0xff) - 3 < 2) {\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }" (if "if") (parenthesized_expression "((uVar15 & 0xff) - 3 < 2)" (( "(") (binary_expression "(uVar15 & 0xff) - 3 < 2" (binary_expression "(uVar15 & 0xff) - 3" (parenthesized_expression "(uVar15 & 0xff)" (( "(") (binary_expression "uVar15 & 0xff" (identifier "uVar15") (& "&") (number_literal "0xff")) () ")")) (- "-") (number_literal "3")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      bVar21 = 1;\n      goto LAB_000339c8;\n    }" ({ "{") (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" (identifier "bVar21") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_000339c8;" (goto "goto") (statement_identifier "LAB_000339c8") (; ";")) (} "}"))) (expression_statement "bVar21 = (byte)uVar15;" (assignment_expression "bVar21 = (byte)uVar15" (identifier "bVar21") (= "=") (cast_expression "(byte)uVar15" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar15"))) (; ";")) (if_statement "if ((uVar15 & 0xff) == 0) goto LAB_000339c8;" (if "if") (parenthesized_expression "((uVar15 & 0xff) == 0)" (( "(") (binary_expression "(uVar15 & 0xff) == 0" (parenthesized_expression "(uVar15 & 0xff)" (( "(") (binary_expression "uVar15 & 0xff" (identifier "uVar15") (& "&") (number_literal "0xff")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000339c8;" (goto "goto") (statement_identifier "LAB_000339c8") (; ";"))) (labeled_statement "LAB_00033978:\n    iVar25 = iVar25 + 1;" (statement_identifier "LAB_00033978") (: ":") (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" (identifier "piVar16") (= "=") (binary_expression "piVar16 + 3" (identifier "piVar16") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 != iVar25)" (( "(") (binary_expression "param_2 != iVar25" (identifier "param_2") (!= "!=") (identifier "iVar25")) () ")")) (; ";")) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000339c8:\n  iVar25 = 0;" (statement_identifier "LAB_000339c8") (: ":") (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";"))) (expression_statement "piVar16 = piVar31;" (assignment_expression "piVar16 = piVar31" (identifier "piVar16") (= "=") (identifier "piVar31")) (; ";")) (do_statement "do {\n    iVar22 = iVar25;\n    iVar25 = 0x269;\n    iVar11 = -1;\n    do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));\n    bVar12 = *(byte *)((int)piVar6 + 0xb);\n    if (bVar12 < 0x12) {\n                    \n                    \n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }\nswitchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;\n    iVar25 = iVar22 + 1;\n    piVar16 = piVar16 + 3;\n    pbVar7[iVar22] = bVar12;\n  } while (param_2 != iVar25);" (do "do") (compound_statement "{\n    iVar22 = iVar25;\n    iVar25 = 0x269;\n    iVar11 = -1;\n    do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));\n    bVar12 = *(byte *)((int)piVar6 + 0xb);\n    if (bVar12 < 0x12) {\n                    \n                    \n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }\nswitchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;\n    iVar25 = iVar22 + 1;\n    piVar16 = piVar16 + 3;\n    pbVar7[iVar22] = bVar12;\n  }" ({ "{") (expression_statement "iVar22 = iVar25;" (assignment_expression "iVar22 = iVar25" (identifier "iVar22") (= "=") (identifier "iVar25")) (; ";")) (expression_statement "iVar25 = 0x269;" (assignment_expression "iVar25 = 0x269" (identifier "iVar25") (= "=") (number_literal "0x269")) (; ";")) (expression_statement "iVar11 = -1;" (assignment_expression "iVar11 = -1" (identifier "iVar11") (= "=") (number_literal "-1")) (; ";")) (do_statement "do {\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));" (do "do") (compound_statement "{\n      iVar26 = iVar25;\n      if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }\n      iVar13 = (iVar26 + iVar11) / 2;\n      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);\n      iVar25 = iVar13;\n    }" ({ "{") (expression_statement "iVar26 = iVar25;" (assignment_expression "iVar26 = iVar25" (identifier "iVar26") (= "=") (identifier "iVar25")) (; ";")) (if_statement "if (iVar26 - iVar11 < 2) {\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }" (if "if") (parenthesized_expression "(iVar26 - iVar11 < 2)" (( "(") (binary_expression "iVar26 - iVar11 < 2" (binary_expression "iVar26 - iVar11" (identifier "iVar26") (- "-") (identifier "iVar11")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        bVar12 = 0x12;\n        goto switchD_00033aa8_caseD_0;\n      }" ({ "{") (expression_statement "bVar12 = 0x12;" (assignment_expression "bVar12 = 0x12" (identifier "bVar12") (= "=") (number_literal "0x12")) (; ";")) (goto_statement "goto switchD_00033aa8_caseD_0;" (goto "goto") (statement_identifier "switchD_00033aa8_caseD_0") (; ";")) (} "}"))) (expression_statement "iVar13 = (iVar26 + iVar11) / 2;" (assignment_expression "iVar13 = (iVar26 + iVar11) / 2" (identifier "iVar13") (= "=") (binary_expression "(iVar26 + iVar11) / 2" (parenthesized_expression "(iVar26 + iVar11)" (( "(") (binary_expression "iVar26 + iVar11" (identifier "iVar26") (+ "+") (identifier "iVar11")) () ")")) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c)" (identifier "piVar6") (= "=") (cast_expression "(int *)(puVar4 + iVar13 * 0xc + 0x5a9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + iVar13 * 0xc + 0x5a9c)" (( "(") (binary_expression "puVar4 + iVar13 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar13 * 0xc" (identifier "puVar4") (+ "+") (binary_expression "iVar13 * 0xc" (identifier "iVar13") (* "*") (number_literal "0xc"))) (+ "+") (number_literal "0x5a9c")) () ")")))) (; ";")) (expression_statement "iVar25 = iVar13;" (assignment_expression "iVar25 = iVar13" (identifier "iVar25") (= "=") (identifier "iVar13")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16))" (( "(") (binary_expression "(*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16)" (parenthesized_expression "(*piVar16 < *piVar6)" (( "(") (binary_expression "*piVar16 < *piVar6" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (< "<") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) () ")")) (|| "||") (parenthesized_expression "(iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16)" (( "(") (comma_expression "iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar25 = iVar26" (identifier "iVar25") (= "=") (identifier "iVar26")) (, ",") (comma_expression "iVar11 = iVar13, piVar6[1] < *piVar16" (assignment_expression "iVar11 = iVar13" (identifier "iVar11") (= "=") (identifier "iVar13")) (, ",") (binary_expression "piVar6[1] < *piVar16" (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) (< "<") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))))) () ")"))) () ")")) (; ";")) (expression_statement "bVar12 = *(byte *)((int)piVar6 + 0xb);" (assignment_expression "bVar12 = *(byte *)((int)piVar6 + 0xb)" (identifier "bVar12") (= "=") (pointer_expression "*(byte *)((int)piVar6 + 0xb)" (* "*") (cast_expression "(byte *)((int)piVar6 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + 0xb)" (( "(") (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (number_literal "0xb")) () ")"))))) (; ";")) (if_statement "if (bVar12 < 0x12) {\n                    \n                    \n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }" (if "if") (parenthesized_expression "(bVar12 < 0x12)" (( "(") (binary_expression "bVar12 < 0x12" (identifier "bVar12") (< "<") (number_literal "0x12")) () ")")) (compound_statement "{\n                    \n                    \n      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();\n      return uVar9;\n    }" ({ "{") (expression_statement "uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();" (assignment_expression "uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))()" (identifier "uVar9") (= "=") (call_expression "(*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54))" (( "(") (binary_expression "&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)" (* "*") (cast_expression "(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + (uint)bVar12 * 4 + 0x5a54)" (( "(") (binary_expression "puVar5 + (uint)bVar12 * 4 + 0x5a54" (binary_expression "puVar5 + (uint)bVar12 * 4" (identifier "puVar5") (+ "+") (binary_expression "(uint)bVar12 * 4" (cast_expression "(uint)bVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar12")) (* "*") (number_literal "4"))) (+ "+") (number_literal "0x5a54")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}"))) (labeled_statement "switchD_00033aa8_caseD_0:\n    pbVar8[iVar22] = bVar21;" (statement_identifier "switchD_00033aa8_caseD_0") (: ":") (expression_statement "pbVar8[iVar22] = bVar21;" (assignment_expression "pbVar8[iVar22] = bVar21" (subscript_expression "pbVar8[iVar22]" (identifier "pbVar8") ([ "[") (identifier "iVar22") (] "]")) (= "=") (identifier "bVar21")) (; ";"))) (expression_statement "iVar25 = iVar22 + 1;" (assignment_expression "iVar25 = iVar22 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" (identifier "piVar16") (= "=") (binary_expression "piVar16 + 3" (identifier "piVar16") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pbVar7[iVar22] = bVar12;" (assignment_expression "pbVar7[iVar22] = bVar12" (subscript_expression "pbVar7[iVar22]" (identifier "pbVar7") ([ "[") (identifier "iVar22") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 != iVar25)" (( "(") (binary_expression "param_2 != iVar25" (identifier "param_2") (!= "!=") (identifier "iVar25")) () ")")) (; ";")) (expression_statement "pbVar24 = pbVar7 + iVar25;" (assignment_expression "pbVar24 = pbVar7 + iVar25" (identifier "pbVar24") (= "=") (binary_expression "pbVar7 + iVar25" (identifier "pbVar7") (+ "+") (identifier "iVar25"))) (; ";")) (expression_statement "pbVar14 = pbVar7;" (assignment_expression "pbVar14 = pbVar7" (identifier "pbVar14") (= "=") (identifier "pbVar7")) (; ";")) (do_statement "do {\n    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }\n    pbVar14 = pbVar14 + 1;\n  } while (pbVar14 != pbVar24);" (do "do") (compound_statement "{\n    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }\n    pbVar14 = pbVar14 + 1;\n  }" ({ "{") (if_statement "if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {\n      *pbVar14 = 0xe;\n    }" (if "if") (parenthesized_expression "((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0))" (( "(") (binary_expression "(*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)" (parenthesized_expression "(*pbVar14 < 8)" (( "(") (binary_expression "*pbVar14 < 8" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (< "<") (number_literal "8")) () ")")) (&& "&&") (parenthesized_expression "((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)" (( "(") (binary_expression "(1 << (*pbVar14 & 0x1f) & 0xe6U) != 0" (parenthesized_expression "(1 << (*pbVar14 & 0x1f) & 0xe6U)" (( "(") (binary_expression "1 << (*pbVar14 & 0x1f) & 0xe6U" (binary_expression "1 << (*pbVar14 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(*pbVar14 & 0x1f)" (( "(") (binary_expression "*pbVar14 & 0x1f" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "0xe6U")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      *pbVar14 = 0xe;\n    }" ({ "{") (expression_statement "*pbVar14 = 0xe;" (assignment_expression "*pbVar14 = 0xe" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (number_literal "0xe")) (; ";")) (} "}"))) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar14 != pbVar24)" (( "(") (binary_expression "pbVar14 != pbVar24" (identifier "pbVar14") (!= "!=") (identifier "pbVar24")) () ")")) (; ";")) (if_statement "if (*pbVar7 == 0xd) {\n    *pbVar7 = bVar21;\n  }" (if "if") (parenthesized_expression "(*pbVar7 == 0xd)" (( "(") (binary_expression "*pbVar7 == 0xd" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (number_literal "0xd")) () ")")) (compound_statement "{\n    *pbVar7 = bVar21;\n  }" ({ "{") (expression_statement "*pbVar7 = bVar21;" (assignment_expression "*pbVar7 = bVar21" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (= "=") (identifier "bVar21")) (; ";")) (} "}"))) (expression_statement "pbVar14 = pbVar7 + 1;" (assignment_expression "pbVar14 = pbVar7 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar25 != 1) {\n    do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);\n  }" (if "if") (parenthesized_expression "(iVar25 != 1)" (( "(") (binary_expression "iVar25 != 1" (identifier "iVar25") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);\n  }" ({ "{") (do_statement "do {\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar14 != pbVar24);" (do "do") (compound_statement "{\n      if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }\n      pbVar14 = pbVar14 + 1;\n    }" ({ "{") (if_statement "if (*pbVar14 == 0xd) {\n        *pbVar14 = pbVar14[-1];\n      }" (if "if") (parenthesized_expression "(*pbVar14 == 0xd)" (( "(") (binary_expression "*pbVar14 == 0xd" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (number_literal "0xd")) () ")")) (compound_statement "{\n        *pbVar14 = pbVar14[-1];\n      }" ({ "{") (expression_statement "*pbVar14 = pbVar14[-1];" (assignment_expression "*pbVar14 = pbVar14[-1]" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (subscript_expression "pbVar14[-1]" (identifier "pbVar14") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (} "}"))) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar14 != pbVar24)" (( "(") (binary_expression "pbVar14 != pbVar24" (identifier "pbVar14") (!= "!=") (identifier "pbVar24")) () ")")) (; ";")) (} "}"))) (expression_statement "pbVar14 = pbVar7;" (assignment_expression "pbVar14 = pbVar7" (identifier "pbVar14") (= "=") (identifier "pbVar7")) (; ";")) (do_statement "do {\n    pbVar10 = pbVar14;\n    if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }\n    pbVar14 = pbVar14 + 1;\n    pbVar10 = pbVar7;\n  } while (pbVar14 != pbVar24);" (do "do") (compound_statement "{\n    pbVar10 = pbVar14;\n    if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }\n    pbVar14 = pbVar14 + 1;\n    pbVar10 = pbVar7;\n  }" ({ "{") (expression_statement "pbVar10 = pbVar14;" (assignment_expression "pbVar10 = pbVar14" (identifier "pbVar10") (= "=") (identifier "pbVar14")) (; ";")) (if_statement "if (*pbVar14 == 8) {\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }" (if "if") (parenthesized_expression "(*pbVar14 == 8)" (( "(") (binary_expression "*pbVar14 == 8" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (number_literal "8")) () ")")) (compound_statement "{\n      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }\n    }" ({ "{") (while_statement "while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }" (while "while") (parenthesized_expression "(pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1)" (( "(") (comma_expression "pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1" (assignment_expression "pbVar10 = pbVar10 + -1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + -1" (identifier "pbVar10") (+ "+") (number_literal "-1"))) (, ",") (binary_expression "pbVar10 != pbVar7 + -1" (identifier "pbVar10") (!= "!=") (binary_expression "pbVar7 + -1" (identifier "pbVar7") (+ "+") (number_literal "-1")))) () ")")) (compound_statement "{\n        bVar12 = *pbVar10;\n        if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }\n        if ((bVar12 == 3) || (bVar12 == 0)) break;\n      }" ({ "{") (expression_statement "bVar12 = *pbVar10;" (assignment_expression "bVar12 = *pbVar10" (identifier "bVar12") (= "=") (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10"))) (; ";")) (if_statement "if (bVar12 == 4) {\n          *pbVar14 = 0xb;\n          break;\n        }" (if "if") (parenthesized_expression "(bVar12 == 4)" (( "(") (binary_expression "bVar12 == 4" (identifier "bVar12") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n          *pbVar14 = 0xb;\n          break;\n        }" ({ "{") (expression_statement "*pbVar14 = 0xb;" (assignment_expression "*pbVar14 = 0xb" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (number_literal "0xb")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if ((bVar12 == 3) || (bVar12 == 0)) break;" (if "if") (parenthesized_expression "((bVar12 == 3) || (bVar12 == 0))" (( "(") (binary_expression "(bVar12 == 3) || (bVar12 == 0)" (parenthesized_expression "(bVar12 == 3)" (( "(") (binary_expression "bVar12 == 3" (identifier "bVar12") (== "==") (number_literal "3")) () ")")) (|| "||") (parenthesized_expression "(bVar12 == 0)" (( "(") (binary_expression "bVar12 == 0" (identifier "bVar12") (== "==") (number_literal "0")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (} "}"))) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar10 = pbVar7;" (assignment_expression "pbVar10 = pbVar7" (identifier "pbVar10") (= "=") (identifier "pbVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar14 != pbVar24)" (( "(") (binary_expression "pbVar14 != pbVar24" (identifier "pbVar14") (!= "!=") (identifier "pbVar24")) () ")")) (; ";")) (do_statement "do {\n    if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }\n    pbVar10 = pbVar10 + 1;\n  } while (pbVar10 != pbVar24);" (do "do") (compound_statement "{\n    if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }\n    pbVar10 = pbVar10 + 1;\n  }" ({ "{") (if_statement "if (*pbVar10 == 4) {\n      *pbVar10 = 3;\n    }" (if "if") (parenthesized_expression "(*pbVar10 == 4)" (( "(") (binary_expression "*pbVar10 == 4" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n      *pbVar10 = 3;\n    }" ({ "{") (expression_statement "*pbVar10 = 3;" (assignment_expression "*pbVar10 = 3" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (= "=") (number_literal "3")) (; ";")) (} "}"))) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar10 != pbVar24)" (( "(") (binary_expression "pbVar10 != pbVar24" (identifier "pbVar10") (!= "!=") (identifier "pbVar24")) () ")")) (; ";")) (expression_statement "bVar3 = 1 < iVar22;" (assignment_expression "bVar3 = 1 < iVar22" (identifier "bVar3") (= "=") (binary_expression "1 < iVar22" (number_literal "1") (< "<") (identifier "iVar22"))) (; ";")) (if_statement "if (bVar3) {\n    pbVar14 = pbVar7;\n    do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);\n  }" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (compound_statement "{\n    pbVar14 = pbVar7;\n    do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);\n  }" ({ "{") (expression_statement "pbVar14 = pbVar7;" (assignment_expression "pbVar14 = pbVar7" (identifier "pbVar14") (= "=") (identifier "pbVar7")) (; ";")) (do_statement "do {\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    } while (pbVar7 + iVar22 + -1 != pbVar14);" (do "do") (compound_statement "{\n      while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }\n      if (*pbVar14 != 8) goto LAB_00033c30;\nLAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;\n      pbVar14[1] = 8;\n      pbVar14 = pbVar14 + 1;\n    }" ({ "{") (while_statement "while (pbVar14[1] != 9) {\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }" (while "while") (parenthesized_expression "(pbVar14[1] != 9)" (( "(") (binary_expression "pbVar14[1] != 9" (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "9")) () ")")) (compound_statement "{\n        if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }\nLAB_00033c30:\n        pbVar14 = pbVar14 + 1;\n        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;\n      }" ({ "{") (if_statement "if (pbVar14[1] == 0xc) {\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }" (if "if") (parenthesized_expression "(pbVar14[1] == 0xc)" (( "(") (binary_expression "pbVar14[1] == 0xc" (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0xc")) () ")")) (compound_statement "{\n          if (*pbVar14 == 8) goto LAB_00033c54;\n          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }\n        }" ({ "{") (if_statement "if (*pbVar14 == 8) goto LAB_00033c54;" (if "if") (parenthesized_expression "(*pbVar14 == 8)" (( "(") (binary_expression "*pbVar14 == 8" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (number_literal "8")) () ")")) (goto_statement "goto LAB_00033c54;" (goto "goto") (statement_identifier "LAB_00033c54") (; ";"))) (if_statement "if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {\n            pbVar14[1] = 0xb;\n          }" (if "if") (parenthesized_expression "((*pbVar14 == 0xb) && (pbVar14[2] == 0xb))" (( "(") (binary_expression "(*pbVar14 == 0xb) && (pbVar14[2] == 0xb)" (parenthesized_expression "(*pbVar14 == 0xb)" (( "(") (binary_expression "*pbVar14 == 0xb" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (number_literal "0xb")) () ")")) (&& "&&") (parenthesized_expression "(pbVar14[2] == 0xb)" (( "(") (binary_expression "pbVar14[2] == 0xb" (subscript_expression "pbVar14[2]" (identifier "pbVar14") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0xb")) () ")"))) () ")")) (compound_statement "{\n            pbVar14[1] = 0xb;\n          }" ({ "{") (expression_statement "pbVar14[1] = 0xb;" (assignment_expression "pbVar14[1] = 0xb" (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0xb")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00033c30:\n        pbVar14 = pbVar14 + 1;" (statement_identifier "LAB_00033c30") (: ":") (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;" (if "if") (parenthesized_expression "(pbVar7 + iVar22 + -1 == pbVar14)" (( "(") (binary_expression "pbVar7 + iVar22 + -1 == pbVar14" (binary_expression "pbVar7 + iVar22 + -1" (binary_expression "pbVar7 + iVar22" (identifier "pbVar7") (+ "+") (identifier "iVar22")) (+ "+") (number_literal "-1")) (== "==") (identifier "pbVar14")) () ")")) (goto_statement "goto LAB_00033c70;" (goto "goto") (statement_identifier "LAB_00033c70") (; ";"))) (} "}"))) (if_statement "if (*pbVar14 != 8) goto LAB_00033c30;" (if "if") (parenthesized_expression "(*pbVar14 != 8)" (( "(") (binary_expression "*pbVar14 != 8" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (!= "!=") (number_literal "8")) () ")")) (goto_statement "goto LAB_00033c30;" (goto "goto") (statement_identifier "LAB_00033c30") (; ";"))) (labeled_statement "LAB_00033c54:\n      if (pbVar14[2] != 8) goto LAB_00033c30;" (statement_identifier "LAB_00033c54") (: ":") (if_statement "if (pbVar14[2] != 8) goto LAB_00033c30;" (if "if") (parenthesized_expression "(pbVar14[2] != 8)" (( "(") (binary_expression "pbVar14[2] != 8" (subscript_expression "pbVar14[2]" (identifier "pbVar14") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "8")) () ")")) (goto_statement "goto LAB_00033c30;" (goto "goto") (statement_identifier "LAB_00033c30") (; ";")))) (expression_statement "pbVar14[1] = 8;" (assignment_expression "pbVar14[1] = 8" (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar7 + iVar22 + -1 != pbVar14)" (( "(") (binary_expression "pbVar7 + iVar22 + -1 != pbVar14" (binary_expression "pbVar7 + iVar22 + -1" (binary_expression "pbVar7 + iVar22" (identifier "pbVar7") (+ "+") (identifier "iVar22")) (+ "+") (number_literal "-1")) (!= "!=") (identifier "pbVar14")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00033c70:\n  iVar11 = 0;" (statement_identifier "LAB_00033c70") (: ":") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";"))) (expression_statement "pbVar14 = pbVar7;" (assignment_expression "pbVar14 = pbVar7" (identifier "pbVar14") (= "=") (identifier "pbVar7")) (; ";")) (do_statement "do {\n    if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n    pbVar14 = pbVar14 + 1;\n  } while (bVar2);" (do "do") (compound_statement "{\n    if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n    pbVar14 = pbVar14 + 1;\n  }" ({ "{") (if_statement "if (*pbVar14 == 10) {\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }" (if "if") (parenthesized_expression "(*pbVar14 == 10)" (( "(") (binary_expression "*pbVar14 == 10" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (number_literal "10")) () ")")) (compound_statement "{\n      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }\n    }" ({ "{") (if_statement "if ((iVar11 == 0) || (pbVar14[-1] != 8)) {\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }\n      else {\n        *pbVar14 = 8;\n      }" (if "if") (parenthesized_expression "((iVar11 == 0) || (pbVar14[-1] != 8))" (( "(") (binary_expression "(iVar11 == 0) || (pbVar14[-1] != 8)" (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pbVar14[-1] != 8)" (( "(") (binary_expression "pbVar14[-1] != 8" (subscript_expression "pbVar14[-1]" (identifier "pbVar14") ([ "[") (number_literal "-1") (] "]")) (!= "!=") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n        if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }\n      }" ({ "{") (if_statement "if (iVar11 < iVar22) {\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }" (if "if") (parenthesized_expression "(iVar11 < iVar22)" (( "(") (binary_expression "iVar11 < iVar22" (identifier "iVar11") (< "<") (identifier "iVar22")) () ")")) (compound_statement "{\n          if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }\n        }" ({ "{") (if_statement "if (pbVar14[1] == 8) {\nLAB_000342a8:\n            *pbVar14 = 8;\n          }\n          else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }" (if "if") (parenthesized_expression "(pbVar14[1] == 8)" (( "(") (binary_expression "pbVar14[1] == 8" (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "8")) () ")")) (compound_statement "{\nLAB_000342a8:\n            *pbVar14 = 8;\n          }" ({ "{") (labeled_statement "LAB_000342a8:\n            *pbVar14 = 8;" (statement_identifier "LAB_000342a8") (: ":") (expression_statement "*pbVar14 = 8;" (assignment_expression "*pbVar14 = 8" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (number_literal "8")) (; ";"))) (} "}")) (else_clause "else if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }" (else "else") (if_statement "if (pbVar14[1] == 10) {\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }" (if "if") (parenthesized_expression "(pbVar14[1] == 10)" (( "(") (binary_expression "pbVar14[1] == 10" (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "10")) () ")")) (compound_statement "{\n            pbVar24 = pbVar7 + iVar11 + 1;\n            do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);\n            if (bVar12 == 8) goto LAB_000342a8;\n          }" ({ "{") (expression_statement "pbVar24 = pbVar7 + iVar11 + 1;" (assignment_expression "pbVar24 = pbVar7 + iVar11 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar7 + iVar11 + 1" (binary_expression "pbVar7 + iVar11" (identifier "pbVar7") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            } while (bVar12 == 10);" (do "do") (compound_statement "{\n              bVar12 = *pbVar24;\n              if (pbVar7 + iVar22 == pbVar24) break;\n              pbVar24 = pbVar24 + 1;\n            }" ({ "{") (expression_statement "bVar12 = *pbVar24;" (assignment_expression "bVar12 = *pbVar24" (identifier "bVar12") (= "=") (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24"))) (; ";")) (if_statement "if (pbVar7 + iVar22 == pbVar24) break;" (if "if") (parenthesized_expression "(pbVar7 + iVar22 == pbVar24)" (( "(") (binary_expression "pbVar7 + iVar22 == pbVar24" (binary_expression "pbVar7 + iVar22" (identifier "pbVar7") (+ "+") (identifier "iVar22")) (== "==") (identifier "pbVar24")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + 1" (identifier "pbVar24") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12 == 10)" (( "(") (binary_expression "bVar12 == 10" (identifier "bVar12") (== "==") (number_literal "10")) () ")")) (; ";")) (if_statement "if (bVar12 == 8) goto LAB_000342a8;" (if "if") (parenthesized_expression "(bVar12 == 8)" (( "(") (binary_expression "bVar12 == 8" (identifier "bVar12") (== "==") (number_literal "8")) () ")")) (goto_statement "goto LAB_000342a8;" (goto "goto") (statement_identifier "LAB_000342a8") (; ";"))) (} "}"))))) (} "}"))) (} "}")) (else_clause "else {\n        *pbVar14 = 8;\n      }" (else "else") (compound_statement "{\n        *pbVar14 = 8;\n      }" ({ "{") (expression_statement "*pbVar14 = 8;" (assignment_expression "*pbVar14 = 8" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (number_literal "8")) (; ";")) (} "}")))) (} "}"))) (expression_statement "bVar2 = iVar11 < iVar22;" (assignment_expression "bVar2 = iVar11 < iVar22" (identifier "bVar2") (= "=") (binary_expression "iVar11 < iVar22" (identifier "iVar11") (< "<") (identifier "iVar22"))) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    uVar15 = (uint)pbVar7[iVar11];\n    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);" (do "do") (compound_statement "{\n    uVar15 = (uint)pbVar7[iVar11];\n    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  }" ({ "{") (expression_statement "uVar15 = (uint)pbVar7[iVar11];" (assignment_expression "uVar15 = (uint)pbVar7[iVar11]" (identifier "uVar15") (= "=") (cast_expression "(uint)pbVar7[iVar11]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar7[iVar11]" (identifier "pbVar7") ([ "[") (identifier "iVar11") (] "]")))) (; ";")) (if_statement "if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {\n      pbVar7[iVar11] = 0x12;\n    }" (if "if") (parenthesized_expression "((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0))" (( "(") (binary_expression "(uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)" (parenthesized_expression "(uVar15 < 0xd)" (( "(") (binary_expression "uVar15 < 0xd" (identifier "uVar15") (< "<") (number_literal "0xd")) () ")")) (&& "&&") (parenthesized_expression "((1 << (uVar15 & 0x1f) & 0x1600U) != 0)" (( "(") (binary_expression "(1 << (uVar15 & 0x1f) & 0x1600U) != 0" (parenthesized_expression "(1 << (uVar15 & 0x1f) & 0x1600U)" (( "(") (binary_expression "1 << (uVar15 & 0x1f) & 0x1600U" (binary_expression "1 << (uVar15 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(uVar15 & 0x1f)" (( "(") (binary_expression "uVar15 & 0x1f" (identifier "uVar15") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "0x1600U")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      pbVar7[iVar11] = 0x12;\n    }" ({ "{") (expression_statement "pbVar7[iVar11] = 0x12;" (assignment_expression "pbVar7[iVar11] = 0x12" (subscript_expression "pbVar7[iVar11]" (identifier "pbVar7") ([ "[") (identifier "iVar11") (] "]")) (= "=") (number_literal "0x12")) (; ";")) (} "}"))) (expression_statement "bVar2 = iVar11 < iVar22;" (assignment_expression "bVar2 = iVar11 < iVar22" (identifier "bVar2") (= "=") (binary_expression "iVar11 < iVar22" (identifier "iVar11") (< "<") (identifier "iVar22"))) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }\nLAB_00033cec:\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar2);" (do "do") (compound_statement "{\n    while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }\nLAB_00033cec:\n    bVar2 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  }" ({ "{") (while_statement "while( true ) {\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      if (pbVar7[iVar11] != 8) break;\n      uVar15 = 8;\n      pbVar14 = pbVar7 + -1 + iVar11;\n      do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);\n      bVar2 = iVar22 <= iVar11;\n      pbVar7[iVar11] = 0;\n      iVar11 = iVar11 + 1;\n      if (bVar2) goto LAB_00033d38;\n    }" ({ "{") (if_statement "if (pbVar7[iVar11] != 8) break;" (if "if") (parenthesized_expression "(pbVar7[iVar11] != 8)" (( "(") (binary_expression "pbVar7[iVar11] != 8" (subscript_expression "pbVar7[iVar11]" (identifier "pbVar7") ([ "[") (identifier "iVar11") (] "]")) (!= "!=") (number_literal "8")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar15 = 8;" (assignment_expression "uVar15 = 8" (identifier "uVar15") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar14 = pbVar7 + -1 + iVar11;" (assignment_expression "pbVar14 = pbVar7 + -1 + iVar11" (identifier "pbVar14") (= "=") (binary_expression "pbVar7 + -1 + iVar11" (binary_expression "pbVar7 + -1" (identifier "pbVar7") (+ "+") (number_literal "-1")) (+ "+") (identifier "iVar11"))) (; ";")) (do_statement "do {\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      } while (uVar15 != 0);" (do "do") (compound_statement "{\n        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;\n        uVar15 = (uint)*pbVar14;\n        pbVar14 = pbVar14 + -1;\n      }" ({ "{") (if_statement "if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;" (if "if") (parenthesized_expression "((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14))" (( "(") (binary_expression "(uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)" (parenthesized_expression "(uVar15 - 3 < 2)" (( "(") (binary_expression "uVar15 - 3 < 2" (binary_expression "uVar15 - 3" (identifier "uVar15") (- "-") (number_literal "3")) (< "<") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(pbVar7 + -1 == pbVar14)" (( "(") (binary_expression "pbVar7 + -1 == pbVar14" (binary_expression "pbVar7 + -1" (identifier "pbVar7") (+ "+") (number_literal "-1")) (== "==") (identifier "pbVar14")) () ")"))) () ")")) (goto_statement "goto LAB_00033cec;" (goto "goto") (statement_identifier "LAB_00033cec") (; ";"))) (expression_statement "uVar15 = (uint)*pbVar14;" (assignment_expression "uVar15 = (uint)*pbVar14" (identifier "uVar15") (= "=") (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar14"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + -1;" (assignment_expression "pbVar14 = pbVar14 + -1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + -1" (identifier "pbVar14") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "bVar2 = iVar22 <= iVar11;" (assignment_expression "bVar2 = iVar22 <= iVar11" (identifier "bVar2") (= "=") (binary_expression "iVar22 <= iVar11" (identifier "iVar22") (<= "<=") (identifier "iVar11"))) (; ";")) (expression_statement "pbVar7[iVar11] = 0;" (assignment_expression "pbVar7[iVar11] = 0" (subscript_expression "pbVar7[iVar11]" (identifier "pbVar7") ([ "[") (identifier "iVar11") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar2) goto LAB_00033d38;" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (goto_statement "goto LAB_00033d38;" (goto "goto") (statement_identifier "LAB_00033d38") (; ";"))) (} "}"))) (labeled_statement "LAB_00033cec:\n    bVar2 = iVar11 < iVar22;" (statement_identifier "LAB_00033cec") (: ":") (expression_statement "bVar2 = iVar11 < iVar22;" (assignment_expression "bVar2 = iVar11 < iVar22" (identifier "bVar2") (= "=") (binary_expression "iVar11 < iVar22" (identifier "iVar11") (< "<") (identifier "iVar22"))) (; ";"))) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (; ";")) (labeled_statement "LAB_00033d38:\n  if (iVar25 == 1) {\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }\n  else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }" (statement_identifier "LAB_00033d38") (: ":") (if_statement "if (iVar25 == 1) {\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }\n  else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }" (if "if") (parenthesized_expression "(iVar25 == 1)" (( "(") (binary_expression "iVar25 == 1" (identifier "iVar25") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    if (!bVar3) goto LAB_00033e60;\nLAB_00033d58:\n    iVar11 = 1;\n    do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);\nLAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;\n  }" ({ "{") (if_statement "if (!bVar3) goto LAB_00033e60;" (if "if") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")")) (goto_statement "goto LAB_00033e60;" (goto "goto") (statement_identifier "LAB_00033e60") (; ";"))) (labeled_statement "LAB_00033d58:\n    iVar11 = 1;" (statement_identifier "LAB_00033d58") (: ":") (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" (identifier "iVar11") (= "=") (number_literal "1")) (; ";"))) (do_statement "do {\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    } while (iVar11 < iVar22);" (do "do") (compound_statement "{\n      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }\n      bVar12 = pbVar14[-1];\n      iVar26 = iVar11;\n      if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);\n      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;\n      if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }\n      while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }\n      iVar11 = iVar11 + 2;\n    }" ({ "{") (while_statement "while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }" (while "while") (parenthesized_expression "(pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12)" (( "(") (comma_expression "pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12" (assignment_expression "pbVar14 = pbVar7 + iVar11" (identifier "pbVar14") (= "=") (binary_expression "pbVar7 + iVar11" (identifier "pbVar7") (+ "+") (identifier "iVar11"))) (, ",") (binary_expression "*pbVar14 != 0x12" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (!= "!=") (number_literal "0x12"))) () ")")) (compound_statement "{\nLAB_00033d74:\n        iVar11 = iVar11 + 1;\nLAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;\n      }" ({ "{") (labeled_statement "LAB_00033d74:\n        iVar11 = iVar11 + 1;" (statement_identifier "LAB_00033d74") (: ":") (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";"))) (labeled_statement "LAB_00033d78:\n        if (iVar22 <= iVar11) goto LAB_00033e38;" (statement_identifier "LAB_00033d78") (: ":") (if_statement "if (iVar22 <= iVar11) goto LAB_00033e38;" (if "if") (parenthesized_expression "(iVar22 <= iVar11)" (( "(") (binary_expression "iVar22 <= iVar11" (identifier "iVar22") (<= "<=") (identifier "iVar11")) () ")")) (goto_statement "goto LAB_00033e38;" (goto "goto") (statement_identifier "LAB_00033e38") (; ";")))) (} "}"))) (expression_statement "bVar12 = pbVar14[-1];" (assignment_expression "bVar12 = pbVar14[-1]" (identifier "bVar12") (= "=") (subscript_expression "pbVar14[-1]" (identifier "pbVar14") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "iVar26 = iVar11;" (assignment_expression "iVar26 = iVar11" (identifier "iVar26") (= "=") (identifier "iVar11")) (; ";")) (if_statement "if (bVar12 == 0) {\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }" (if "if") (parenthesized_expression "(bVar12 == 0)" (( "(") (binary_expression "bVar12 == 0" (identifier "bVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);\n        if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }\n        goto LAB_00033d74;\n      }" ({ "{") (do_statement "do {\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        } while (pbVar7[iVar26] == 0x12);" (do "do") (compound_statement "{\n          iVar13 = iVar26;\n          iVar26 = iVar13 + 1;\n          if (iVar22 <= iVar26) break;\n        }" ({ "{") (expression_statement "iVar13 = iVar26;" (assignment_expression "iVar13 = iVar26" (identifier "iVar13") (= "=") (identifier "iVar26")) (; ";")) (expression_statement "iVar26 = iVar13 + 1;" (assignment_expression "iVar26 = iVar13 + 1" (identifier "iVar26") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar22 <= iVar26) break;" (if "if") (parenthesized_expression "(iVar22 <= iVar26)" (( "(") (binary_expression "iVar22 <= iVar26" (identifier "iVar22") (<= "<=") (identifier "iVar26")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(pbVar7[iVar26] == 0x12)" (( "(") (binary_expression "pbVar7[iVar26] == 0x12" (subscript_expression "pbVar7[iVar26]" (identifier "pbVar7") ([ "[") (identifier "iVar26") (] "]")) (== "==") (number_literal "0x12")) () ")")) (; ";")) (if_statement "if (pbVar7[iVar26] == 0) {\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }" (if "if") (parenthesized_expression "(pbVar7[iVar26] == 0)" (( "(") (binary_expression "pbVar7[iVar26] == 0" (subscript_expression "pbVar7[iVar26]" (identifier "pbVar7") ([ "[") (identifier "iVar26") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }\n          goto LAB_00033d78;\n        }" ({ "{") (if_statement "if (iVar11 < iVar26) {\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }\n          else {\n            iVar11 = iVar11 + 1;\n          }" (if "if") (parenthesized_expression "(iVar11 < iVar26)" (( "(") (binary_expression "iVar11 < iVar26" (identifier "iVar11") (< "<") (identifier "iVar26")) () ")")) (compound_statement "{\n            while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }\n            iVar11 = iVar11 + 2;\n          }" ({ "{") (while_statement "while( true ) {\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              *pbVar14 = 0;\n              if (iVar13 <= iVar11) break;\n              pbVar14 = pbVar7 + iVar11 + 1;\n              iVar11 = iVar11 + 1;\n            }" ({ "{") (expression_statement "*pbVar14 = 0;" (assignment_expression "*pbVar14 = 0" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar13 <= iVar11) break;" (if "if") (parenthesized_expression "(iVar13 <= iVar11)" (( "(") (binary_expression "iVar13 <= iVar11" (identifier "iVar13") (<= "<=") (identifier "iVar11")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar14 = pbVar7 + iVar11 + 1;" (assignment_expression "pbVar14 = pbVar7 + iVar11 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar7 + iVar11 + 1" (binary_expression "pbVar7 + iVar11" (identifier "pbVar7") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar11 = iVar11 + 2;" (assignment_expression "iVar11 = iVar11 + 2" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 2" (identifier "iVar11") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n            iVar11 = iVar11 + 1;\n          }" (else "else") (compound_statement "{\n            iVar11 = iVar11 + 1;\n          }" ({ "{") (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00033d78;" (goto "goto") (statement_identifier "LAB_00033d78") (; ";")) (} "}"))) (goto_statement "goto LAB_00033d74;" (goto "goto") (statement_identifier "LAB_00033d74") (; ";")) (} "}"))) (if_statement "if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;" (if "if") (parenthesized_expression "(((bVar12 & 0xf7) != 3) && (bVar12 != 8))" (( "(") (binary_expression "((bVar12 & 0xf7) != 3) && (bVar12 != 8)" (parenthesized_expression "((bVar12 & 0xf7) != 3)" (( "(") (binary_expression "(bVar12 & 0xf7) != 3" (parenthesized_expression "(bVar12 & 0xf7)" (( "(") (binary_expression "bVar12 & 0xf7" (identifier "bVar12") (& "&") (number_literal "0xf7")) () ")")) (!= "!=") (number_literal "3")) () ")")) (&& "&&") (parenthesized_expression "(bVar12 != 8)" (( "(") (binary_expression "bVar12 != 8" (identifier "bVar12") (!= "!=") (number_literal "8")) () ")"))) () ")")) (goto_statement "goto LAB_00033d74;" (goto "goto") (statement_identifier "LAB_00033d74") (; ";"))) (if_statement "if (iVar22 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }" (if "if") (parenthesized_expression "(iVar22 <= iVar11)" (( "(") (binary_expression "iVar22 <= iVar11" (identifier "iVar22") (<= "<=") (identifier "iVar11")) () ")")) (compound_statement "{\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }" ({ "{") (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_00033d78;" (goto "goto") (statement_identifier "LAB_00033d78") (; ";")) (} "}"))) (do_statement "do {\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      } while (bVar12 == 0x12);" (do "do") (compound_statement "{\n        iVar23 = iVar26;\n        iVar26 = iVar23 + 1;\n        bVar12 = pbVar7[iVar26];\n        iVar13 = iVar22;\n        if (iVar26 == iVar22) break;\n        iVar13 = iVar26;\n      }" ({ "{") (expression_statement "iVar23 = iVar26;" (assignment_expression "iVar23 = iVar26" (identifier "iVar23") (= "=") (identifier "iVar26")) (; ";")) (expression_statement "iVar26 = iVar23 + 1;" (assignment_expression "iVar26 = iVar23 + 1" (identifier "iVar26") (= "=") (binary_expression "iVar23 + 1" (identifier "iVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar12 = pbVar7[iVar26];" (assignment_expression "bVar12 = pbVar7[iVar26]" (identifier "bVar12") (= "=") (subscript_expression "pbVar7[iVar26]" (identifier "pbVar7") ([ "[") (identifier "iVar26") (] "]"))) (; ";")) (expression_statement "iVar13 = iVar22;" (assignment_expression "iVar13 = iVar22" (identifier "iVar13") (= "=") (identifier "iVar22")) (; ";")) (if_statement "if (iVar26 == iVar22) break;" (if "if") (parenthesized_expression "(iVar26 == iVar22)" (( "(") (binary_expression "iVar26 == iVar22" (identifier "iVar26") (== "==") (identifier "iVar22")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar13 = iVar26;" (assignment_expression "iVar13 = iVar26" (identifier "iVar13") (= "=") (identifier "iVar26")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12 == 0x12)" (( "(") (binary_expression "bVar12 == 0x12" (identifier "bVar12") (== "==") (number_literal "0x12")) () ")")) (; ";")) (if_statement "if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;" (if "if") (parenthesized_expression "(((bVar12 & 0xf7) != 3) && (bVar12 != 8))" (( "(") (binary_expression "((bVar12 & 0xf7) != 3) && (bVar12 != 8)" (parenthesized_expression "((bVar12 & 0xf7) != 3)" (( "(") (binary_expression "(bVar12 & 0xf7) != 3" (parenthesized_expression "(bVar12 & 0xf7)" (( "(") (binary_expression "bVar12 & 0xf7" (identifier "bVar12") (& "&") (number_literal "0xf7")) () ")")) (!= "!=") (number_literal "3")) () ")")) (&& "&&") (parenthesized_expression "(bVar12 != 8)" (( "(") (binary_expression "bVar12 != 8" (identifier "bVar12") (!= "!=") (number_literal "8")) () ")"))) () ")")) (goto_statement "goto LAB_00033d74;" (goto "goto") (statement_identifier "LAB_00033d74") (; ";"))) (if_statement "if (iVar13 <= iVar11) {\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }" (if "if") (parenthesized_expression "(iVar13 <= iVar11)" (( "(") (binary_expression "iVar13 <= iVar11" (identifier "iVar13") (<= "<=") (identifier "iVar11")) () ")")) (compound_statement "{\n        iVar11 = iVar11 + 1;\n        goto LAB_00033d78;\n      }" ({ "{") (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_00033d78;" (goto "goto") (statement_identifier "LAB_00033d78") (; ";")) (} "}"))) (while_statement "while( true ) {\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        *pbVar14 = 3;\n        if (iVar23 <= iVar11) break;\n        pbVar14 = pbVar7 + iVar11 + 1;\n        iVar11 = iVar11 + 1;\n      }" ({ "{") (expression_statement "*pbVar14 = 3;" (assignment_expression "*pbVar14 = 3" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (number_literal "3")) (; ";")) (if_statement "if (iVar23 <= iVar11) break;" (if "if") (parenthesized_expression "(iVar23 <= iVar11)" (( "(") (binary_expression "iVar23 <= iVar11" (identifier "iVar23") (<= "<=") (identifier "iVar11")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar14 = pbVar7 + iVar11 + 1;" (assignment_expression "pbVar14 = pbVar7 + iVar11 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar7 + iVar11 + 1" (binary_expression "pbVar7 + iVar11" (identifier "pbVar7") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar11 = iVar11 + 2;" (assignment_expression "iVar11 = iVar11 + 2" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 2" (identifier "iVar11") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 < iVar22)" (( "(") (binary_expression "iVar11 < iVar22" (identifier "iVar11") (< "<") (identifier "iVar22")) () ")")) (; ";")) (labeled_statement "LAB_00033e38:\n    if (iVar25 == 1) goto LAB_00033e60;" (statement_identifier "LAB_00033e38") (: ":") (if_statement "if (iVar25 == 1) goto LAB_00033e60;" (if "if") (parenthesized_expression "(iVar25 == 1)" (( "(") (binary_expression "iVar25 == 1" (identifier "iVar25") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_00033e60;" (goto "goto") (statement_identifier "LAB_00033e60") (; ";")))) (} "}")) (else_clause "else {\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }" (else "else") (compound_statement "{\n    if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }\n    if (bVar3) goto LAB_00033d58;\n  }" ({ "{") (if_statement "if (*pbVar7 == 0x12) {\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }" (if "if") (parenthesized_expression "(*pbVar7 == 0x12)" (( "(") (binary_expression "*pbVar7 == 0x12" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (number_literal "0x12")) () ")")) (compound_statement "{\n      bVar12 = pbVar7[1];\n      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }\n    }" ({ "{") (expression_statement "bVar12 = pbVar7[1];" (assignment_expression "bVar12 = pbVar7[1]" (identifier "bVar12") (= "=") (subscript_expression "pbVar7[1]" (identifier "pbVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n        *pbVar7 = 3;\n      }\n      else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }" (if "if") (parenthesized_expression "(((bVar12 & 0xf7) == 3) || (bVar12 == 8))" (( "(") (binary_expression "((bVar12 & 0xf7) == 3) || (bVar12 == 8)" (parenthesized_expression "((bVar12 & 0xf7) == 3)" (( "(") (binary_expression "(bVar12 & 0xf7) == 3" (parenthesized_expression "(bVar12 & 0xf7)" (( "(") (binary_expression "bVar12 & 0xf7" (identifier "bVar12") (& "&") (number_literal "0xf7")) () ")")) (== "==") (number_literal "3")) () ")")) (|| "||") (parenthesized_expression "(bVar12 == 8)" (( "(") (binary_expression "bVar12 == 8" (identifier "bVar12") (== "==") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n        *pbVar7 = 3;\n      }" ({ "{") (expression_statement "*pbVar7 = 3;" (assignment_expression "*pbVar7 = 3" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (= "=") (number_literal "3")) (; ";")) (} "}")) (else_clause "else if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }" (else "else") (if_statement "if (bVar12 == 0) {\n        *pbVar7 = 0;\n      }" (if "if") (parenthesized_expression "(bVar12 == 0)" (( "(") (binary_expression "bVar12 == 0" (identifier "bVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *pbVar7 = 0;\n      }" ({ "{") (expression_statement "*pbVar7 = 0;" (assignment_expression "*pbVar7 = 0" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (= "=") (number_literal "0")) (; ";")) (} "}"))))) (} "}"))) (if_statement "if (bVar3) goto LAB_00033d58;" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (goto_statement "goto LAB_00033d58;" (goto "goto") (statement_identifier "LAB_00033d58") (; ";"))) (} "}"))))) (expression_statement "pbVar14 = pbVar7 + param_2 + -1;" (assignment_expression "pbVar14 = pbVar7 + param_2 + -1" (identifier "pbVar14") (= "=") (binary_expression "pbVar7 + param_2 + -1" (binary_expression "pbVar7 + param_2" (identifier "pbVar7") (+ "+") (identifier "param_2")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*pbVar14 == 0x12) {\n    bVar12 = pbVar7[param_2 + -2];\n    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }\n  }" (if "if") (parenthesized_expression "(*pbVar14 == 0x12)" (( "(") (binary_expression "*pbVar14 == 0x12" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (number_literal "0x12")) () ")")) (compound_statement "{\n    bVar12 = pbVar7[param_2 + -2];\n    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }\n  }" ({ "{") (expression_statement "bVar12 = pbVar7[param_2 + -2];" (assignment_expression "bVar12 = pbVar7[param_2 + -2]" (identifier "bVar12") (= "=") (subscript_expression "pbVar7[param_2 + -2]" (identifier "pbVar7") ([ "[") (binary_expression "param_2 + -2" (identifier "param_2") (+ "+") (number_literal "-2")) (] "]"))) (; ";")) (if_statement "if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {\n      *pbVar14 = 3;\n    }\n    else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }" (if "if") (parenthesized_expression "(((bVar12 & 0xf7) == 3) || (bVar12 == 8))" (( "(") (binary_expression "((bVar12 & 0xf7) == 3) || (bVar12 == 8)" (parenthesized_expression "((bVar12 & 0xf7) == 3)" (( "(") (binary_expression "(bVar12 & 0xf7) == 3" (parenthesized_expression "(bVar12 & 0xf7)" (( "(") (binary_expression "bVar12 & 0xf7" (identifier "bVar12") (& "&") (number_literal "0xf7")) () ")")) (== "==") (number_literal "3")) () ")")) (|| "||") (parenthesized_expression "(bVar12 == 8)" (( "(") (binary_expression "bVar12 == 8" (identifier "bVar12") (== "==") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n      *pbVar14 = 3;\n    }" ({ "{") (expression_statement "*pbVar14 = 3;" (assignment_expression "*pbVar14 = 3" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (number_literal "3")) (; ";")) (} "}")) (else_clause "else if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }" (else "else") (if_statement "if (bVar12 == 0) {\n      *pbVar14 = 0;\n    }" (if "if") (parenthesized_expression "(bVar12 == 0)" (( "(") (binary_expression "bVar12 == 0" (identifier "bVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *pbVar14 = 0;\n    }" ({ "{") (expression_statement "*pbVar14 = 0;" (assignment_expression "*pbVar14 = 0" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (number_literal "0")) (; ";")) (} "}"))))) (} "}"))) (labeled_statement "LAB_00033e60:\n  iVar11 = 0;" (statement_identifier "LAB_00033e60") (: ":") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";"))) (do_statement "do {\n    while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }\n    if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }\n    *pbVar14 = 0;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);" (do "do") (compound_statement "{\n    while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }\n    if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }\n    *pbVar14 = 0;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  }" ({ "{") (while_statement "while( true ) {\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      pbVar14 = pbVar7 + iVar11;\n      if (*pbVar14 == 0x12) break;\nLAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033ea8;\n    }" ({ "{") (expression_statement "pbVar14 = pbVar7 + iVar11;" (assignment_expression "pbVar14 = pbVar7 + iVar11" (identifier "pbVar14") (= "=") (binary_expression "pbVar7 + iVar11" (identifier "pbVar7") (+ "+") (identifier "iVar11"))) (; ";")) (if_statement "if (*pbVar14 == 0x12) break;" (if "if") (parenthesized_expression "(*pbVar14 == 0x12)" (( "(") (binary_expression "*pbVar14 == 0x12" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (== "==") (number_literal "0x12")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00033e6c:\n      bVar3 = iVar22 <= iVar11;" (statement_identifier "LAB_00033e6c") (: ":") (expression_statement "bVar3 = iVar22 <= iVar11;" (assignment_expression "bVar3 = iVar22 <= iVar11" (identifier "bVar3") (= "=") (binary_expression "iVar22 <= iVar11" (identifier "iVar22") (<= "<=") (identifier "iVar11"))) (; ";"))) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar3) goto LAB_00033ea8;" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (goto_statement "goto LAB_00033ea8;" (goto "goto") (statement_identifier "LAB_00033ea8") (; ";"))) (} "}"))) (if_statement "if ((pbVar8[iVar11] & 1) != 0) {\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }" (if "if") (parenthesized_expression "((pbVar8[iVar11] & 1) != 0)" (( "(") (binary_expression "(pbVar8[iVar11] & 1) != 0" (parenthesized_expression "(pbVar8[iVar11] & 1)" (( "(") (binary_expression "pbVar8[iVar11] & 1" (subscript_expression "pbVar8[iVar11]" (identifier "pbVar8") ([ "[") (identifier "iVar11") (] "]")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *pbVar14 = 3;\n      goto LAB_00033e6c;\n    }" ({ "{") (expression_statement "*pbVar14 = 3;" (assignment_expression "*pbVar14 = 3" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (number_literal "3")) (; ";")) (goto_statement "goto LAB_00033e6c;" (goto "goto") (statement_identifier "LAB_00033e6c") (; ";")) (} "}"))) (expression_statement "*pbVar14 = 0;" (assignment_expression "*pbVar14 = 0" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar3 = iVar11 < iVar22;" (assignment_expression "bVar3 = iVar11 < iVar22" (identifier "bVar3") (= "=") (binary_expression "iVar11 < iVar22" (identifier "iVar11") (< "<") (identifier "iVar22"))) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (; ";")) (labeled_statement "LAB_00033ea8:\n  iVar11 = 0;" (statement_identifier "LAB_00033ea8") (: ":") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";"))) (do_statement "do {\n    while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }\n    bVar1 = pbVar7[iVar11];\n    if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }\n    *pbVar14 = bVar12 + 1;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);" (do "do") (compound_statement "{\n    while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }\n    bVar1 = pbVar7[iVar11];\n    if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }\n    *pbVar14 = bVar12 + 1;\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  }" ({ "{") (while_statement "while( true ) {\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      pbVar14 = pbVar8 + iVar11;\n      bVar12 = *pbVar14;\n      if ((bVar12 & 1) == 0) break;\nLAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f0c;\n    }" ({ "{") (expression_statement "pbVar14 = pbVar8 + iVar11;" (assignment_expression "pbVar14 = pbVar8 + iVar11" (identifier "pbVar14") (= "=") (binary_expression "pbVar8 + iVar11" (identifier "pbVar8") (+ "+") (identifier "iVar11"))) (; ";")) (expression_statement "bVar12 = *pbVar14;" (assignment_expression "bVar12 = *pbVar14" (identifier "bVar12") (= "=") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14"))) (; ";")) (if_statement "if ((bVar12 & 1) == 0) break;" (if "if") (parenthesized_expression "((bVar12 & 1) == 0)" (( "(") (binary_expression "(bVar12 & 1) == 0" (parenthesized_expression "(bVar12 & 1)" (( "(") (binary_expression "bVar12 & 1" (identifier "bVar12") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00033ecc:\n      bVar3 = iVar22 <= iVar11;" (statement_identifier "LAB_00033ecc") (: ":") (expression_statement "bVar3 = iVar22 <= iVar11;" (assignment_expression "bVar3 = iVar22 <= iVar11" (identifier "bVar3") (= "=") (binary_expression "iVar22 <= iVar11" (identifier "iVar22") (<= "<=") (identifier "iVar11"))) (; ";"))) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar3) goto LAB_00033f0c;" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (goto_statement "goto LAB_00033f0c;" (goto "goto") (statement_identifier "LAB_00033f0c") (; ";"))) (} "}"))) (expression_statement "bVar1 = pbVar7[iVar11];" (assignment_expression "bVar1 = pbVar7[iVar11]" (identifier "bVar1") (= "=") (subscript_expression "pbVar7[iVar11]" (identifier "pbVar7") ([ "[") (identifier "iVar11") (] "]"))) (; ";")) (if_statement "if (bVar1 != 3) {\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }" (if "if") (parenthesized_expression "(bVar1 != 3)" (( "(") (binary_expression "bVar1 != 3" (identifier "bVar1") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n      if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }\n      goto LAB_00033ecc;\n    }" ({ "{") (if_statement "if ((bVar1 == 0xb) || (bVar1 == 8)) {\n        *pbVar14 = bVar12 + 2;\n      }" (if "if") (parenthesized_expression "((bVar1 == 0xb) || (bVar1 == 8))" (( "(") (binary_expression "(bVar1 == 0xb) || (bVar1 == 8)" (parenthesized_expression "(bVar1 == 0xb)" (( "(") (binary_expression "bVar1 == 0xb" (identifier "bVar1") (== "==") (number_literal "0xb")) () ")")) (|| "||") (parenthesized_expression "(bVar1 == 8)" (( "(") (binary_expression "bVar1 == 8" (identifier "bVar1") (== "==") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n        *pbVar14 = bVar12 + 2;\n      }" ({ "{") (expression_statement "*pbVar14 = bVar12 + 2;" (assignment_expression "*pbVar14 = bVar12 + 2" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (binary_expression "bVar12 + 2" (identifier "bVar12") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00033ecc;" (goto "goto") (statement_identifier "LAB_00033ecc") (; ";")) (} "}"))) (expression_statement "*pbVar14 = bVar12 + 1;" (assignment_expression "*pbVar14 = bVar12 + 1" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (binary_expression "bVar12 + 1" (identifier "bVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar3 = iVar11 < iVar22;" (assignment_expression "bVar3 = iVar11 < iVar22" (identifier "bVar3") (= "=") (binary_expression "iVar11 < iVar22" (identifier "iVar11") (< "<") (identifier "iVar22"))) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (; ";")) (labeled_statement "LAB_00033f0c:\n  iVar11 = 0;" (statement_identifier "LAB_00033f0c") (: ":") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";"))) (do_statement "do {\n    while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);" (do "do") (compound_statement "{\n    while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }\n    bVar3 = iVar11 < iVar22;\n    iVar11 = iVar11 + 1;\n  }" ({ "{") (while_statement "while( true ) {\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      bVar12 = pbVar8[iVar11];\n      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;\n      pbVar8[iVar11] = bVar12 + 1;\n      bVar3 = iVar22 <= iVar11;\n      iVar11 = iVar11 + 1;\n      if (bVar3) goto LAB_00033f68;\n    }" ({ "{") (expression_statement "bVar12 = pbVar8[iVar11];" (assignment_expression "bVar12 = pbVar8[iVar11]" (identifier "bVar12") (= "=") (subscript_expression "pbVar8[iVar11]" (identifier "pbVar8") ([ "[") (identifier "iVar11") (] "]"))) (; ";")) (if_statement "if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;" (if "if") (parenthesized_expression "(((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb))))" (( "(") (binary_expression "((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))" (parenthesized_expression "((bVar12 & 1) == 0)" (( "(") (binary_expression "(bVar12 & 1) == 0" (parenthesized_expression "(bVar12 & 1)" (( "(") (binary_expression "bVar12 & 1" (identifier "bVar12") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))" (( "(") (parenthesized_expression "((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb))" (( "(") (binary_expression "(pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)" (binary_expression "(pbVar7[iVar11] & 0xf7) != 0" (parenthesized_expression "(pbVar7[iVar11] & 0xf7)" (( "(") (binary_expression "pbVar7[iVar11] & 0xf7" (subscript_expression "pbVar7[iVar11]" (identifier "pbVar7") ([ "[") (identifier "iVar11") (] "]")) (& "&") (number_literal "0xf7")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(pbVar7[iVar11] != 0xb)" (( "(") (binary_expression "pbVar7[iVar11] != 0xb" (subscript_expression "pbVar7[iVar11]" (identifier "pbVar7") ([ "[") (identifier "iVar11") (] "]")) (!= "!=") (number_literal "0xb")) () ")"))) () ")")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar8[iVar11] = bVar12 + 1;" (assignment_expression "pbVar8[iVar11] = bVar12 + 1" (subscript_expression "pbVar8[iVar11]" (identifier "pbVar8") ([ "[") (identifier "iVar11") (] "]")) (= "=") (binary_expression "bVar12 + 1" (identifier "bVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar3 = iVar22 <= iVar11;" (assignment_expression "bVar3 = iVar22 <= iVar11" (identifier "bVar3") (= "=") (binary_expression "iVar22 <= iVar11" (identifier "iVar22") (<= "<=") (identifier "iVar11"))) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar3) goto LAB_00033f68;" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (goto_statement "goto LAB_00033f68;" (goto "goto") (statement_identifier "LAB_00033f68") (; ";"))) (} "}"))) (expression_statement "bVar3 = iVar11 < iVar22;" (assignment_expression "bVar3 = iVar11 < iVar22" (identifier "bVar3") (= "=") (binary_expression "iVar11 < iVar22" (identifier "iVar11") (< "<") (identifier "iVar22"))) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (; ";")) (labeled_statement "LAB_00033f68:\n  if (iVar22 != 0) {\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }" (statement_identifier "LAB_00033f68") (: ":") (if_statement "if (iVar22 != 0) {\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }" (if "if") (parenthesized_expression "(iVar22 != 0)" (( "(") (binary_expression "iVar22 != 0" (identifier "iVar22") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar26 = param_1 + iVar25 * 0xc;\n    iVar11 = iVar22;\n    do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);\n    bVar3 = 0 < iVar22;\nLAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }\n  }" ({ "{") (expression_statement "iVar26 = param_1 + iVar25 * 0xc;" (assignment_expression "iVar26 = param_1 + iVar25 * 0xc" (identifier "iVar26") (= "=") (binary_expression "param_1 + iVar25 * 0xc" (identifier "param_1") (+ "+") (binary_expression "iVar25 * 0xc" (identifier "iVar25") (* "*") (number_literal "0xc")))) (; ";")) (expression_statement "iVar11 = iVar22;" (assignment_expression "iVar11 = iVar22" (identifier "iVar11") (= "=") (identifier "iVar22")) (; ";")) (do_statement "do {\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    } while (iVar11 != 0);" (do "do") (compound_statement "{\n      iVar13 = -1;\n      iVar23 = 0x269;\n      do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));\n      if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }\n      iVar11 = iVar11 + -1;\n      iVar26 = iVar26 + -0xc;\n    }" ({ "{") (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" (identifier "iVar13") (= "=") (number_literal "-1")) (; ";")) (expression_statement "iVar23 = 0x269;" (assignment_expression "iVar23 = 0x269" (identifier "iVar23") (= "=") (number_literal "0x269")) (; ";")) (do_statement "do {\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      } while ((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));" (do "do") (compound_statement "{\n        iVar27 = iVar23;\n        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;\n        iVar23 = (iVar27 + iVar13) / 2;\n        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);\n      }" ({ "{") (expression_statement "iVar27 = iVar23;" (assignment_expression "iVar27 = iVar23" (identifier "iVar27") (= "=") (identifier "iVar23")) (; ";")) (if_statement "if (iVar27 - iVar13 < 2) goto LAB_00033fdc;" (if "if") (parenthesized_expression "(iVar27 - iVar13 < 2)" (( "(") (binary_expression "iVar27 - iVar13 < 2" (binary_expression "iVar27 - iVar13" (identifier "iVar27") (- "-") (identifier "iVar13")) (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_00033fdc;" (goto "goto") (statement_identifier "LAB_00033fdc") (; ";"))) (expression_statement "iVar23 = (iVar27 + iVar13) / 2;" (assignment_expression "iVar23 = (iVar27 + iVar13) / 2" (identifier "iVar23") (= "=") (binary_expression "(iVar27 + iVar13) / 2" (parenthesized_expression "(iVar27 + iVar13)" (( "(") (binary_expression "iVar27 + iVar13" (identifier "iVar27") (+ "+") (identifier "iVar13")) () ")")) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);" (assignment_expression "piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c)" (identifier "piVar16") (= "=") (cast_expression "(int *)(puVar4 + iVar23 * 0xc + 0x5a9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + iVar23 * 0xc + 0x5a9c)" (( "(") (binary_expression "puVar4 + iVar23 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar23 * 0xc" (identifier "puVar4") (+ "+") (binary_expression "iVar23 * 0xc" (identifier "iVar23") (* "*") (number_literal "0xc"))) (+ "+") (number_literal "0x5a9c")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)))" (( "(") (binary_expression "(*(int *)(iVar26 + -8) < *piVar16) ||\n              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8))" (parenthesized_expression "(*(int *)(iVar26 + -8) < *piVar16)" (( "(") (binary_expression "*(int *)(iVar26 + -8) < *piVar16" (pointer_expression "*(int *)(iVar26 + -8)" (* "*") (cast_expression "(int *)(iVar26 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + -8)" (( "(") (binary_expression "iVar26 + -8" (identifier "iVar26") (+ "+") (number_literal "-8")) () ")")))) (< "<") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) () ")")) (|| "||") (parenthesized_expression "(iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8))" (( "(") (comma_expression "iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)" (assignment_expression "iVar13 = iVar23" (identifier "iVar13") (= "=") (identifier "iVar23")) (, ",") (comma_expression "iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)" (assignment_expression "iVar23 = iVar27" (identifier "iVar23") (= "=") (identifier "iVar27")) (, ",") (binary_expression "piVar16[1] < *(int *)(iVar26 + -8)" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (< "<") (pointer_expression "*(int *)(iVar26 + -8)" (* "*") (cast_expression "(int *)(iVar26 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + -8)" (( "(") (binary_expression "iVar26 + -8" (identifier "iVar26") (+ "+") (number_literal "-8")) () ")"))))))) () ")"))) () ")")) (; ";")) (if_statement "if (*(char *)((int)piVar16 + 0xb) != '\x11') {\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }" (if "if") (parenthesized_expression "(*(char *)((int)piVar16 + 0xb) != '\x11')" (( "(") (binary_expression "*(char *)((int)piVar16 + 0xb) != '\x11'" (pointer_expression "*(char *)((int)piVar16 + 0xb)" (* "*") (cast_expression "(char *)((int)piVar16 + 0xb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0xb)" (( "(") (binary_expression "(int)piVar16 + 0xb" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0xb")) () ")")))) (!= "!=") (char_literal "'\x11'" (' "'") (escape_sequence "\x11") (' "'"))) () ")")) (compound_statement "{\nLAB_00033fdc:\n        bVar3 = iVar11 < iVar22;\n        if (bVar3) goto LAB_000342f4;\n        goto LAB_00033fe8;\n      }" ({ "{") (labeled_statement "LAB_00033fdc:\n        bVar3 = iVar11 < iVar22;" (statement_identifier "LAB_00033fdc") (: ":") (expression_statement "bVar3 = iVar11 < iVar22;" (assignment_expression "bVar3 = iVar11 < iVar22" (identifier "bVar3") (= "=") (binary_expression "iVar11 < iVar22" (identifier "iVar11") (< "<") (identifier "iVar22"))) (; ";"))) (if_statement "if (bVar3) goto LAB_000342f4;" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (goto_statement "goto LAB_000342f4;" (goto "goto") (statement_identifier "LAB_000342f4") (; ";"))) (goto_statement "goto LAB_00033fe8;" (goto "goto") (statement_identifier "LAB_00033fe8") (; ";")) (} "}"))) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar26 = iVar26 + -0xc;" (assignment_expression "iVar26 = iVar26 + -0xc" (identifier "iVar26") (= "=") (binary_expression "iVar26 + -0xc" (identifier "iVar26") (+ "+") (number_literal "-0xc"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "bVar3 = 0 < iVar22;" (assignment_expression "bVar3 = 0 < iVar22" (identifier "bVar3") (= "=") (binary_expression "0 < iVar22" (number_literal "0") (< "<") (identifier "iVar22"))) (; ";")) (labeled_statement "LAB_000342f4:\n    if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }" (statement_identifier "LAB_000342f4") (: ":") (if_statement "if (bVar3) {\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (compound_statement "{\n      pbVar14 = pbVar8 + iVar11 + 1;\n      do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);\n    }" ({ "{") (expression_statement "pbVar14 = pbVar8 + iVar11 + 1;" (assignment_expression "pbVar14 = pbVar8 + iVar11 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar8 + iVar11 + 1" (binary_expression "pbVar8 + iVar11" (identifier "pbVar8") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      } while (pbVar8 + iVar25 != pbVar14);" (do "do") (compound_statement "{\n        *pbVar14 = bVar21;\n        pbVar14 = pbVar14 + 1;\n      }" ({ "{") (expression_statement "*pbVar14 = bVar21;" (assignment_expression "*pbVar14 = bVar21" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar8 + iVar25 != pbVar14)" (( "(") (binary_expression "pbVar8 + iVar25 != pbVar14" (binary_expression "pbVar8 + iVar25" (identifier "pbVar8") (+ "+") (identifier "iVar25")) (!= "!=") (identifier "pbVar14")) () ")")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_00033fe8:\n  iVar11 = 0;" (statement_identifier "LAB_00033fe8") (: ":") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";"))) (expression_statement "piVar16 = piVar31;" (assignment_expression "piVar16 = piVar31" (identifier "piVar16") (= "=") (identifier "piVar31")) (; ";")) (do_statement "do {\n    iVar23 = *piVar16;\n    iVar26 = 0x269;\n    iVar13 = -1;\n    do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));\n    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }\nLAB_00034050:\n    bVar3 = iVar11 < iVar22;\n    piVar16 = piVar16 + 3;\n    iVar11 = iVar11 + 1;\n  } while (bVar3);" (do "do") (compound_statement "{\n    iVar23 = *piVar16;\n    iVar26 = 0x269;\n    iVar13 = -1;\n    do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));\n    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }\nLAB_00034050:\n    bVar3 = iVar11 < iVar22;\n    piVar16 = piVar16 + 3;\n    iVar11 = iVar11 + 1;\n  }" ({ "{") (expression_statement "iVar23 = *piVar16;" (assignment_expression "iVar23 = *piVar16" (identifier "iVar23") (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (expression_statement "iVar26 = 0x269;" (assignment_expression "iVar26 = 0x269" (identifier "iVar26") (= "=") (number_literal "0x269")) (; ";")) (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" (identifier "iVar13") (= "=") (number_literal "-1")) (; ";")) (do_statement "do {\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));" (do "do") (compound_statement "{\n      iVar27 = iVar26;\n      if (iVar27 - iVar13 < 2) goto LAB_00034050;\n      iVar17 = (iVar27 + iVar13) / 2;\n      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);\n      iVar26 = iVar17;\n    }" ({ "{") (expression_statement "iVar27 = iVar26;" (assignment_expression "iVar27 = iVar26" (identifier "iVar27") (= "=") (identifier "iVar26")) (; ";")) (if_statement "if (iVar27 - iVar13 < 2) goto LAB_00034050;" (if "if") (parenthesized_expression "(iVar27 - iVar13 < 2)" (( "(") (binary_expression "iVar27 - iVar13 < 2" (binary_expression "iVar27 - iVar13" (identifier "iVar27") (- "-") (identifier "iVar13")) (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_00034050;" (goto "goto") (statement_identifier "LAB_00034050") (; ";"))) (expression_statement "iVar17 = (iVar27 + iVar13) / 2;" (assignment_expression "iVar17 = (iVar27 + iVar13) / 2" (identifier "iVar17") (= "=") (binary_expression "(iVar27 + iVar13) / 2" (parenthesized_expression "(iVar27 + iVar13)" (( "(") (binary_expression "iVar27 + iVar13" (identifier "iVar27") (+ "+") (identifier "iVar13")) () ")")) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c)" (identifier "piVar6") (= "=") (cast_expression "(int *)(puVar4 + iVar17 * 0xc + 0x5a9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + iVar17 * 0xc + 0x5a9c)" (( "(") (binary_expression "puVar4 + iVar17 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar17 * 0xc" (identifier "puVar4") (+ "+") (binary_expression "iVar17 * 0xc" (identifier "iVar17") (* "*") (number_literal "0xc"))) (+ "+") (number_literal "0x5a9c")) () ")")))) (; ";")) (expression_statement "iVar26 = iVar17;" (assignment_expression "iVar26 = iVar17" (identifier "iVar26") (= "=") (identifier "iVar17")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23))" (( "(") (binary_expression "(iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23)" (parenthesized_expression "(iVar23 < *piVar6)" (( "(") (binary_expression "iVar23 < *piVar6" (identifier "iVar23") (< "<") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) () ")")) (|| "||") (parenthesized_expression "(iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23)" (( "(") (comma_expression "iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23" (assignment_expression "iVar26 = iVar27" (identifier "iVar26") (= "=") (identifier "iVar27")) (, ",") (comma_expression "iVar13 = iVar17, piVar6[1] < iVar23" (assignment_expression "iVar13 = iVar17" (identifier "iVar13") (= "=") (identifier "iVar17")) (, ",") (binary_expression "piVar6[1] < iVar23" (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) (< "<") (identifier "iVar23")))) () ")"))) () ")")) (; ";")) (if_statement "if (*(byte *)((int)piVar6 + 0xb) == 0x11) {\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }\n    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }" (if "if") (parenthesized_expression "(*(byte *)((int)piVar6 + 0xb) == 0x11)" (( "(") (binary_expression "*(byte *)((int)piVar6 + 0xb) == 0x11" (pointer_expression "*(byte *)((int)piVar6 + 0xb)" (* "*") (cast_expression "(byte *)((int)piVar6 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + 0xb)" (( "(") (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (number_literal "0xb")) () ")")))) (== "==") (number_literal "0x11")) () ")")) (compound_statement "{\n      iVar26 = iVar11;\n      if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }\n      pbVar14 = pbVar8 + iVar13 + -1;\n      if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }\n    }" ({ "{") (expression_statement "iVar26 = iVar11;" (assignment_expression "iVar26 = iVar11" (identifier "iVar26") (= "=") (identifier "iVar11")) (; ";")) (if_statement "if (iVar11 < iVar25) {\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }\n      else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(iVar11 < iVar25)" (( "(") (binary_expression "iVar11 < iVar25" (identifier "iVar11") (< "<") (identifier "iVar25")) () ")")) (compound_statement "{\n        piVar6 = piVar16 + -1;\n        while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }\n      }" ({ "{") (expression_statement "piVar6 = piVar16 + -1;" (assignment_expression "piVar6 = piVar16 + -1" (identifier "piVar6") (= "=") (binary_expression "piVar16 + -1" (identifier "piVar16") (+ "+") (number_literal "-1"))) (; ";")) (while_statement "while( true ) {\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          iVar13 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));\n          iVar13 = iVar26 + 1;\n          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;\n          if (iVar26 == iVar22) break;\n          iVar23 = piVar6[4];\n          iVar26 = iVar13;\n          piVar6 = piVar6 + 3;\n        }" ({ "{") (expression_statement "iVar13 = 0x269;" (assignment_expression "iVar13 = 0x269" (identifier "iVar13") (= "=") (number_literal "0x269")) (; ";")) (expression_statement "iVar27 = -1;" (assignment_expression "iVar27 = -1" (identifier "iVar27") (= "=") (number_literal "-1")) (; ";")) (do_statement "do {\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));" (do "do") (compound_statement "{\n            iVar17 = iVar13;\n            if (iVar17 - iVar27 < 2) goto LAB_0003439c;\n            iVar20 = (iVar17 + iVar27) / 2;\n            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n            iVar13 = iVar20;\n          }" ({ "{") (expression_statement "iVar17 = iVar13;" (assignment_expression "iVar17 = iVar13" (identifier "iVar17") (= "=") (identifier "iVar13")) (; ";")) (if_statement "if (iVar17 - iVar27 < 2) goto LAB_0003439c;" (if "if") (parenthesized_expression "(iVar17 - iVar27 < 2)" (( "(") (binary_expression "iVar17 - iVar27 < 2" (binary_expression "iVar17 - iVar27" (identifier "iVar17") (- "-") (identifier "iVar27")) (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_0003439c;" (goto "goto") (statement_identifier "LAB_0003439c") (; ";"))) (expression_statement "iVar20 = (iVar17 + iVar27) / 2;" (assignment_expression "iVar20 = (iVar17 + iVar27) / 2" (identifier "iVar20") (= "=") (binary_expression "(iVar17 + iVar27) / 2" (parenthesized_expression "(iVar17 + iVar27)" (( "(") (binary_expression "iVar17 + iVar27" (identifier "iVar17") (+ "+") (identifier "iVar27")) () ")")) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);" (assignment_expression "piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c)" (identifier "piVar18") (= "=") (cast_expression "(int *)(puVar4 + iVar20 * 0xc + 0x5a9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + iVar20 * 0xc + 0x5a9c)" (( "(") (binary_expression "puVar4 + iVar20 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar20 * 0xc" (identifier "puVar4") (+ "+") (binary_expression "iVar20 * 0xc" (identifier "iVar20") (* "*") (number_literal "0xc"))) (+ "+") (number_literal "0x5a9c")) () ")")))) (; ";")) (expression_statement "iVar13 = iVar20;" (assignment_expression "iVar13 = iVar20" (identifier "iVar13") (= "=") (identifier "iVar20")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23))" (( "(") (binary_expression "(iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23)" (parenthesized_expression "(iVar23 < *piVar18)" (( "(") (binary_expression "iVar23 < *piVar18" (identifier "iVar23") (< "<") (pointer_expression "*piVar18" (* "*") (identifier "piVar18"))) () ")")) (|| "||") (parenthesized_expression "(iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23)" (( "(") (comma_expression "iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23" (assignment_expression "iVar13 = iVar17" (identifier "iVar13") (= "=") (identifier "iVar17")) (, ",") (comma_expression "iVar27 = iVar20, piVar18[1] < iVar23" (assignment_expression "iVar27 = iVar20" (identifier "iVar27") (= "=") (identifier "iVar20")) (, ",") (binary_expression "piVar18[1] < iVar23" (subscript_expression "piVar18[1]" (identifier "piVar18") ([ "[") (number_literal "1") (] "]")) (< "<") (identifier "iVar23")))) () ")"))) () ")")) (; ";")) (expression_statement "iVar13 = iVar26 + 1;" (assignment_expression "iVar13 = iVar26 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar26 + 1" (identifier "iVar26") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;" (if "if") (parenthesized_expression "(*(char *)((int)piVar18 + 0xb) != '\x11')" (( "(") (binary_expression "*(char *)((int)piVar18 + 0xb) != '\x11'" (pointer_expression "*(char *)((int)piVar18 + 0xb)" (* "*") (cast_expression "(char *)((int)piVar18 + 0xb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar18 + 0xb)" (( "(") (binary_expression "(int)piVar18 + 0xb" (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18")) (+ "+") (number_literal "0xb")) () ")")))) (!= "!=") (char_literal "'\x11'" (' "'") (escape_sequence "\x11") (' "'"))) () ")")) (goto_statement "goto LAB_0003439c;" (goto "goto") (statement_identifier "LAB_0003439c") (; ";"))) (if_statement "if (iVar26 == iVar22) break;" (if "if") (parenthesized_expression "(iVar26 == iVar22)" (( "(") (binary_expression "iVar26 == iVar22" (identifier "iVar26") (== "==") (identifier "iVar22")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar23 = piVar6[4];" (assignment_expression "iVar23 = piVar6[4]" (identifier "iVar23") (= "=") (subscript_expression "piVar6[4]" (identifier "piVar6") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar26 = iVar13;" (assignment_expression "iVar26 = iVar13" (identifier "iVar26") (= "=") (identifier "iVar13")) (; ";")) (expression_statement "piVar6 = piVar6 + 3;" (assignment_expression "piVar6 = piVar6 + 3" (identifier "piVar6") (= "=") (binary_expression "piVar6 + 3" (identifier "piVar6") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }" (else "else") (compound_statement "{\nLAB_0003439c:\n        iVar13 = iVar25;\n        if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }\n      }" ({ "{") (labeled_statement "LAB_0003439c:\n        iVar13 = iVar25;" (statement_identifier "LAB_0003439c") (: ":") (expression_statement "iVar13 = iVar25;" (assignment_expression "iVar13 = iVar25" (identifier "iVar13") (= "=") (identifier "iVar25")) (; ";"))) (if_statement "if (iVar25 != iVar26) {\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }" (if "if") (parenthesized_expression "(iVar25 != iVar26)" (( "(") (binary_expression "iVar25 != iVar26" (identifier "iVar25") (!= "!=") (identifier "iVar26")) () ")")) (compound_statement "{\n          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);\n          iVar23 = 0x269;\n          iVar27 = -1;\n          do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));\n          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }\n        }" ({ "{") (expression_statement "iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);" (assignment_expression "iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(param_1 + iVar26 * 0xc + 4)" (* "*") (cast_expression "(int *)(param_1 + iVar26 * 0xc + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + iVar26 * 0xc + 4)" (( "(") (binary_expression "param_1 + iVar26 * 0xc + 4" (binary_expression "param_1 + iVar26 * 0xc" (identifier "param_1") (+ "+") (binary_expression "iVar26 * 0xc" (identifier "iVar26") (* "*") (number_literal "0xc"))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar23 = 0x269;" (assignment_expression "iVar23 = 0x269" (identifier "iVar23") (= "=") (number_literal "0x269")) (; ";")) (expression_statement "iVar27 = -1;" (assignment_expression "iVar27 = -1" (identifier "iVar27") (= "=") (number_literal "-1")) (; ";")) (do_statement "do {\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));" (do "do") (compound_statement "{\n            iVar20 = iVar23;\n            iVar13 = iVar26;\n            if (iVar20 - iVar27 < 2) goto LAB_00034408;\n            iVar19 = (iVar20 + iVar27) / 2;\n            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);\n            iVar23 = iVar19;\n          }" ({ "{") (expression_statement "iVar20 = iVar23;" (assignment_expression "iVar20 = iVar23" (identifier "iVar20") (= "=") (identifier "iVar23")) (; ";")) (expression_statement "iVar13 = iVar26;" (assignment_expression "iVar13 = iVar26" (identifier "iVar13") (= "=") (identifier "iVar26")) (; ";")) (if_statement "if (iVar20 - iVar27 < 2) goto LAB_00034408;" (if "if") (parenthesized_expression "(iVar20 - iVar27 < 2)" (( "(") (binary_expression "iVar20 - iVar27 < 2" (binary_expression "iVar20 - iVar27" (identifier "iVar20") (- "-") (identifier "iVar27")) (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_00034408;" (goto "goto") (statement_identifier "LAB_00034408") (; ";"))) (expression_statement "iVar19 = (iVar20 + iVar27) / 2;" (assignment_expression "iVar19 = (iVar20 + iVar27) / 2" (identifier "iVar19") (= "=") (binary_expression "(iVar20 + iVar27) / 2" (parenthesized_expression "(iVar20 + iVar27)" (( "(") (binary_expression "iVar20 + iVar27" (identifier "iVar20") (+ "+") (identifier "iVar27")) () ")")) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c)" (identifier "piVar6") (= "=") (cast_expression "(int *)(puVar4 + iVar19 * 0xc + 0x5a9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + iVar19 * 0xc + 0x5a9c)" (( "(") (binary_expression "puVar4 + iVar19 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar19 * 0xc" (identifier "puVar4") (+ "+") (binary_expression "iVar19 * 0xc" (identifier "iVar19") (* "*") (number_literal "0xc"))) (+ "+") (number_literal "0x5a9c")) () ")")))) (; ";")) (expression_statement "iVar23 = iVar19;" (assignment_expression "iVar23 = iVar19" (identifier "iVar23") (= "=") (identifier "iVar19")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17))" (( "(") (binary_expression "(iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17)" (parenthesized_expression "(iVar17 < *piVar6)" (( "(") (binary_expression "iVar17 < *piVar6" (identifier "iVar17") (< "<") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) () ")")) (|| "||") (parenthesized_expression "(iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17)" (( "(") (comma_expression "iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17" (assignment_expression "iVar23 = iVar20" (identifier "iVar23") (= "=") (identifier "iVar20")) (, ",") (comma_expression "iVar27 = iVar19, piVar6[1] < iVar17" (assignment_expression "iVar27 = iVar19" (identifier "iVar27") (= "=") (identifier "iVar19")) (, ",") (binary_expression "piVar6[1] < iVar17" (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) (< "<") (identifier "iVar17")))) () ")"))) () ")")) (; ";")) (if_statement "if (*(char *)((int)piVar6 + 0xb) != '\x0f') {\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }" (if "if") (parenthesized_expression "(*(char *)((int)piVar6 + 0xb) != '\x0f')" (( "(") (binary_expression "*(char *)((int)piVar6 + 0xb) != '\x0f'" (pointer_expression "*(char *)((int)piVar6 + 0xb)" (* "*") (cast_expression "(char *)((int)piVar6 + 0xb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + 0xb)" (( "(") (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (number_literal "0xb")) () ")")))) (!= "!=") (char_literal "'\x0f'" (' "'") (escape_sequence "\x0f") (' "'"))) () ")")) (compound_statement "{\nLAB_00034408:\n            iVar26 = 0x269;\n            iVar23 = -1;\n            do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));\n            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;\n          }" ({ "{") (labeled_statement "LAB_00034408:\n            iVar26 = 0x269;" (statement_identifier "LAB_00034408") (: ":") (expression_statement "iVar26 = 0x269;" (assignment_expression "iVar26 = 0x269" (identifier "iVar26") (= "=") (number_literal "0x269")) (; ";"))) (expression_statement "iVar23 = -1;" (assignment_expression "iVar23 = -1" (identifier "iVar23") (= "=") (number_literal "-1")) (; ";")) (do_statement "do {\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));" (do "do") (compound_statement "{\n              iVar27 = iVar26;\n              if (iVar27 - iVar23 < 2) goto LAB_00034050;\n              iVar20 = (iVar27 + iVar23) / 2;\n              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);\n              iVar26 = iVar20;\n            }" ({ "{") (expression_statement "iVar27 = iVar26;" (assignment_expression "iVar27 = iVar26" (identifier "iVar27") (= "=") (identifier "iVar26")) (; ";")) (if_statement "if (iVar27 - iVar23 < 2) goto LAB_00034050;" (if "if") (parenthesized_expression "(iVar27 - iVar23 < 2)" (( "(") (binary_expression "iVar27 - iVar23 < 2" (binary_expression "iVar27 - iVar23" (identifier "iVar27") (- "-") (identifier "iVar23")) (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_00034050;" (goto "goto") (statement_identifier "LAB_00034050") (; ";"))) (expression_statement "iVar20 = (iVar27 + iVar23) / 2;" (assignment_expression "iVar20 = (iVar27 + iVar23) / 2" (identifier "iVar20") (= "=") (binary_expression "(iVar27 + iVar23) / 2" (parenthesized_expression "(iVar27 + iVar23)" (( "(") (binary_expression "iVar27 + iVar23" (identifier "iVar27") (+ "+") (identifier "iVar23")) () ")")) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);" (assignment_expression "piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c)" (identifier "piVar6") (= "=") (cast_expression "(int *)(puVar4 + iVar20 * 0xc + 0x5a9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + iVar20 * 0xc + 0x5a9c)" (( "(") (binary_expression "puVar4 + iVar20 * 0xc + 0x5a9c" (binary_expression "puVar4 + iVar20 * 0xc" (identifier "puVar4") (+ "+") (binary_expression "iVar20 * 0xc" (identifier "iVar20") (* "*") (number_literal "0xc"))) (+ "+") (number_literal "0x5a9c")) () ")")))) (; ";")) (expression_statement "iVar26 = iVar20;" (assignment_expression "iVar26 = iVar20" (identifier "iVar26") (= "=") (identifier "iVar20")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17))" (( "(") (binary_expression "(iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17)" (parenthesized_expression "(iVar17 < *piVar6)" (( "(") (binary_expression "iVar17 < *piVar6" (identifier "iVar17") (< "<") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) () ")")) (|| "||") (parenthesized_expression "(iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17)" (( "(") (comma_expression "iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17" (assignment_expression "iVar26 = iVar27" (identifier "iVar26") (= "=") (identifier "iVar27")) (, ",") (comma_expression "iVar23 = iVar20, piVar6[1] < iVar17" (assignment_expression "iVar23 = iVar20" (identifier "iVar23") (= "=") (identifier "iVar20")) (, ",") (binary_expression "piVar6[1] < iVar17" (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) (< "<") (identifier "iVar17")))) () ")"))) () ")")) (; ";")) (if_statement "if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;" (if "if") (parenthesized_expression "(*(char *)((int)piVar6 + 0xb) != '\x10')" (( "(") (binary_expression "*(char *)((int)piVar6 + 0xb) != '\x10'" (pointer_expression "*(char *)((int)piVar6 + 0xb)" (* "*") (cast_expression "(char *)((int)piVar6 + 0xb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + 0xb)" (( "(") (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (number_literal "0xb")) () ")")))) (!= "!=") (char_literal "'\x10'" (' "'") (escape_sequence "\x10") (' "'"))) () ")")) (goto_statement "goto LAB_00034050;" (goto "goto") (statement_identifier "LAB_00034050") (; ";"))) (} "}"))) (} "}"))) (} "}")))) (expression_statement "pbVar14 = pbVar8 + iVar13 + -1;" (assignment_expression "pbVar14 = pbVar8 + iVar13 + -1" (identifier "pbVar14") (= "=") (binary_expression "pbVar8 + iVar13 + -1" (binary_expression "pbVar8 + iVar13" (identifier "pbVar8") (+ "+") (identifier "iVar13")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar11 <= iVar13 + -1) {\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }" (if "if") (parenthesized_expression "(iVar11 <= iVar13 + -1)" (( "(") (binary_expression "iVar11 <= iVar13 + -1" (identifier "iVar11") (<= "<=") (binary_expression "iVar13 + -1" (identifier "iVar13") (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n        do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);\n      }" ({ "{") (do_statement "do {\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        } while (pbVar8 + iVar11 + -1 != pbVar14);" (do "do") (compound_statement "{\n          *pbVar14 = bVar21;\n          pbVar14 = pbVar14 + -1;\n        }" ({ "{") (expression_statement "*pbVar14 = bVar21;" (assignment_expression "*pbVar14 = bVar21" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "pbVar14 = pbVar14 + -1;" (assignment_expression "pbVar14 = pbVar14 + -1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + -1" (identifier "pbVar14") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar8 + iVar11 + -1 != pbVar14)" (( "(") (binary_expression "pbVar8 + iVar11 + -1 != pbVar14" (binary_expression "pbVar8 + iVar11 + -1" (binary_expression "pbVar8 + iVar11" (identifier "pbVar8") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "-1")) (!= "!=") (identifier "pbVar14")) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }" (else "else") (if_statement "if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {\n      pbVar8[iVar11] = bVar21;\n    }" (if "if") (parenthesized_expression "(*(byte *)((int)piVar6 + 0xb) - 0xf < 2)" (( "(") (binary_expression "*(byte *)((int)piVar6 + 0xb) - 0xf < 2" (binary_expression "*(byte *)((int)piVar6 + 0xb) - 0xf" (pointer_expression "*(byte *)((int)piVar6 + 0xb)" (* "*") (cast_expression "(byte *)((int)piVar6 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar6 + 0xb)" (( "(") (binary_expression "(int)piVar6 + 0xb" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (+ "+") (number_literal "0xb")) () ")")))) (- "-") (number_literal "0xf")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      pbVar8[iVar11] = bVar21;\n    }" ({ "{") (expression_statement "pbVar8[iVar11] = bVar21;" (assignment_expression "pbVar8[iVar11] = bVar21" (subscript_expression "pbVar8[iVar11]" (identifier "pbVar8") ([ "[") (identifier "iVar11") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (} "}"))))) (labeled_statement "LAB_00034050:\n    bVar3 = iVar11 < iVar22;" (statement_identifier "LAB_00034050") (: ":") (expression_statement "bVar3 = iVar11 < iVar22;" (assignment_expression "bVar3 = iVar11 < iVar22" (identifier "bVar3") (= "=") (binary_expression "iVar11 < iVar22" (identifier "iVar11") (< "<") (identifier "iVar22"))) (; ";"))) (expression_statement "piVar16 = piVar16 + 3;" (assignment_expression "piVar16 = piVar16 + 3" (identifier "piVar16") (= "=") (binary_expression "piVar16 + 3" (identifier "piVar16") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }\n    doMirror(piVar31 + iVar11 * 3);\n    uVar15 = (uint)(iVar11 < iVar22);\n    iVar11 = iVar11 + 1;\n  } while (uVar15 != 0);" (do "do") (compound_statement "{\n    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }\n    doMirror(piVar31 + iVar11 * 3);\n    uVar15 = (uint)(iVar11 < iVar22);\n    iVar11 = iVar11 + 1;\n  }" ({ "{") (while_statement "while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }" (while "while") (parenthesized_expression "(uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0)" (( "(") (comma_expression "uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0" (assignment_expression "uVar15 = (uint)(iVar11 < iVar22)" (identifier "uVar15") (= "=") (call_expression "(uint)(iVar11 < iVar22)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar11 < iVar22)" (( "(") (binary_expression "iVar11 < iVar22" (identifier "iVar11") (< "<") (identifier "iVar22")) () ")")))) (, ",") (binary_expression "(pbVar8[iVar11] & 1) == 0" (parenthesized_expression "(pbVar8[iVar11] & 1)" (( "(") (binary_expression "pbVar8[iVar11] & 1" (subscript_expression "pbVar8[iVar11]" (identifier "pbVar8") ([ "[") (identifier "iVar11") (] "]")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n      iVar11 = iVar11 + 1;\n      if (uVar15 == 0) goto LAB_000340a4;\n    }" ({ "{") (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar15 == 0) goto LAB_000340a4;" (if "if") (parenthesized_expression "(uVar15 == 0)" (( "(") (binary_expression "uVar15 == 0" (identifier "uVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000340a4;" (goto "goto") (statement_identifier "LAB_000340a4") (; ";"))) (} "}"))) (expression_statement "doMirror(piVar31 + iVar11 * 3);" (call_expression "doMirror(piVar31 + iVar11 * 3)" (identifier "doMirror") (argument_list "(piVar31 + iVar11 * 3)" (( "(") (binary_expression "piVar31 + iVar11 * 3" (identifier "piVar31") (+ "+") (binary_expression "iVar11 * 3" (identifier "iVar11") (* "*") (number_literal "3"))) () ")"))) (; ";")) (expression_statement "uVar15 = (uint)(iVar11 < iVar22);" (assignment_expression "uVar15 = (uint)(iVar11 < iVar22)" (identifier "uVar15") (= "=") (call_expression "(uint)(iVar11 < iVar22)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar11 < iVar22)" (( "(") (binary_expression "iVar11 < iVar22" (identifier "iVar11") (< "<") (identifier "iVar22")) () ")")))) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_000340a4:\n  uVar28 = (uint)*pbVar8;" (statement_identifier "LAB_000340a4") (: ":") (expression_statement "uVar28 = (uint)*pbVar8;" (assignment_expression "uVar28 = (uint)*pbVar8" (identifier "uVar28") (= "=") (binary_expression "(uint)*pbVar8" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar8"))) (; ";"))) (expression_statement "uVar29 = uVar28;" (assignment_expression "uVar29 = uVar28" (identifier "uVar29") (= "=") (identifier "uVar28")) (; ";")) (while_statement "while( true ) {\n    bVar3 = iVar22 <= (int)uVar15;\n    uVar30 = uVar28;\n    if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }\n    uVar15 = uVar15 + 1;\n    if (bVar3) break;\n    uVar28 = (uint)pbVar8[uVar15];\n    uVar29 = uVar30;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    bVar3 = iVar22 <= (int)uVar15;\n    uVar30 = uVar28;\n    if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }\n    uVar15 = uVar15 + 1;\n    if (bVar3) break;\n    uVar28 = (uint)pbVar8[uVar15];\n    uVar29 = uVar30;\n  }" ({ "{") (expression_statement "bVar3 = iVar22 <= (int)uVar15;" (assignment_expression "bVar3 = iVar22 <= (int)uVar15" (identifier "bVar3") (= "=") (binary_expression "iVar22 <= (int)uVar15" (identifier "iVar22") (<= "<=") (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")))) (; ";")) (expression_statement "uVar30 = uVar28;" (assignment_expression "uVar30 = uVar28" (identifier "uVar30") (= "=") (identifier "uVar28")) (; ";")) (if_statement "if (uVar28 < uVar29) {\n      uVar30 = uVar29;\n    }" (if "if") (parenthesized_expression "(uVar28 < uVar29)" (( "(") (binary_expression "uVar28 < uVar29" (identifier "uVar28") (< "<") (identifier "uVar29")) () ")")) (compound_statement "{\n      uVar30 = uVar29;\n    }" ({ "{") (expression_statement "uVar30 = uVar29;" (assignment_expression "uVar30 = uVar29" (identifier "uVar30") (= "=") (identifier "uVar29")) (; ";")) (} "}"))) (expression_statement "uVar15 = uVar15 + 1;" (assignment_expression "uVar15 = uVar15 + 1" (identifier "uVar15") (= "=") (binary_expression "uVar15 + 1" (identifier "uVar15") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar3) break;" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar28 = (uint)pbVar8[uVar15];" (assignment_expression "uVar28 = (uint)pbVar8[uVar15]" (identifier "uVar28") (= "=") (cast_expression "(uint)pbVar8[uVar15]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar8[uVar15]" (identifier "pbVar8") ([ "[") (identifier "uVar15") (] "]")))) (; ";")) (expression_statement "uVar29 = uVar30;" (assignment_expression "uVar29 = uVar30" (identifier "uVar29") (= "=") (identifier "uVar30")) (; ";")) (} "}"))) (for_statement "for (; uVar30 != 0; uVar30 = uVar30 - 1) {\n    flipThisRun(param_1,pbVar8,uVar30,iVar25);\n  }" (for "for") (( "(") (; ";") (binary_expression "uVar30 != 0" (identifier "uVar30") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "uVar30 = uVar30 - 1" (identifier "uVar30") (= "=") (binary_expression "uVar30 - 1" (identifier "uVar30") (- "-") (number_literal "1"))) () ")") (compound_statement "{\n    flipThisRun(param_1,pbVar8,uVar30,iVar25);\n  }" ({ "{") (expression_statement "flipThisRun(param_1,pbVar8,uVar30,iVar25);" (call_expression "flipThisRun(param_1,pbVar8,uVar30,iVar25)" (identifier "flipThisRun") (argument_list "(param_1,pbVar8,uVar30,iVar25)" (( "(") (identifier "param_1") (, ",") (identifier "pbVar8") (, ",") (identifier "uVar30") (, ",") (identifier "iVar25") () ")"))) (; ";")) (} "}"))) (expression_statement "safefree(pbVar7);" (call_expression "safefree(pbVar7)" (identifier "safefree") (argument_list "(pbVar7)" (( "(") (identifier "pbVar7") () ")"))) (; ";")) (expression_statement "safefree(pbVar8);" (call_expression "safefree(pbVar8)" (identifier "safefree") (argument_list "(pbVar8)" (( "(") (identifier "pbVar8") () ")"))) (; ";")) (return_statement "return 3;" (return "return") (number_literal "3") (; ";")) (} "}")))

int function_1(type_1 *line,int var_1)

{
  int iVar1;
  int *piVar2;
  int var_5;
  int var_2;
  int var_3;
  type_2 *var_8;
  int var_7;
  
  if (var_1 < 1) {
    return 0;
  }
  var_7 = 0;
  var_8 = &line->wc;
  do {
    iVar1 = 0x269;
    var_3 = -1;
    do {
      var_2 = iVar1;
      if (var_2 - var_3 < 2) goto LAB_00033888;
      var_5 = (var_2 + var_3) / 2;
      piVar2 = (int *)(var_4 + var_5 * 0xc + 0x5a9c);
      iVar1 = var_5;
    } while (((int)*var_8 < *piVar2) || (iVar1 = var_2, var_3 = var_5, piVar2[1] < (int)*var_8));
    if (*(type_3 *)((int)piVar2 + 0xb) - 3 < 2) {
                    /* WARNING: Subroutine does not return */
      var_6(var_1,1);
    }
LAB_00033888:
    var_7 = var_7 + 1;
    var_8 = var_8 + 3;
    if (var_1 == var_7) {
      return 0;
    }
  } while( true );
}


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

/* WARNING: Removing unreachable block (ram,0x00033a54) */
/* WARNING: Removing unreachable block (ram,0x00033ad8) */
/* WARNING: Removing unreachable block (ram,0x00033adc) */

undefined4 MASKED(int param_1,int param_2)

{
  byte bVar1;
  bool bVar2;
  bool bVar3;
  undefined *puVar4;
  undefined *puVar5;
  int *piVar6;
  byte *pbVar7;
  byte *pbVar8;
  byte bVar12;
  undefined4 uVar9;
  byte *pbVar10;
  int iVar11;
  int iVar13;
  byte *pbVar14;
  uint uVar15;
  int *piVar16;
  int iVar17;
  int *piVar18;
  int iVar19;
  int iVar20;
  byte bVar21;
  int iVar22;
  int iVar23;
  byte *pbVar24;
  int iVar25;
  int iVar26;
  int iVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  int *piVar31;
  
  puVar4 = PTR_DAT_000b5230;
  if (param_2 < 1) {
    return 0;
  }
  iVar25 = 0;
  piVar31 = (int *)(param_1 + 4);
  piVar16 = piVar31;
  while( true ) {
    iVar11 = 0x269;
    iVar22 = -1;
    do {
      iVar26 = iVar11;
      if (iVar26 - iVar22 < 2) goto LAB_00033888;
      iVar13 = (iVar26 + iVar22) / 2;
      piVar6 = (int *)(PTR_DAT_000b5230 + iVar13 * 0xc + 0x5a9c);
      iVar11 = iVar13;
    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));
    if (*(byte *)((int)piVar6 + 0xb) - 3 < 2) break;
LAB_00033888:
    iVar25 = iVar25 + 1;
    piVar16 = piVar16 + 3;
    if (param_2 == iVar25) {
      return 0;
    }
  }
  pbVar7 = (byte *)safemalloc(param_2,1);
  pbVar8 = (byte *)safemalloc(param_2,1);
  puVar5 = PTR_DAT_000b5230;
  iVar25 = 0;
  piVar16 = piVar31;
  do {
    iVar11 = 0x269;
    iVar22 = -1;
    do {
      iVar26 = iVar11;
      if (iVar26 - iVar22 < 2) goto LAB_00033978;
      iVar13 = (iVar26 + iVar22) / 2;
      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);
      iVar11 = iVar13;
    } while ((*piVar16 < *piVar6) || (iVar11 = iVar26, iVar22 = iVar13, piVar6[1] < *piVar16));
    uVar15 = piVar6[2];
    if ((uVar15 & 0xff) - 3 < 2) {
      bVar21 = 1;
      goto LAB_000339c8;
    }
    bVar21 = (byte)uVar15;
    if ((uVar15 & 0xff) == 0) goto LAB_000339c8;
LAB_00033978:
    iVar25 = iVar25 + 1;
    piVar16 = piVar16 + 3;
  } while (param_2 != iVar25);
  bVar21 = 0;
LAB_000339c8:
  iVar25 = 0;
  piVar16 = piVar31;
  do {
    iVar22 = iVar25;
    iVar25 = 0x269;
    iVar11 = -1;
    do {
      iVar26 = iVar25;
      if (iVar26 - iVar11 < 2) {
        bVar12 = 0x12;
        goto switchD_00033aa8_caseD_0;
      }
      iVar13 = (iVar26 + iVar11) / 2;
      piVar6 = (int *)(puVar4 + iVar13 * 0xc + 0x5a9c);
      iVar25 = iVar13;
    } while ((*piVar16 < *piVar6) || (iVar25 = iVar26, iVar11 = iVar13, piVar6[1] < *piVar16));
    bVar12 = *(byte *)((int)piVar6 + 0xb);
    if (bVar12 < 0x12) {
                    /* WARNING: Could not emulate address calculation at 0x00033a9c */
                    /* WARNING: Treating indirect jump as call */
      uVar9 = (*(code *)(&_gp_1 + *(int *)(puVar5 + (uint)bVar12 * 4 + 0x5a54)))();
      return uVar9;
    }
switchD_00033aa8_caseD_0:
    pbVar8[iVar22] = bVar21;
    iVar25 = iVar22 + 1;
    piVar16 = piVar16 + 3;
    pbVar7[iVar22] = bVar12;
  } while (param_2 != iVar25);
  pbVar24 = pbVar7 + iVar25;
  pbVar14 = pbVar7;
  do {
    if ((*pbVar14 < 8) && ((1 << (*pbVar14 & 0x1f) & 0xe6U) != 0)) {
      *pbVar14 = 0xe;
    }
    pbVar14 = pbVar14 + 1;
  } while (pbVar14 != pbVar24);
  if (*pbVar7 == 0xd) {
    *pbVar7 = bVar21;
  }
  pbVar14 = pbVar7 + 1;
  if (iVar25 != 1) {
    do {
      if (*pbVar14 == 0xd) {
        *pbVar14 = pbVar14[-1];
      }
      pbVar14 = pbVar14 + 1;
    } while (pbVar14 != pbVar24);
  }
  pbVar14 = pbVar7;
  do {
    pbVar10 = pbVar14;
    if (*pbVar14 == 8) {
      while (pbVar10 = pbVar10 + -1, pbVar10 != pbVar7 + -1) {
        bVar12 = *pbVar10;
        if (bVar12 == 4) {
          *pbVar14 = 0xb;
          break;
        }
        if ((bVar12 == 3) || (bVar12 == 0)) break;
      }
    }
    pbVar14 = pbVar14 + 1;
    pbVar10 = pbVar7;
  } while (pbVar14 != pbVar24);
  do {
    if (*pbVar10 == 4) {
      *pbVar10 = 3;
    }
    pbVar10 = pbVar10 + 1;
  } while (pbVar10 != pbVar24);
  bVar3 = 1 < iVar22;
  if (bVar3) {
    pbVar14 = pbVar7;
    do {
      while (pbVar14[1] != 9) {
        if (pbVar14[1] == 0xc) {
          if (*pbVar14 == 8) goto LAB_00033c54;
          if ((*pbVar14 == 0xb) && (pbVar14[2] == 0xb)) {
            pbVar14[1] = 0xb;
          }
        }
LAB_00033c30:
        pbVar14 = pbVar14 + 1;
        if (pbVar7 + iVar22 + -1 == pbVar14) goto LAB_00033c70;
      }
      if (*pbVar14 != 8) goto LAB_00033c30;
LAB_00033c54:
      if (pbVar14[2] != 8) goto LAB_00033c30;
      pbVar14[1] = 8;
      pbVar14 = pbVar14 + 1;
    } while (pbVar7 + iVar22 + -1 != pbVar14);
  }
LAB_00033c70:
  iVar11 = 0;
  pbVar14 = pbVar7;
  do {
    if (*pbVar14 == 10) {
      if ((iVar11 == 0) || (pbVar14[-1] != 8)) {
        if (iVar11 < iVar22) {
          if (pbVar14[1] == 8) {
LAB_000342a8:
            *pbVar14 = 8;
          }
          else if (pbVar14[1] == 10) {
            pbVar24 = pbVar7 + iVar11 + 1;
            do {
              bVar12 = *pbVar24;
              if (pbVar7 + iVar22 == pbVar24) break;
              pbVar24 = pbVar24 + 1;
            } while (bVar12 == 10);
            if (bVar12 == 8) goto LAB_000342a8;
          }
        }
      }
      else {
        *pbVar14 = 8;
      }
    }
    bVar2 = iVar11 < iVar22;
    iVar11 = iVar11 + 1;
    pbVar14 = pbVar14 + 1;
  } while (bVar2);
  iVar11 = 0;
  do {
    uVar15 = (uint)pbVar7[iVar11];
    if ((uVar15 < 0xd) && ((1 << (uVar15 & 0x1f) & 0x1600U) != 0)) {
      pbVar7[iVar11] = 0x12;
    }
    bVar2 = iVar11 < iVar22;
    iVar11 = iVar11 + 1;
  } while (bVar2);
  iVar11 = 0;
  do {
    while( true ) {
      if (pbVar7[iVar11] != 8) break;
      uVar15 = 8;
      pbVar14 = pbVar7 + -1 + iVar11;
      do {
        if ((uVar15 - 3 < 2) || (pbVar7 + -1 == pbVar14)) goto LAB_00033cec;
        uVar15 = (uint)*pbVar14;
        pbVar14 = pbVar14 + -1;
      } while (uVar15 != 0);
      bVar2 = iVar22 <= iVar11;
      pbVar7[iVar11] = 0;
      iVar11 = iVar11 + 1;
      if (bVar2) goto LAB_00033d38;
    }
LAB_00033cec:
    bVar2 = iVar11 < iVar22;
    iVar11 = iVar11 + 1;
  } while (bVar2);
LAB_00033d38:
  if (iVar25 == 1) {
    if (!bVar3) goto LAB_00033e60;
LAB_00033d58:
    iVar11 = 1;
    do {
      while (pbVar14 = pbVar7 + iVar11, *pbVar14 != 0x12) {
LAB_00033d74:
        iVar11 = iVar11 + 1;
LAB_00033d78:
        if (iVar22 <= iVar11) goto LAB_00033e38;
      }
      bVar12 = pbVar14[-1];
      iVar26 = iVar11;
      if (bVar12 == 0) {
        do {
          iVar13 = iVar26;
          iVar26 = iVar13 + 1;
          if (iVar22 <= iVar26) break;
        } while (pbVar7[iVar26] == 0x12);
        if (pbVar7[iVar26] == 0) {
          if (iVar11 < iVar26) {
            while( true ) {
              *pbVar14 = 0;
              if (iVar13 <= iVar11) break;
              pbVar14 = pbVar7 + iVar11 + 1;
              iVar11 = iVar11 + 1;
            }
            iVar11 = iVar11 + 2;
          }
          else {
            iVar11 = iVar11 + 1;
          }
          goto LAB_00033d78;
        }
        goto LAB_00033d74;
      }
      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;
      if (iVar22 <= iVar11) {
        iVar11 = iVar11 + 1;
        goto LAB_00033d78;
      }
      do {
        iVar23 = iVar26;
        iVar26 = iVar23 + 1;
        bVar12 = pbVar7[iVar26];
        iVar13 = iVar22;
        if (iVar26 == iVar22) break;
        iVar13 = iVar26;
      } while (bVar12 == 0x12);
      if (((bVar12 & 0xf7) != 3) && (bVar12 != 8)) goto LAB_00033d74;
      if (iVar13 <= iVar11) {
        iVar11 = iVar11 + 1;
        goto LAB_00033d78;
      }
      while( true ) {
        *pbVar14 = 3;
        if (iVar23 <= iVar11) break;
        pbVar14 = pbVar7 + iVar11 + 1;
        iVar11 = iVar11 + 1;
      }
      iVar11 = iVar11 + 2;
    } while (iVar11 < iVar22);
LAB_00033e38:
    if (iVar25 == 1) goto LAB_00033e60;
  }
  else {
    if (*pbVar7 == 0x12) {
      bVar12 = pbVar7[1];
      if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {
        *pbVar7 = 3;
      }
      else if (bVar12 == 0) {
        *pbVar7 = 0;
      }
    }
    if (bVar3) goto LAB_00033d58;
  }
  pbVar14 = pbVar7 + param_2 + -1;
  if (*pbVar14 == 0x12) {
    bVar12 = pbVar7[param_2 + -2];
    if (((bVar12 & 0xf7) == 3) || (bVar12 == 8)) {
      *pbVar14 = 3;
    }
    else if (bVar12 == 0) {
      *pbVar14 = 0;
    }
  }
LAB_00033e60:
  iVar11 = 0;
  do {
    while( true ) {
      pbVar14 = pbVar7 + iVar11;
      if (*pbVar14 == 0x12) break;
LAB_00033e6c:
      bVar3 = iVar22 <= iVar11;
      iVar11 = iVar11 + 1;
      if (bVar3) goto LAB_00033ea8;
    }
    if ((pbVar8[iVar11] & 1) != 0) {
      *pbVar14 = 3;
      goto LAB_00033e6c;
    }
    *pbVar14 = 0;
    bVar3 = iVar11 < iVar22;
    iVar11 = iVar11 + 1;
  } while (bVar3);
LAB_00033ea8:
  iVar11 = 0;
  do {
    while( true ) {
      pbVar14 = pbVar8 + iVar11;
      bVar12 = *pbVar14;
      if ((bVar12 & 1) == 0) break;
LAB_00033ecc:
      bVar3 = iVar22 <= iVar11;
      iVar11 = iVar11 + 1;
      if (bVar3) goto LAB_00033f0c;
    }
    bVar1 = pbVar7[iVar11];
    if (bVar1 != 3) {
      if ((bVar1 == 0xb) || (bVar1 == 8)) {
        *pbVar14 = bVar12 + 2;
      }
      goto LAB_00033ecc;
    }
    *pbVar14 = bVar12 + 1;
    bVar3 = iVar11 < iVar22;
    iVar11 = iVar11 + 1;
  } while (bVar3);
LAB_00033f0c:
  iVar11 = 0;
  do {
    while( true ) {
      bVar12 = pbVar8[iVar11];
      if (((bVar12 & 1) == 0) || (((pbVar7[iVar11] & 0xf7) != 0 && (pbVar7[iVar11] != 0xb)))) break;
      pbVar8[iVar11] = bVar12 + 1;
      bVar3 = iVar22 <= iVar11;
      iVar11 = iVar11 + 1;
      if (bVar3) goto LAB_00033f68;
    }
    bVar3 = iVar11 < iVar22;
    iVar11 = iVar11 + 1;
  } while (bVar3);
LAB_00033f68:
  if (iVar22 != 0) {
    iVar26 = param_1 + iVar25 * 0xc;
    iVar11 = iVar22;
    do {
      iVar13 = -1;
      iVar23 = 0x269;
      do {
        iVar27 = iVar23;
        if (iVar27 - iVar13 < 2) goto LAB_00033fdc;
        iVar23 = (iVar27 + iVar13) / 2;
        piVar16 = (int *)(puVar4 + iVar23 * 0xc + 0x5a9c);
      } while ((*(int *)(iVar26 + -8) < *piVar16) ||
              (iVar13 = iVar23, iVar23 = iVar27, piVar16[1] < *(int *)(iVar26 + -8)));
      if (*(char *)((int)piVar16 + 0xb) != '\x11') {
LAB_00033fdc:
        bVar3 = iVar11 < iVar22;
        if (bVar3) goto LAB_000342f4;
        goto LAB_00033fe8;
      }
      iVar11 = iVar11 + -1;
      iVar26 = iVar26 + -0xc;
    } while (iVar11 != 0);
    bVar3 = 0 < iVar22;
LAB_000342f4:
    if (bVar3) {
      pbVar14 = pbVar8 + iVar11 + 1;
      do {
        *pbVar14 = bVar21;
        pbVar14 = pbVar14 + 1;
      } while (pbVar8 + iVar25 != pbVar14);
    }
  }
LAB_00033fe8:
  iVar11 = 0;
  piVar16 = piVar31;
  do {
    iVar23 = *piVar16;
    iVar26 = 0x269;
    iVar13 = -1;
    do {
      iVar27 = iVar26;
      if (iVar27 - iVar13 < 2) goto LAB_00034050;
      iVar17 = (iVar27 + iVar13) / 2;
      piVar6 = (int *)(puVar4 + iVar17 * 0xc + 0x5a9c);
      iVar26 = iVar17;
    } while ((iVar23 < *piVar6) || (iVar26 = iVar27, iVar13 = iVar17, piVar6[1] < iVar23));
    if (*(byte *)((int)piVar6 + 0xb) == 0x11) {
      iVar26 = iVar11;
      if (iVar11 < iVar25) {
        piVar6 = piVar16 + -1;
        while( true ) {
          iVar13 = 0x269;
          iVar27 = -1;
          do {
            iVar17 = iVar13;
            if (iVar17 - iVar27 < 2) goto LAB_0003439c;
            iVar20 = (iVar17 + iVar27) / 2;
            piVar18 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);
            iVar13 = iVar20;
          } while ((iVar23 < *piVar18) || (iVar13 = iVar17, iVar27 = iVar20, piVar18[1] < iVar23));
          iVar13 = iVar26 + 1;
          if (*(char *)((int)piVar18 + 0xb) != '\x11') goto LAB_0003439c;
          if (iVar26 == iVar22) break;
          iVar23 = piVar6[4];
          iVar26 = iVar13;
          piVar6 = piVar6 + 3;
        }
      }
      else {
LAB_0003439c:
        iVar13 = iVar25;
        if (iVar25 != iVar26) {
          iVar17 = *(int *)(param_1 + iVar26 * 0xc + 4);
          iVar23 = 0x269;
          iVar27 = -1;
          do {
            iVar20 = iVar23;
            iVar13 = iVar26;
            if (iVar20 - iVar27 < 2) goto LAB_00034408;
            iVar19 = (iVar20 + iVar27) / 2;
            piVar6 = (int *)(puVar4 + iVar19 * 0xc + 0x5a9c);
            iVar23 = iVar19;
          } while ((iVar17 < *piVar6) || (iVar23 = iVar20, iVar27 = iVar19, piVar6[1] < iVar17));
          if (*(char *)((int)piVar6 + 0xb) != '\x0f') {
LAB_00034408:
            iVar26 = 0x269;
            iVar23 = -1;
            do {
              iVar27 = iVar26;
              if (iVar27 - iVar23 < 2) goto LAB_00034050;
              iVar20 = (iVar27 + iVar23) / 2;
              piVar6 = (int *)(puVar4 + iVar20 * 0xc + 0x5a9c);
              iVar26 = iVar20;
            } while ((iVar17 < *piVar6) || (iVar26 = iVar27, iVar23 = iVar20, piVar6[1] < iVar17));
            if (*(char *)((int)piVar6 + 0xb) != '\x10') goto LAB_00034050;
          }
        }
      }
      pbVar14 = pbVar8 + iVar13 + -1;
      if (iVar11 <= iVar13 + -1) {
        do {
          *pbVar14 = bVar21;
          pbVar14 = pbVar14 + -1;
        } while (pbVar8 + iVar11 + -1 != pbVar14);
      }
    }
    else if (*(byte *)((int)piVar6 + 0xb) - 0xf < 2) {
      pbVar8[iVar11] = bVar21;
    }
LAB_00034050:
    bVar3 = iVar11 < iVar22;
    piVar16 = piVar16 + 3;
    iVar11 = iVar11 + 1;
  } while (bVar3);
  iVar11 = 0;
  do {
    while (uVar15 = (uint)(iVar11 < iVar22), (pbVar8[iVar11] & 1) == 0) {
      iVar11 = iVar11 + 1;
      if (uVar15 == 0) goto LAB_000340a4;
    }
    doMirror(piVar31 + iVar11 * 3);
    uVar15 = (uint)(iVar11 < iVar22);
    iVar11 = iVar11 + 1;
  } while (uVar15 != 0);
LAB_000340a4:
  uVar28 = (uint)*pbVar8;
  uVar29 = uVar28;
  while( true ) {
    bVar3 = iVar22 <= (int)uVar15;
    uVar30 = uVar28;
    if (uVar28 < uVar29) {
      uVar30 = uVar29;
    }
    uVar15 = uVar15 + 1;
    if (bVar3) break;
    uVar28 = (uint)pbVar8[uVar15];
    uVar29 = uVar30;
  }
  for (; uVar30 != 0; uVar30 = uVar30 - 1) {
    flipThisRun(param_1,pbVar8,uVar30,iVar25);
  }
  safefree(pbVar7);
  safefree(pbVar8);
  return 3;
}

