
int chacha_crypt(chacha_state *st,uchar *in,ulong inlen,uchar *out)

{
  uchar uVar1;
  uchar uVar2;
  uchar uVar3;
  uchar uVar4;
  uchar uVar5;
  uchar uVar6;
  uchar uVar7;
  long lVar8;
  undefined4 uVar9;
  int iVar10;
  uint uVar11;
  byte *pbVar12;
  long lVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  ulong uVar18;
  uint uVar19;
  uint uVar20;
  ulong uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  ulong32 uVar27;
  uint uVar28;
  uint uVar29;
  ulong uVar30;
  byte *pbVar31;
  uint uVar32;
  long in_FS_OFFSET;
  int local_138;
  uint local_11c;
  uint local_118;
  uint local_114;
  ulong local_100;
  ulong local_f0;
  ulong32 x [16];
  uchar buf [64];
  
  lVar8 = *(long *)(in_FS_OFFSET + 0x28);
  if (inlen != 0) {
    if (st == (chacha_state *)0x0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);
    }
    if (in == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);
    }
    if (out == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);
    }
    local_f0 = st->ivlen;
    if (local_f0 == 0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);
    }
    uVar18 = st->ksleft;
    local_100 = inlen;
    if (uVar18 != 0) {
      uVar21 = inlen;
      if (uVar18 <= inlen) {
        uVar21 = uVar18;
      }
      uVar30 = 0;
      uVar22 = (uint)uVar21 & 7;
      if ((uVar21 & 7) == 0) goto LAB_001899d0;
      if (uVar22 != 1) {
        if (uVar22 != 2) {
          if (uVar22 != 3) {
            if (uVar22 != 4) {
              if (uVar22 != 5) {
                if (uVar22 != 6) {
                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;
                  uVar18 = st->ksleft - 1;
                  st->ksleft = uVar18;
                }
                uVar30 = (ulong)(uVar22 != 6);
                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];
                uVar30 = uVar30 + 1;
                uVar18 = st->ksleft - 1;
                st->ksleft = uVar18;
              }
              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];
              uVar30 = uVar30 + 1;
              uVar18 = st->ksleft - 1;
              st->ksleft = uVar18;
            }
            out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];
            uVar30 = uVar30 + 1;
            uVar18 = st->ksleft - 1;
            st->ksleft = uVar18;
          }
          out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];
          uVar30 = uVar30 + 1;
          uVar18 = st->ksleft - 1;
          st->ksleft = uVar18;
        }
        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];
        uVar30 = uVar30 + 1;
        uVar18 = st->ksleft - 1;
        st->ksleft = uVar18;
      }
      out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];
      uVar18 = st->ksleft - 1;
      st->ksleft = uVar18;
      for (uVar30 = uVar30 + 1; uVar21 != uVar30; uVar30 = uVar30 + 8) {
LAB_001899d0:
        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];
        uVar18 = st->ksleft - 1;
        st->ksleft = uVar18;
        out[uVar30 + 1] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 1];
        uVar18 = st->ksleft - 1;
        st->ksleft = uVar18;
        out[uVar30 + 2] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 2];
        uVar18 = st->ksleft - 1;
        st->ksleft = uVar18;
        out[uVar30 + 3] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 3];
        uVar18 = st->ksleft - 1;
        st->ksleft = uVar18;
        out[uVar30 + 4] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 4];
        uVar18 = st->ksleft - 1;
        st->ksleft = uVar18;
        out[uVar30 + 5] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 5];
        uVar18 = st->ksleft - 1;
        st->ksleft = uVar18;
        out[uVar30 + 6] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 6];
        uVar18 = st->ksleft - 1;
        st->ksleft = uVar18;
        out[uVar30 + 7] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 7];
        uVar18 = st->ksleft - 1;
        st->ksleft = uVar18;
      }
      local_100 = inlen - uVar21;
      if (local_100 == 0) goto LAB_0018a411;
      out = out + uVar21;
      in = in + uVar21;
      local_f0 = st->ivlen;
      inlen = local_100;
    }
    do {
      pbVar31 = out + (inlen - local_100);
      local_138 = st->rounds;
      pbVar12 = in + (inlen - local_100);
      x[1] = (ulong32)((ulong)*(undefined8 *)st->input >> 0x20);
      x[0] = (ulong32)*(undefined8 *)st->input;
      x[3] = (ulong32)((ulong)*(undefined8 *)(st->input + 2) >> 0x20);
      x[2] = (ulong32)*(undefined8 *)(st->input + 2);
      x[5] = (ulong32)((ulong)*(undefined8 *)(st->input + 4) >> 0x20);
      x[4] = (ulong32)*(undefined8 *)(st->input + 4);
      x[7] = (ulong32)((ulong)*(undefined8 *)(st->input + 6) >> 0x20);
      x[6] = (ulong32)*(undefined8 *)(st->input + 6);
      x[9] = (ulong32)((ulong)*(undefined8 *)(st->input + 8) >> 0x20);
      x[8] = (ulong32)*(undefined8 *)(st->input + 8);
      x[0xb] = (ulong32)((ulong)*(undefined8 *)(st->input + 10) >> 0x20);
      x[10] = (ulong32)*(undefined8 *)(st->input + 10);
      x[0xd] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xc) >> 0x20);
      x[0xc] = (ulong32)*(undefined8 *)(st->input + 0xc);
      x[0xf] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xe) >> 0x20);
      x[0xe] = (ulong32)*(undefined8 *)(st->input + 0xe);
      if (0 < local_138) {
        local_118 = x[7];
        local_114 = x[10];
        local_11c = x[0xf];
        do {
          uVar11 = x[0xc] ^ x[0] + x[4];
          uVar22 = x[0xd] ^ x[1] + x[5];
          uVar14 = x[0xe] ^ x[2] + x[6];
          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;
          uVar19 = x[8] + uVar11;
          uVar16 = x[4] ^ uVar19;
          uVar17 = uVar16 << 0xc | uVar16 >> 0x14;
          uVar29 = x[0] + x[4] + uVar17;
          uVar11 = uVar11 ^ uVar29;
          uVar16 = uVar11 << 8 | uVar11 >> 0x18;
          uVar19 = uVar19 + uVar16;
          uVar17 = uVar17 ^ uVar19;
          uVar28 = uVar17 << 7 | uVar17 >> 0x19;
          uVar11 = uVar22 << 0x10 | uVar22 >> 0x10;
          uVar22 = x[9] + uVar11;
          uVar17 = x[5] ^ uVar22;
          uVar17 = uVar17 << 0xc | uVar17 >> 0x14;
          uVar26 = x[1] + x[5] + uVar17;
          uVar11 = uVar11 ^ uVar26;
          uVar11 = uVar11 << 8 | uVar11 >> 0x18;
          uVar22 = uVar22 + uVar11;
          uVar17 = uVar17 ^ uVar22;
          uVar23 = uVar17 << 7 | uVar17 >> 0x19;
          uVar17 = uVar14 << 0x10 | uVar14 >> 0x10;
          local_114 = local_114 + uVar17;
          uVar14 = x[6] ^ local_114;
          uVar24 = uVar14 << 0xc | uVar14 >> 0x14;
          uVar14 = x[2] + x[6] + uVar24;
          uVar17 = uVar17 ^ uVar14;
          uVar15 = uVar17 << 8 | uVar17 >> 0x18;
          local_114 = local_114 + uVar15;
          uVar29 = uVar29 + uVar23;
          uVar24 = uVar24 ^ local_114;
          local_11c = local_11c ^ x[3] + local_118;
          uVar25 = uVar24 << 7 | uVar24 >> 0x19;
          uVar26 = uVar26 + uVar25;
          uVar20 = local_11c << 0x10 | local_11c >> 0x10;
          uVar17 = x[0xb] + uVar20;
          uVar16 = uVar16 ^ uVar26;
          uVar24 = local_118 ^ uVar17;
          uVar24 = uVar24 << 0xc | uVar24 >> 0x14;
          uVar32 = x[3] + local_118 + uVar24;
          uVar20 = uVar20 ^ uVar32;
          uVar20 = uVar20 << 8 | uVar20 >> 0x18;
          uVar17 = uVar17 + uVar20;
          uVar20 = uVar20 ^ uVar29;
          uVar24 = uVar24 ^ uVar17;
          uVar24 = uVar24 << 7 | uVar24 >> 0x19;
          uVar20 = uVar20 << 0x10 | uVar20 >> 0x10;
          local_114 = local_114 + uVar20;
          uVar23 = uVar23 ^ local_114;
          uVar23 = uVar23 << 0xc | uVar23 >> 0x14;
          x[0] = uVar29 + uVar23;
          uVar20 = uVar20 ^ x[0];
          local_11c = uVar20 << 8 | uVar20 >> 0x18;
          local_114 = local_114 + local_11c;
          uVar23 = uVar23 ^ local_114;
          x[5] = uVar23 << 7 | uVar23 >> 0x19;
          uVar16 = uVar16 << 0x10 | uVar16 >> 0x10;
          uVar17 = uVar17 + uVar16;
          uVar25 = uVar25 ^ uVar17;
          uVar20 = uVar25 << 0xc | uVar25 >> 0x14;
          x[1] = uVar26 + uVar20;
          uVar14 = uVar14 + uVar24;
          uVar32 = uVar32 + uVar28;
          uVar16 = uVar16 ^ x[1];
          uVar11 = uVar11 ^ uVar14;
          uVar15 = uVar15 ^ uVar32;
          local_138 = local_138 + -2;
          x[0xc] = uVar16 << 8 | uVar16 >> 0x18;
          x[0xb] = uVar17 + x[0xc];
          uVar20 = uVar20 ^ x[0xb];
          x[6] = uVar20 << 7 | uVar20 >> 0x19;
          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;
          uVar19 = uVar19 + uVar11;
          uVar24 = uVar24 ^ uVar19;
          uVar16 = uVar24 << 0xc | uVar24 >> 0x14;
          x[2] = uVar14 + uVar16;
          uVar11 = uVar11 ^ x[2];
          x[0xd] = uVar11 << 8 | uVar11 >> 0x18;
          x[8] = uVar19 + x[0xd];
          uVar16 = uVar16 ^ x[8];
          local_118 = uVar16 << 7 | uVar16 >> 0x19;
          uVar11 = uVar15 << 0x10 | uVar15 >> 0x10;
          uVar22 = uVar22 + uVar11;
          uVar28 = uVar28 ^ uVar22;
          uVar16 = uVar28 << 0xc | uVar28 >> 0x14;
          x[3] = uVar32 + uVar16;
          uVar11 = uVar11 ^ x[3];
          x[0xe] = uVar11 << 8 | uVar11 >> 0x18;
          x[9] = uVar22 + x[0xe];
          uVar16 = uVar16 ^ x[9];
          x[4] = uVar16 << 7 | uVar16 >> 0x19;
          x[7] = local_118;
          x[10] = local_114;
          x[0xf] = local_11c;
        } while (0 < local_138);
      }
      buf._0_4_ = x[0] + st->input[0];
      uVar9 = buf._0_4_;
      buf._8_4_ = st->input[2] + x[2];
      buf._12_4_ = st->input[3] + x[3];
      buf._4_4_ = st->input[1] + x[1];
      buf._16_4_ = st->input[4] + x[4];
      buf._20_4_ = st->input[5] + x[5];
      buf._24_4_ = st->input[6] + x[6];
      buf._28_4_ = st->input[7] + x[7];
      buf._32_4_ = st->input[8] + x[8];
      buf._36_4_ = st->input[9] + x[9];
      buf._40_4_ = st->input[10] + x[10];
      uVar27 = st->input[0xc] + 1;
      buf._44_4_ = st->input[0xb] + x[0xb];
      buf._48_4_ = x[0xc] + st->input[0xc];
      buf._52_4_ = x[0xd] + st->input[0xd];
      buf._56_4_ = st->input[0xe] + x[0xe];
      buf._60_4_ = x[0xf] + st->input[0xf];
      if (local_f0 == 8) {
        st->input[0xc] = uVar27;
        if (uVar27 == 0) {
          uVar27 = st->input[0xd] + 1;
          st->input[0xd] = uVar27;
          goto joined_r0x0018a0dd;
        }
      }
      else {
        st->input[0xc] = uVar27;
joined_r0x0018a0dd:
        if (uVar27 == 0) {
          iVar10 = 0x13;
          goto LAB_0018a413;
        }
      }
      if (local_100 < 0x41) goto LAB_0018a0ed;
      lVar13 = 0;
      do {
        pbVar31[lVar13] = pbVar12[lVar13] ^ buf[lVar13];
        pbVar31[lVar13 + 1] = pbVar12[lVar13 + 1] ^ buf[lVar13 + 1];
        pbVar31[lVar13 + 2] = pbVar12[lVar13 + 2] ^ buf[lVar13 + 2];
        pbVar31[lVar13 + 3] = pbVar12[lVar13 + 3] ^ buf[lVar13 + 3];
        pbVar31[lVar13 + 4] = pbVar12[lVar13 + 4] ^ buf[lVar13 + 4];
        pbVar31[lVar13 + 5] = pbVar12[lVar13 + 5] ^ buf[lVar13 + 5];
        pbVar31[lVar13 + 6] = pbVar12[lVar13 + 6] ^ buf[lVar13 + 6];
        pbVar31[lVar13 + 7] = pbVar12[lVar13 + 7] ^ buf[lVar13 + 7];
        lVar13 = lVar13 + 8;
      } while (lVar13 != 0x40);
      local_100 = local_100 - 0x40;
      local_f0 = st->ivlen;
    } while( true );
  }
  goto LAB_0018a411;
LAB_0018a0ed:
  uVar18 = 0;
  uVar22 = (uint)local_100 & 7;
  if ((local_100 & 7) == 0) goto LAB_0018a1e3;
  if (uVar22 != 1) {
    if (uVar22 != 2) {
      if (uVar22 != 3) {
        if (uVar22 != 4) {
          if (uVar22 != 5) {
            if (uVar22 != 6) {
              *pbVar31 = *pbVar12 ^ buf[0];
            }
            uVar18 = (ulong)(uVar22 != 6);
            pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];
            uVar18 = uVar18 + 1;
          }
          pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];
          uVar18 = uVar18 + 1;
        }
        pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];
        uVar18 = uVar18 + 1;
      }
      pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];
      uVar18 = uVar18 + 1;
    }
    pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];
    uVar18 = uVar18 + 1;
  }
  pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];
  for (uVar18 = uVar18 + 1; local_100 != uVar18; uVar18 = uVar18 + 8) {
LAB_0018a1e3:
    pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];
    pbVar31[uVar18 + 1] = pbVar12[uVar18 + 1] ^ buf[uVar18 + 1];
    pbVar31[uVar18 + 2] = pbVar12[uVar18 + 2] ^ buf[uVar18 + 2];
    pbVar31[uVar18 + 3] = pbVar12[uVar18 + 3] ^ buf[uVar18 + 3];
    pbVar31[uVar18 + 4] = pbVar12[uVar18 + 4] ^ buf[uVar18 + 4];
    pbVar31[uVar18 + 5] = pbVar12[uVar18 + 5] ^ buf[uVar18 + 5];
    pbVar31[uVar18 + 6] = pbVar12[uVar18 + 6] ^ buf[uVar18 + 6];
    pbVar31[uVar18 + 7] = pbVar12[uVar18 + 7] ^ buf[uVar18 + 7];
  }
  st->ksleft = 0x40 - local_100;
  buf._0_4_ = uVar9;
  if (local_100 != 0x40) {
    uVar22 = (uint)-local_100 & 7;
    if ((-local_100 & 7) != 0) {
      if (uVar22 != 1) {
        if (uVar22 != 2) {
          if (uVar22 != 3) {
            if (uVar22 != 4) {
              if (uVar22 != 5) {
                if (uVar22 != 6) {
                  st->kstream[local_100] = buf[local_100];
                  local_100 = local_100 + 1;
                }
                st->kstream[local_100] = buf[local_100];
                local_100 = local_100 + 1;
              }
              st->kstream[local_100] = buf[local_100];
              local_100 = local_100 + 1;
            }
            st->kstream[local_100] = buf[local_100];
            local_100 = local_100 + 1;
          }
          st->kstream[local_100] = buf[local_100];
          local_100 = local_100 + 1;
        }
        st->kstream[local_100] = buf[local_100];
        local_100 = local_100 + 1;
      }
      st->kstream[local_100] = buf[local_100];
      local_100 = local_100 + 1;
      if (local_100 == 0x40) goto LAB_0018a411;
    }
    do {
      uVar1 = buf[local_100 + 1];
      uVar2 = buf[local_100 + 2];
      uVar3 = buf[local_100 + 3];
      uVar4 = buf[local_100 + 4];
      uVar5 = buf[local_100 + 5];
      st->kstream[local_100] = buf[local_100];
      uVar6 = buf[local_100 + 6];
      uVar7 = buf[local_100 + 7];
      st->kstream[local_100 + 1] = uVar1;
      st->kstream[local_100 + 2] = uVar2;
      st->kstream[local_100 + 3] = uVar3;
      st->kstream[local_100 + 4] = uVar4;
      st->kstream[local_100 + 5] = uVar5;
      st->kstream[local_100 + 6] = uVar6;
      st->kstream[local_100 + 7] = uVar7;
      local_100 = local_100 + 8;
    } while (local_100 != 0x40);
  }
LAB_0018a411:
  iVar10 = 0;
LAB_0018a413:
  if (lVar8 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar10;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



undefined8 chacha_crypt(int *param_1,byte *param_2,ulong param_3,byte *param_4)

{
  undefined1 uVar1;
  undefined1 uVar2;
  undefined1 uVar3;
  undefined1 uVar4;
  undefined1 uVar5;
  undefined1 uVar6;
  undefined1 uVar7;
  int iVar8;
  undefined8 uVar9;
  byte *pbVar10;
  long lVar11;
  uint uVar12;
  uint uVar13;
  ulong uVar14;
  uint uVar15;
  ulong uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  int iVar21;
  uint uVar22;
  ulong uVar23;
  byte *pbVar24;
  long in_FS_OFFSET;
  int local_138;
  uint local_11c;
  uint local_118;
  uint local_114;
  ulong local_100;
  long local_f0;
  uint local_c8;
  uint uStack_c4;
  uint uStack_c0;
  uint uStack_bc;
  uint local_b8;
  uint uStack_b4;
  uint uStack_b0;
  uint uStack_ac;
  uint local_a8;
  uint uStack_a4;
  uint uStack_a0;
  uint uStack_9c;
  uint local_98;
  uint uStack_94;
  uint uStack_90;
  uint uStack_8c;
  undefined4 local_88;
  undefined4 local_84;
  int local_80;
  int local_7c;
  int local_78;
  int local_74;
  int local_70;
  int local_6c;
  int local_68;
  int local_64;
  int local_60;
  int local_5c;
  int local_58;
  int local_54;
  int local_50;
  int local_4c;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_3 != 0) {
    if (param_1 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);
    }
    if (param_2 == (byte *)0x0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);
    }
    if (param_4 == (byte *)0x0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);
    }
    local_f0 = *(long *)(param_1 + 0x22);
    if (local_f0 == 0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);
    }
    uVar14 = *(ulong *)(param_1 + 0x20);
    local_100 = param_3;
    if (uVar14 != 0) {
      uVar16 = param_3;
      if (uVar14 <= param_3) {
        uVar16 = uVar14;
      }
      uVar23 = 0;
      uVar17 = (uint)uVar16 & 7;
      if ((uVar16 & 7) == 0) goto LAB_001899d0;
      if (uVar17 != 1) {
        if (uVar17 != 2) {
          if (uVar17 != 3) {
            if (uVar17 != 4) {
              if (uVar17 != 5) {
                if (uVar17 != 6) {
                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;
                  uVar14 = *(long *)(param_1 + 0x20) - 1;
                  *(ulong *)(param_1 + 0x20) = uVar14;
                }
                uVar23 = (ulong)(uVar17 != 6);
                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];
                uVar23 = uVar23 + 1;
                uVar14 = *(long *)(param_1 + 0x20) - 1;
                *(ulong *)(param_1 + 0x20) = uVar14;
              }
              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];
              uVar23 = uVar23 + 1;
              uVar14 = *(long *)(param_1 + 0x20) - 1;
              *(ulong *)(param_1 + 0x20) = uVar14;
            }
            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];
            uVar23 = uVar23 + 1;
            uVar14 = *(long *)(param_1 + 0x20) - 1;
            *(ulong *)(param_1 + 0x20) = uVar14;
          }
          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];
          uVar23 = uVar23 + 1;
          uVar14 = *(long *)(param_1 + 0x20) - 1;
          *(ulong *)(param_1 + 0x20) = uVar14;
        }
        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];
        uVar23 = uVar23 + 1;
        uVar14 = *(long *)(param_1 + 0x20) - 1;
        *(ulong *)(param_1 + 0x20) = uVar14;
      }
      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];
      uVar14 = *(long *)(param_1 + 0x20) - 1;
      *(ulong *)(param_1 + 0x20) = uVar14;
      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {
LAB_001899d0:
        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];
        lVar11 = *(long *)(param_1 + 0x20);
        *(long *)(param_1 + 0x20) = lVar11 + -1;
        param_4[uVar23 + 1] =
             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];
        lVar11 = *(long *)(param_1 + 0x20);
        *(long *)(param_1 + 0x20) = lVar11 + -1;
        param_4[uVar23 + 2] =
             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];
        lVar11 = *(long *)(param_1 + 0x20);
        *(long *)(param_1 + 0x20) = lVar11 + -1;
        param_4[uVar23 + 3] =
             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];
        lVar11 = *(long *)(param_1 + 0x20);
        *(long *)(param_1 + 0x20) = lVar11 + -1;
        param_4[uVar23 + 4] =
             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];
        lVar11 = *(long *)(param_1 + 0x20);
        *(long *)(param_1 + 0x20) = lVar11 + -1;
        param_4[uVar23 + 5] =
             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];
        lVar11 = *(long *)(param_1 + 0x20);
        *(long *)(param_1 + 0x20) = lVar11 + -1;
        param_4[uVar23 + 6] =
             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];
        lVar11 = *(long *)(param_1 + 0x20);
        *(long *)(param_1 + 0x20) = lVar11 + -1;
        param_4[uVar23 + 7] =
             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];
        uVar14 = *(long *)(param_1 + 0x20) - 1;
        *(ulong *)(param_1 + 0x20) = uVar14;
      }
      local_100 = param_3 - uVar16;
      if (local_100 == 0) goto LAB_0018a411;
      param_4 = param_4 + uVar16;
      param_2 = param_2 + uVar16;
      local_f0 = *(long *)(param_1 + 0x22);
      param_3 = local_100;
    }
    do {
      pbVar24 = param_4 + (param_3 - local_100);
      local_138 = param_1[0x24];
      pbVar10 = param_2 + (param_3 - local_100);
      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);
      local_c8 = (uint)*(undefined8 *)param_1;
      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);
      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);
      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);
      local_b8 = (uint)*(undefined8 *)(param_1 + 4);
      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);
      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);
      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);
      local_a8 = (uint)*(undefined8 *)(param_1 + 8);
      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);
      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);
      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);
      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);
      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);
      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);
      if (0 < local_138) {
        local_118 = uStack_ac;
        local_114 = uStack_a0;
        local_11c = uStack_8c;
        do {
          local_98 = local_98 ^ local_c8 + local_b8;
          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;
          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;
          uVar17 = local_98 << 0x10 | local_98 >> 0x10;
          local_a8 = local_a8 + uVar17;
          uVar12 = local_b8 ^ local_a8;
          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;
          local_c8 = local_c8 + local_b8 + uVar13;
          uVar17 = uVar17 ^ local_c8;
          uVar12 = uVar17 << 8 | uVar17 >> 0x18;
          local_a8 = local_a8 + uVar12;
          uVar13 = uVar13 ^ local_a8;
          uVar22 = uVar13 << 7 | uVar13 >> 0x19;
          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;
          uStack_a4 = uStack_a4 + uVar17;
          uVar13 = uStack_b4 ^ uStack_a4;
          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;
          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;
          uVar17 = uVar17 ^ uStack_c4;
          uVar17 = uVar17 << 8 | uVar17 >> 0x18;
          uStack_a4 = uStack_a4 + uVar17;
          uVar13 = uVar13 ^ uStack_a4;
          uVar18 = uVar13 << 7 | uVar13 >> 0x19;
          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;
          local_114 = local_114 + uVar13;
          uVar19 = uStack_b0 ^ local_114;
          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;
          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;
          uVar13 = uVar13 ^ uStack_c0;
          uVar13 = uVar13 << 8 | uVar13 >> 0x18;
          local_114 = local_114 + uVar13;
          local_c8 = local_c8 + uVar18;
          uVar19 = uVar19 ^ local_114;
          local_11c = local_11c ^ uStack_bc + local_118;
          uVar20 = uVar19 << 7 | uVar19 >> 0x19;
          uStack_c4 = uStack_c4 + uVar20;
          uVar15 = local_11c << 0x10 | local_11c >> 0x10;
          uStack_9c = uStack_9c + uVar15;
          uVar12 = uVar12 ^ uStack_c4;
          uVar19 = local_118 ^ uStack_9c;
          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;
          uStack_bc = uStack_bc + local_118 + uVar19;
          uVar15 = uVar15 ^ uStack_bc;
          uVar15 = uVar15 << 8 | uVar15 >> 0x18;
          uStack_9c = uStack_9c + uVar15;
          uVar15 = uVar15 ^ local_c8;
          uVar19 = uVar19 ^ uStack_9c;
          uVar19 = uVar19 << 7 | uVar19 >> 0x19;
          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;
          local_114 = local_114 + uVar15;
          uVar18 = uVar18 ^ local_114;
          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;
          local_c8 = local_c8 + uVar18;
          uVar15 = uVar15 ^ local_c8;
          local_11c = uVar15 << 8 | uVar15 >> 0x18;
          local_114 = local_114 + local_11c;
          uVar18 = uVar18 ^ local_114;
          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;
          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;
          uStack_9c = uStack_9c + uVar12;
          uVar20 = uVar20 ^ uStack_9c;
          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;
          uStack_c4 = uStack_c4 + uVar15;
          uStack_c0 = uStack_c0 + uVar19;
          uStack_bc = uStack_bc + uVar22;
          uVar12 = uVar12 ^ uStack_c4;
          uVar17 = uVar17 ^ uStack_c0;
          uVar13 = uVar13 ^ uStack_bc;
          local_138 = local_138 + -2;
          local_98 = uVar12 << 8 | uVar12 >> 0x18;
          uStack_9c = uStack_9c + local_98;
          uVar15 = uVar15 ^ uStack_9c;
          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;
          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;
          local_a8 = local_a8 + uVar17;
          uVar19 = uVar19 ^ local_a8;
          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;
          uStack_c0 = uStack_c0 + uVar12;
          uVar17 = uVar17 ^ uStack_c0;
          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;
          local_a8 = local_a8 + uStack_94;
          uVar12 = uVar12 ^ local_a8;
          local_118 = uVar12 << 7 | uVar12 >> 0x19;
          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;
          uStack_a4 = uStack_a4 + uVar17;
          uVar22 = uVar22 ^ uStack_a4;
          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;
          uStack_bc = uStack_bc + uVar12;
          uVar17 = uVar17 ^ uStack_bc;
          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;
          uStack_a4 = uStack_a4 + uStack_90;
          uVar12 = uVar12 ^ uStack_a4;
          local_b8 = uVar12 << 7 | uVar12 >> 0x19;
          uStack_ac = local_118;
          uStack_a0 = local_114;
          uStack_8c = local_11c;
        } while (0 < local_138);
      }
      local_88 = local_c8 + *param_1;
      iVar8 = local_88;
      local_80 = param_1[2] + uStack_c0;
      local_7c = param_1[3] + uStack_bc;
      local_84 = param_1[1] + uStack_c4;
      local_78 = param_1[4] + local_b8;
      local_74 = param_1[5] + uStack_b4;
      local_70 = param_1[6] + uStack_b0;
      local_6c = param_1[7] + uStack_ac;
      local_68 = param_1[8] + local_a8;
      local_64 = param_1[9] + uStack_a4;
      local_60 = param_1[10] + uStack_a0;
      iVar21 = param_1[0xc] + 1;
      local_5c = param_1[0xb] + uStack_9c;
      local_58 = local_98 + param_1[0xc];
      local_54 = uStack_94 + param_1[0xd];
      local_50 = param_1[0xe] + uStack_90;
      local_4c = uStack_8c + param_1[0xf];
      if (local_f0 == 8) {
        param_1[0xc] = iVar21;
        if (iVar21 == 0) {
          iVar21 = param_1[0xd] + 1;
          param_1[0xd] = iVar21;
          goto joined_r0x0018a0dd;
        }
      }
      else {
        param_1[0xc] = iVar21;
joined_r0x0018a0dd:
        if (iVar21 == 0) {
          uVar9 = 0x13;
          goto LAB_0018a413;
        }
      }
      if (local_100 < 0x41) goto LAB_0018a0ed;
      lVar11 = 0;
      do {
        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);
        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);
        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);
        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);
        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);
        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);
        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);
        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);
        lVar11 = lVar11 + 8;
      } while (lVar11 != 0x40);
      local_100 = local_100 - 0x40;
      local_f0 = *(long *)(param_1 + 0x22);
    } while( true );
  }
  goto LAB_0018a411;
LAB_0018a0ed:
  uVar14 = 0;
  uVar17 = (uint)local_100 & 7;
  if ((local_100 & 7) == 0) goto LAB_0018a1e3;
  if (uVar17 != 1) {
    if (uVar17 != 2) {
      if (uVar17 != 3) {
        if (uVar17 != 4) {
          if (uVar17 != 5) {
            if (uVar17 != 6) {
              local_88._0_1_ = (byte)(local_c8 + *param_1);
              *pbVar24 = *pbVar10 ^ (byte)local_88;
            }
            uVar14 = (ulong)(uVar17 != 6);
            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);
            uVar14 = uVar14 + 1;
          }
          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);
          uVar14 = uVar14 + 1;
        }
        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);
        uVar14 = uVar14 + 1;
      }
      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);
      uVar14 = uVar14 + 1;
    }
    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);
    uVar14 = uVar14 + 1;
  }
  pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);
  for (uVar14 = uVar14 + 1; local_100 != uVar14; uVar14 = uVar14 + 8) {
LAB_0018a1e3:
    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);
    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);
    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);
    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);
    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);
    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);
    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);
    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);
  }
  *(ulong *)(param_1 + 0x20) = 0x40 - local_100;
  local_88 = iVar8;
  if (local_100 != 0x40) {
    uVar17 = (uint)-local_100 & 7;
    if ((-local_100 & 7) != 0) {
      if (uVar17 != 1) {
        if (uVar17 != 2) {
          if (uVar17 != 3) {
            if (uVar17 != 4) {
              if (uVar17 != 5) {
                if (uVar17 != 6) {
                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =
                       *(undefined1 *)((long)&local_88 + local_100);
                  local_100 = local_100 + 1;
                }
                *(undefined1 *)((long)param_1 + local_100 + 0x40) =
                     *(undefined1 *)((long)&local_88 + local_100);
                local_100 = local_100 + 1;
              }
              *(undefined1 *)((long)param_1 + local_100 + 0x40) =
                   *(undefined1 *)((long)&local_88 + local_100);
              local_100 = local_100 + 1;
            }
            *(undefined1 *)((long)param_1 + local_100 + 0x40) =
                 *(undefined1 *)((long)&local_88 + local_100);
            local_100 = local_100 + 1;
          }
          *(undefined1 *)((long)param_1 + local_100 + 0x40) =
               *(undefined1 *)((long)&local_88 + local_100);
          local_100 = local_100 + 1;
        }
        *(undefined1 *)((long)param_1 + local_100 + 0x40) =
             *(undefined1 *)((long)&local_88 + local_100);
        local_100 = local_100 + 1;
      }
      *(undefined1 *)((long)param_1 + local_100 + 0x40) =
           *(undefined1 *)((long)&local_88 + local_100);
      local_100 = local_100 + 1;
      if (local_100 == 0x40) goto LAB_0018a411;
    }
    do {
      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);
      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);
      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);
      uVar4 = *(undefined1 *)((long)&local_84 + local_100);
      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);
      *(undefined1 *)((long)param_1 + local_100 + 0x40) =
           *(undefined1 *)((long)&local_88 + local_100);
      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);
      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);
      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;
      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;
      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;
      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;
      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;
      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;
      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;
      local_100 = local_100 + 8;
    } while (local_100 != 0x40);
  }
LAB_0018a411:
  uVar9 = 0;
LAB_0018a413:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return uVar9;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x108
MOV qword ptr [RSP + 0x30],RDI
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0xf8],RAX
XOR EAX,EAX
TEST RDX,RDX
JZ 0x0018a411
TEST RDI,RDI
JZ 0x0018a4be
TEST RSI,RSI
JZ 0x0018a4a6
TEST RCX,RCX
JZ 0x0018a48e
MOV RBX,qword ptr [RSP + 0x30]
MOV RDI,qword ptr [RBX + 0x88]
MOV qword ptr [RSP + 0x48],RDI
TEST RDI,RDI
JZ 0x0018a476
MOV RBP,qword ptr [RSP + 0x30]
MOV RDI,qword ptr [RBP + 0x80]
TEST RDI,RDI
JZ 0x00189b3d
CMP RDI,RDX
MOV R9,RDX
MOV R8D,0x40
CMOVBE R9,RDI
XOR R14D,R14D
MOV R10,R9
AND R10D,0x7
JZ 0x001899cb
CMP R10,0x1
JZ 0x0018998f
CMP R10,0x2
JZ 0x0018995c
CMP R10,0x3
JZ 0x00189929
CMP R10,0x4
JZ 0x001898f6
CMP R10,0x5
JZ 0x001898c3
CMP R10,0x6
JNZ 0x0018a43c
MOV RBX,qword ptr [RSP + 0x30]
MOV R15,R8
SUB R15,RDI
MOVZX EDI,byte ptr [RBX + R15*0x1 + 0x40]
XOR DIL,byte ptr [RSI + R14*0x1]
MOV byte ptr [RCX + R14*0x1],DIL
MOV RDI,qword ptr [RBX + 0x80]
ADD R14,0x1
MOV qword ptr [RSP],RDI
SUB RDI,0x1
MOV qword ptr [RBX + 0x80],RDI
MOV R11,qword ptr [RSP + 0x30]
MOV RBP,R8
SUB RBP,RDI
MOVZX R12D,byte ptr [R11 + RBP*0x1 + 0x40]
XOR R12B,byte ptr [RSI + R14*0x1]
MOV byte ptr [RCX + R14*0x1],R12B
MOV RDI,qword ptr [R11 + 0x80]
ADD R14,0x1
MOV qword ptr [RSP],RDI
SUB RDI,0x1
MOV qword ptr [R11 + 0x80],RDI
MOV RAX,qword ptr [RSP + 0x30]
MOV R13,R8
SUB R13,RDI
MOVZX EBX,byte ptr [RAX + R13*0x1 + 0x40]
XOR BL,byte ptr [RSI + R14*0x1]
MOV byte ptr [RCX + R14*0x1],BL
MOV RDI,qword ptr [RAX + 0x80]
ADD R14,0x1
MOV qword ptr [RSP],RDI
SUB RDI,0x1
MOV qword ptr [RAX + 0x80],RDI
MOV R10,qword ptr [RSP + 0x30]
MOV RBP,R8
SUB RBP,RDI
MOVZX R11D,byte ptr [R10 + RBP*0x1 + 0x40]
XOR R11B,byte ptr [RSI + R14*0x1]
MOV byte ptr [RCX + R14*0x1],R11B
MOV RDI,qword ptr [R10 + 0x80]
ADD R14,0x1
MOV qword ptr [RSP],RDI
SUB RDI,0x1
MOV qword ptr [R10 + 0x80],RDI
MOV R15,qword ptr [RSP + 0x30]
MOV R12,R8
SUB R12,RDI
MOVZX EAX,byte ptr [R15 + R12*0x1 + 0x40]
XOR AL,byte ptr [RSI + R14*0x1]
MOV byte ptr [RCX + R14*0x1],AL
MOV RDI,qword ptr [R15 + 0x80]
ADD R14,0x1
MOV qword ptr [RSP],RDI
SUB RDI,0x1
MOV qword ptr [R15 + 0x80],RDI
MOV R10,qword ptr [RSP + 0x30]
MOV RBX,R8
SUB RBX,RDI
MOVZX EDI,byte ptr [R10 + RBX*0x1 + 0x40]
XOR DIL,byte ptr [RSI + R14*0x1]
MOV byte ptr [RCX + R14*0x1],DIL
MOV RDI,qword ptr [R10 + 0x80]
ADD R14,0x1
MOV qword ptr [RSP],RDI
SUB RDI,0x1
MOV qword ptr [R10 + 0x80],RDI
CMP R9,R14
JZ 0x00189b1d
MOV R11,qword ptr [RSP + 0x30]
MOV R12,R8
SUB R12,RDI
MOV RDI,R8
MOVZX R15D,byte ptr [R11 + R12*0x1 + 0x40]
XOR R15B,byte ptr [RSI + R14*0x1]
MOV byte ptr [RCX + R14*0x1],R15B
MOV RAX,qword ptr [R11 + 0x80]
LEA RBP,[RAX + -0x1]
SUB RDI,RBP
MOV qword ptr [R11 + 0x80],RBP
MOVZX R10D,byte ptr [R11 + RDI*0x1 + 0x40]
XOR R10B,byte ptr [RSI + R14*0x1 + 0x1]
MOV RDI,R8
MOV byte ptr [RCX + R14*0x1 + 0x1],R10B
MOV R12,qword ptr [R11 + 0x80]
LEA R13,[R12 + -0x1]
SUB RDI,R13
MOV qword ptr [R11 + 0x80],R13
MOVZX EAX,byte ptr [R11 + RDI*0x1 + 0x40]
XOR AL,byte ptr [RSI + R14*0x1 + 0x2]
MOV RDI,R8
MOV byte ptr [RCX + R14*0x1 + 0x2],AL
MOV RBP,qword ptr [R11 + 0x80]
LEA R10,[RBP + -0x1]
SUB RDI,R10
MOV qword ptr [R11 + 0x80],R10
MOVZX R12D,byte ptr [R11 + RDI*0x1 + 0x40]
XOR R12B,byte ptr [RSI + R14*0x1 + 0x3]
MOV RDI,R8
MOV byte ptr [RCX + R14*0x1 + 0x3],R12B
MOV R13,qword ptr [R11 + 0x80]
LEA R15,[R13 + -0x1]
SUB RDI,R15
MOV qword ptr [R11 + 0x80],R15
MOVZX EBP,byte ptr [R11 + RDI*0x1 + 0x40]
XOR BPL,byte ptr [RSI + R14*0x1 + 0x4]
MOV RDI,R8
MOV byte ptr [RCX + R14*0x1 + 0x4],BPL
MOV R10,qword ptr [R11 + 0x80]
LEA R12,[R10 + -0x1]
SUB RDI,R12
MOV qword ptr [R11 + 0x80],R12
MOVZX R13D,byte ptr [R11 + RDI*0x1 + 0x40]
XOR R13B,byte ptr [RSI + R14*0x1 + 0x5]
MOV RDI,R8
MOV byte ptr [RCX + R14*0x1 + 0x5],R13B
MOV R15,qword ptr [R11 + 0x80]
LEA RAX,[R15 + -0x1]
SUB RDI,RAX
MOV qword ptr [R11 + 0x80],RAX
MOVZX R10D,byte ptr [R11 + RDI*0x1 + 0x40]
XOR R10B,byte ptr [RSI + R14*0x1 + 0x6]
MOV RDI,R8
MOV byte ptr [RCX + R14*0x1 + 0x6],R10B
MOV R12,qword ptr [R11 + 0x80]
LEA R13,[R12 + -0x1]
SUB RDI,R13
MOV qword ptr [R11 + 0x80],R13
MOVZX R15D,byte ptr [R11 + RDI*0x1 + 0x40]
XOR R15B,byte ptr [RSI + R14*0x1 + 0x7]
MOV byte ptr [RCX + R14*0x1 + 0x7],R15B
MOV RAX,qword ptr [R11 + 0x80]
ADD R14,0x8
LEA RDI,[RAX + -0x1]
MOV qword ptr [R11 + 0x80],RDI
CMP R9,R14
JNZ 0x001899d0
SUB RDX,R9
JZ 0x0018a411
ADD RCX,R9
ADD RSI,R9
MOV R9,qword ptr [RSP + 0x30]
MOV R8,qword ptr [R9 + 0x88]
MOV qword ptr [RSP + 0x48],R8
LEA RCX,[RCX + RDX*0x1]
MOV qword ptr [RSP + 0x38],RDX
ADD RDX,RSI
LEA RSI,[RSP + 0x70]
MOV qword ptr [RSP + 0x60],RCX
MOV qword ptr [RSP + 0x58],RDX
MOV qword ptr [RSP + 0x68],RSI
NOP dword ptr [RAX]
MOV RBP,qword ptr [RSP + 0x30]
MOV R11,qword ptr [RSP + 0x38]
MOV R14,qword ptr [RSP + 0x60]
MOV R10,qword ptr [RSP + 0x68]
MOVDQU XMM7,xmmword ptr [RBP + 0x30]
MOV RBX,qword ptr [RSP + 0x58]
MOVDQU XMM1,xmmword ptr [RBP]
MOVDQU XMM3,xmmword ptr [RBP + 0x10]
SUB R14,R11
MOVDQU XMM5,xmmword ptr [RBP + 0x20]
MOV ECX,dword ptr [RBP + 0x90]
MOV qword ptr [RSP + 0x40],R14
SUB RBX,R11
MOVAPS xmmword ptr [R10],XMM1
MOVAPS xmmword ptr [R10 + 0x10],XMM3
MOVAPS xmmword ptr [R10 + 0x20],XMM5
MOVAPS xmmword ptr [R10 + 0x30],XMM7
MOV R14D,dword ptr [RSP + 0x70]
MOVAPS xmmword ptr [RSP],XMM7
TEST ECX,ECX
JLE 0x00189eb8
MOV R13D,dword ptr [RSP + 0x78]
MOV EBP,dword ptr [RSP + 0x8c]
MOV dword ptr [RSP],ECX
MOV qword ptr [RSP + 0x50],RBX
MOV EDI,dword ptr [RSP + 0x80]
MOV EDX,dword ptr [RSP + 0xa0]
MOV dword ptr [RSP + 0x28],R13D
MOV R13D,dword ptr [RSP + 0x98]
MOV R12D,dword ptr [RSP + 0x74]
MOV dword ptr [RSP + 0x20],EBP
MOV EBP,dword ptr [RSP + 0xac]
MOV R9D,dword ptr [RSP + 0x90]
MOV dword ptr [RSP + 0x24],R13D
MOV R10D,dword ptr [RSP + 0x84]
MOV dword ptr [RSP + 0x1c],EBP
MOV EAX,dword ptr [RSP + 0xa4]
MOV R8D,dword ptr [RSP + 0x94]
MOV R11D,dword ptr [RSP + 0x88]
MOV ESI,dword ptr [RSP + 0xa8]
MOV R15D,dword ptr [RSP + 0x7c]
MOV EBP,dword ptr [RSP + 0x9c]
MOV EBX,dword ptr [RSP + 0x28]
NOP dword ptr [RAX + RAX*0x1]
ADD R14D,EDI
MOV ECX,0x10
ADD R12D,R10D
ADD EBX,R11D
XOR EDX,R14D
XOR EAX,R12D
XOR ESI,EBX
ROL EDX,CL
ADD R9D,EDX
MOV ECX,0xc
XOR EDI,R9D
ROL EDI,CL
ADD R14D,EDI
MOV ECX,0x8
XOR EDX,R14D
ROL EDX,CL
ADD R9D,EDX
MOV ECX,0x7
XOR EDI,R9D
MOV dword ptr [RSP + 0x28],R9D
MOV R9D,dword ptr [RSP + 0x1c]
MOV R13D,EDI
ROL R13D,CL
MOV ECX,0x10
ROL EAX,CL
ADD R8D,EAX
MOV ECX,0xc
XOR R10D,R8D
ROL R10D,CL
ADD R12D,R10D
MOV ECX,0x8
XOR EAX,R12D
ROL EAX,CL
LEA EDI,[R8 + RAX*0x1]
MOV R8D,dword ptr [RSP + 0x24]
MOV ECX,0x7
XOR R10D,EDI
MOV dword ptr [RSP + 0x2c],EDI
MOV EDI,dword ptr [RSP + 0x20]
ROL R10D,CL
MOV ECX,0x10
ROL ESI,CL
ADD R8D,ESI
MOV ECX,0xc
XOR R11D,R8D
ROL R11D,CL
ADD EBX,R11D
MOV ECX,0x8
XOR ESI,EBX
ROL ESI,CL
ADD R8D,ESI
ADD R15D,EDI
MOV ECX,0x7
ADD R14D,R10D
XOR R11D,R8D
XOR R9D,R15D
ROL R11D,CL
MOV ECX,0x10
ADD R12D,R11D
ROL R9D,CL
ADD EBP,R9D
MOV ECX,0xc
XOR EDX,R12D
XOR EDI,EBP
ROL EDI,CL
ADD R15D,EDI
MOV ECX,0x8
XOR R9D,R15D
ROL R9D,CL
ADD EBP,R9D
MOV ECX,0x7
XOR R9D,R14D
XOR EDI,EBP
ROL EDI,CL
MOV ECX,0x10
ROL R9D,CL
ADD R8D,R9D
MOV ECX,0xc
XOR R10D,R8D
ROL R10D,CL
ADD R14D,R10D
MOV ECX,0x8
XOR R9D,R14D
ROL R9D,CL
ADD R8D,R9D
MOV ECX,0x7
MOV dword ptr [RSP + 0x1c],R9D
MOV R9D,dword ptr [RSP + 0x28]
XOR R10D,R8D
MOV dword ptr [RSP + 0x24],R8D
MOV R8D,dword ptr [RSP + 0x2c]
ROL R10D,CL
MOV ECX,0x10
ROL EDX,CL
ADD EBP,EDX
MOV ECX,0xc
XOR R11D,EBP
ROL R11D,CL
ADD R12D,R11D
ADD EBX,EDI
MOV ECX,0x8
ADD R15D,R13D
XOR EDX,R12D
XOR EAX,EBX
XOR ESI,R15D
SUB dword ptr [RSP],0x2
ROL EDX,CL
ADD EBP,EDX
MOV ECX,0x7
XOR R11D,EBP
ROL R11D,CL
MOV ECX,0x10
ROL EAX,CL
ADD R9D,EAX
MOV ECX,0xc
XOR EDI,R9D
ROL EDI,CL
ADD EBX,EDI
MOV ECX,0x8
XOR EAX,EBX
ROL EAX,CL
ADD R9D,EAX
MOV ECX,0x7
XOR EDI,R9D
ROL EDI,CL
MOV ECX,0x10
MOV dword ptr [RSP + 0x20],EDI
MOV EDI,R13D
MOV R13D,dword ptr [RSP]
ROL ESI,CL
LEA R8D,[R8 + RSI*0x1]
MOV ECX,0xc
XOR EDI,R8D
ROL EDI,CL
ADD R15D,EDI
MOV ECX,0x8
XOR ESI,R15D
ROL ESI,CL
ADD R8D,ESI
MOV ECX,0x7
XOR EDI,R8D
ROL EDI,CL
TEST R13D,R13D
JG 0x00189c50
MOV R13D,dword ptr [RSP + 0x24]
MOV dword ptr [RSP + 0xa0],EDX
MOV ECX,EBX
MOV dword ptr [RSP + 0x74],R12D
MOV EDX,dword ptr [RSP + 0x20]
MOV R12D,dword ptr [RSP + 0x1c]
MOV dword ptr [RSP + 0x80],EDI
MOV dword ptr [RSP + 0x90],R9D
MOV RBX,qword ptr [RSP + 0x50]
MOV dword ptr [RSP + 0x84],R10D
MOV dword ptr [RSP + 0xa4],EAX
MOV dword ptr [RSP + 0x94],R8D
MOV dword ptr [RSP + 0x78],ECX
MOV dword ptr [RSP + 0x88],R11D
MOV dword ptr [RSP + 0xa8],ESI
MOV dword ptr [RSP + 0x98],R13D
MOV dword ptr [RSP + 0x7c],R15D
MOV dword ptr [RSP + 0x8c],EDX
MOV dword ptr [RSP + 0xac],R12D
MOV dword ptr [RSP + 0x9c],EBP
MOV R10,qword ptr [RSP + 0x30]
ADD R14D,dword ptr [R10]
MOV EAX,dword ptr [R10 + 0x8]
MOV R11D,dword ptr [R10 + 0xc]
ADD EAX,dword ptr [RSP + 0x78]
MOV dword ptr [RSP + 0xb0],R14D
ADD R11D,dword ptr [RSP + 0x7c]
MOV R14D,dword ptr [R10 + 0x4]
MOV dword ptr [RSP + 0xb8],EAX
MOV ESI,dword ptr [R10 + 0x10]
MOV R15D,dword ptr [R10 + 0x14]
MOV dword ptr [RSP + 0xbc],R11D
ADD R14D,dword ptr [RSP + 0x74]
ADD ESI,dword ptr [RSP + 0x80]
MOV EBP,dword ptr [R10 + 0x18]
MOV R9D,dword ptr [R10 + 0x1c]
MOV dword ptr [RSP + 0xb4],R14D
MOV R8D,dword ptr [R10 + 0x20]
MOV EDI,dword ptr [R10 + 0x24]
MOV dword ptr [RSP + 0xc0],ESI
ADD R15D,dword ptr [RSP + 0x84]
ADD EBP,dword ptr [RSP + 0x88]
ADD R9D,dword ptr [RSP + 0x8c]
MOV R13D,dword ptr [R10 + 0x28]
MOV dword ptr [RSP + 0xc4],R15D
ADD R8D,dword ptr [RSP + 0x90]
ADD EDI,dword ptr [RSP + 0x94]
MOV dword ptr [RSP + 0xc8],EBP
ADD R13D,dword ptr [RSP + 0x98]
MOV dword ptr [RSP + 0xcc],R9D
MOV dword ptr [RSP + 0xd0],R8D
MOV dword ptr [RSP + 0xd4],EDI
MOV dword ptr [RSP + 0xd8],R13D
MOV R12D,dword ptr [R10 + 0x30]
MOV EDX,dword ptr [RSP + 0xa0]
MOV R14D,dword ptr [R10 + 0x34]
MOV EAX,dword ptr [RSP + 0xa4]
MOV ECX,dword ptr [R10 + 0x2c]
ADD EDX,R12D
MOV R11D,dword ptr [R10 + 0x38]
ADD R12D,0x1
ADD ECX,dword ptr [RSP + 0x9c]
ADD EAX,R14D
ADD R11D,dword ptr [RSP + 0xa8]
MOV ESI,dword ptr [RSP + 0xac]
MOV dword ptr [RSP + 0xdc],ECX
ADD ESI,dword ptr [R10 + 0x3c]
CMP qword ptr [RSP + 0x48],0x8
MOV dword ptr [RSP + 0xe0],EDX
MOV dword ptr [RSP + 0xe4],EAX
MOV dword ptr [RSP + 0xe8],R11D
MOV dword ptr [RSP + 0xec],ESI
JZ 0x0018a0c3
MOV R10,qword ptr [RSP + 0x30]
MOV dword ptr [R10 + 0x30],R12D
TEST R12D,R12D
JZ 0x0018a0e3
CMP qword ptr [RSP + 0x38],0x40
JBE 0x0018a0ed
MOV R8,qword ptr [RSP + 0x40]
XOR EBP,EBP
LEA R9,[RSP + 0xb0]
NOP
MOVZX EDI,byte ptr [RBX + RBP*0x1]
XOR DIL,byte ptr [R9 + RBP*0x1]
MOV byte ptr [R8 + RBP*0x1],DIL
MOVZX R13D,byte ptr [RBX + RBP*0x1 + 0x1]
XOR R13B,byte ptr [R9 + RBP*0x1 + 0x1]
MOV byte ptr [R8 + RBP*0x1 + 0x1],R13B
MOVZX ECX,byte ptr [RBX + RBP*0x1 + 0x2]
XOR CL,byte ptr [R9 + RBP*0x1 + 0x2]
MOV byte ptr [R8 + RBP*0x1 + 0x2],CL
MOVZX R12D,byte ptr [RBX + RBP*0x1 + 0x3]
XOR R12B,byte ptr [R9 + RBP*0x1 + 0x3]
MOV byte ptr [R8 + RBP*0x1 + 0x3],R12B
MOVZX EDX,byte ptr [RBX + RBP*0x1 + 0x4]
XOR DL,byte ptr [R9 + RBP*0x1 + 0x4]
MOV byte ptr [R8 + RBP*0x1 + 0x4],DL
MOVZX R14D,byte ptr [RBX + RBP*0x1 + 0x5]
XOR R14B,byte ptr [R9 + RBP*0x1 + 0x5]
MOV byte ptr [R8 + RBP*0x1 + 0x5],R14B
MOVZX EAX,byte ptr [RBX + RBP*0x1 + 0x6]
XOR AL,byte ptr [R9 + RBP*0x1 + 0x6]
MOV byte ptr [R8 + RBP*0x1 + 0x6],AL
MOVZX R11D,byte ptr [RBX + RBP*0x1 + 0x7]
XOR R11B,byte ptr [R9 + RBP*0x1 + 0x7]
MOV byte ptr [R8 + RBP*0x1 + 0x7],R11B
ADD RBP,0x8
CMP RBP,0x40
JNZ 0x0018a020
MOV RBX,qword ptr [RSP + 0x30]
SUB qword ptr [RSP + 0x38],0x40
MOV R10,qword ptr [RBX + 0x88]
MOV qword ptr [RSP + 0x48],R10
JMP 0x00189b60
MOV dword ptr [R10 + 0x30],R12D
TEST R12D,R12D
JNZ 0x0018a003
MOV R15,qword ptr [RSP + 0x30]
ADD R14D,0x1
MOV dword ptr [R15 + 0x34],R14D
JNZ 0x0018a003
MOV EAX,0x13
JMP 0x0018a413
MOV RSI,qword ptr [RSP + 0x38]
MOV R15,RBX
XOR EDI,EDI
LEA RBP,[RSP + 0xb0]
AND ESI,0x7
JZ 0x0018a1de
CMP RSI,0x1
JZ 0x0018a1bc
CMP RSI,0x2
JZ 0x0018a1a5
CMP RSI,0x3
JZ 0x0018a18e
CMP RSI,0x4
JZ 0x0018a177
CMP RSI,0x5
JZ 0x0018a160
CMP RSI,0x6
JZ 0x0018a149
MOV R8,qword ptr [RSP + 0x40]
MOVZX R9D,byte ptr [RBX]
MOV EDI,0x1
XOR R9B,byte ptr [RBP]
MOV byte ptr [R8],R9B
MOV RCX,qword ptr [RSP + 0x40]
MOVZX R13D,byte ptr [R15 + RDI*0x1]
XOR R13B,byte ptr [RBP + RDI*0x1]
MOV byte ptr [RCX + RDI*0x1],R13B
ADD RDI,0x1
MOV RDX,qword ptr [RSP + 0x40]
MOVZX R12D,byte ptr [R15 + RDI*0x1]
XOR R12B,byte ptr [RBP + RDI*0x1]
MOV byte ptr [RDX + RDI*0x1],R12B
ADD RDI,0x1
MOV RAX,qword ptr [RSP + 0x40]
MOVZX R14D,byte ptr [R15 + RDI*0x1]
XOR R14B,byte ptr [RBP + RDI*0x1]
MOV byte ptr [RAX + RDI*0x1],R14B
ADD RDI,0x1
MOV RBX,qword ptr [RSP + 0x40]
MOVZX R11D,byte ptr [R15 + RDI*0x1]
XOR R11B,byte ptr [RBP + RDI*0x1]
MOV byte ptr [RBX + RDI*0x1],R11B
ADD RDI,0x1
MOV RSI,qword ptr [RSP + 0x40]
MOVZX R10D,byte ptr [R15 + RDI*0x1]
XOR R10B,byte ptr [RBP + RDI*0x1]
MOV byte ptr [RSI + RDI*0x1],R10B
ADD RDI,0x1
MOV R8,qword ptr [RSP + 0x40]
MOVZX R9D,byte ptr [R15 + RDI*0x1]
XOR R9B,byte ptr [RBP + RDI*0x1]
MOV byte ptr [R8 + RDI*0x1],R9B
ADD RDI,0x1
CMP qword ptr [RSP + 0x38],RDI
JZ 0x0018a26d
MOV R13,qword ptr [RSP + 0x40]
MOVZX ECX,byte ptr [R15 + RDI*0x1]
XOR CL,byte ptr [RBP + RDI*0x1]
MOV byte ptr [R13 + RDI*0x1],CL
MOVZX R12D,byte ptr [R15 + RDI*0x1 + 0x1]
XOR R12B,byte ptr [RBP + RDI*0x1 + 0x1]
MOV byte ptr [R13 + RDI*0x1 + 0x1],R12B
MOVZX EDX,byte ptr [R15 + RDI*0x1 + 0x2]
XOR DL,byte ptr [RBP + RDI*0x1 + 0x2]
MOV byte ptr [R13 + RDI*0x1 + 0x2],DL
MOVZX R14D,byte ptr [R15 + RDI*0x1 + 0x3]
XOR R14B,byte ptr [RBP + RDI*0x1 + 0x3]
MOV byte ptr [R13 + RDI*0x1 + 0x3],R14B
MOVZX EAX,byte ptr [R15 + RDI*0x1 + 0x4]
XOR AL,byte ptr [RBP + RDI*0x1 + 0x4]
MOV byte ptr [R13 + RDI*0x1 + 0x4],AL
MOVZX R11D,byte ptr [R15 + RDI*0x1 + 0x5]
XOR R11B,byte ptr [RBP + RDI*0x1 + 0x5]
MOV byte ptr [R13 + RDI*0x1 + 0x5],R11B
MOVZX EBX,byte ptr [R15 + RDI*0x1 + 0x6]
XOR BL,byte ptr [RBP + RDI*0x1 + 0x6]
MOV byte ptr [R13 + RDI*0x1 + 0x6],BL
MOVZX R10D,byte ptr [R15 + RDI*0x1 + 0x7]
XOR R10B,byte ptr [RBP + RDI*0x1 + 0x7]
MOV byte ptr [R13 + RDI*0x1 + 0x7],R10B
ADD RDI,0x8
CMP qword ptr [RSP + 0x38],RDI
JNZ 0x0018a1e3
MOV RSI,qword ptr [RSP + 0x38]
MOV R15D,0x40
MOV RDI,qword ptr [RSP + 0x30]
SUB R15,RSI
MOV qword ptr [RDI + 0x80],R15
CMP RSI,0x40
JZ 0x0018a411
NEG RSI
MOV RBX,RSI
AND EBX,0x7
JZ 0x0018a3a8
CMP RBX,0x1
JZ 0x0018a384
CMP RBX,0x2
JZ 0x0018a366
CMP RBX,0x3
JZ 0x0018a348
CMP RBX,0x4
JZ 0x0018a32a
CMP RBX,0x5
JZ 0x0018a30c
CMP RBX,0x6
JZ 0x0018a2ee
MOV R9,qword ptr [RSP + 0x38]
MOV R13,qword ptr [RSP + 0x30]
MOVZX R8D,byte ptr [RBP + R9*0x1]
MOV byte ptr [R13 + R9*0x1 + 0x40],R8B
ADD R9,0x1
MOV qword ptr [RSP + 0x38],R9
MOV RCX,qword ptr [RSP + 0x38]
MOV RDX,qword ptr [RSP + 0x30]
MOVZX R12D,byte ptr [RBP + RCX*0x1]
MOV byte ptr [RDX + RCX*0x1 + 0x40],R12B
ADD RCX,0x1
MOV qword ptr [RSP + 0x38],RCX
MOV R14,qword ptr [RSP + 0x38]
MOV R11,qword ptr [RSP + 0x30]
MOVZX EAX,byte ptr [RBP + R14*0x1]
MOV byte ptr [R11 + R14*0x1 + 0x40],AL
ADD R14,0x1
MOV qword ptr [RSP + 0x38],R14
MOV R10,qword ptr [RSP + 0x38]
MOV RSI,qword ptr [RSP + 0x30]
MOVZX R15D,byte ptr [RBP + R10*0x1]
MOV byte ptr [RSI + R10*0x1 + 0x40],R15B
ADD R10,0x1
MOV qword ptr [RSP + 0x38],R10
MOV RBX,qword ptr [RSP + 0x38]
MOV RDI,qword ptr [RSP + 0x30]
MOVZX R9D,byte ptr [RBP + RBX*0x1]
MOV byte ptr [RDI + RBX*0x1 + 0x40],R9B
ADD RBX,0x1
MOV qword ptr [RSP + 0x38],RBX
MOV R8,qword ptr [RSP + 0x38]
MOV RCX,qword ptr [RSP + 0x30]
MOVZX R13D,byte ptr [RBP + R8*0x1]
MOV byte ptr [RCX + R8*0x1 + 0x40],R13B
ADD R8,0x1
MOV qword ptr [RSP + 0x38],R8
MOV R12,qword ptr [RSP + 0x38]
MOV R14,qword ptr [RSP + 0x30]
MOVZX EDX,byte ptr [RBP + R12*0x1]
MOV byte ptr [R14 + R12*0x1 + 0x40],DL
ADD R12,0x1
MOV qword ptr [RSP + 0x38],R12
CMP R12,0x40
JZ 0x0018a411
MOV RAX,qword ptr [RSP + 0x38]
MOV R11,qword ptr [RSP + 0x30]
MOVZX R10D,byte ptr [RBP + RAX*0x1]
MOVZX R15D,byte ptr [RBP + RAX*0x1 + 0x1]
MOVZX ESI,byte ptr [RBP + RAX*0x1 + 0x2]
MOVZX EBX,byte ptr [RBP + RAX*0x1 + 0x3]
MOVZX R9D,byte ptr [RBP + RAX*0x1 + 0x4]
MOVZX EDI,byte ptr [RBP + RAX*0x1 + 0x5]
MOV byte ptr [R11 + RAX*0x1 + 0x40],R10B
MOVZX R8D,byte ptr [RBP + RAX*0x1 + 0x6]
MOVZX R13D,byte ptr [RBP + RAX*0x1 + 0x7]
MOV byte ptr [R11 + RAX*0x1 + 0x41],R15B
MOV byte ptr [R11 + RAX*0x1 + 0x42],SIL
MOV byte ptr [R11 + RAX*0x1 + 0x43],BL
MOV byte ptr [R11 + RAX*0x1 + 0x44],R9B
MOV byte ptr [R11 + RAX*0x1 + 0x45],DIL
MOV byte ptr [R11 + RAX*0x1 + 0x46],R8B
MOV byte ptr [R11 + RAX*0x1 + 0x47],R13B
ADD RAX,0x8
CMP RAX,0x40
JNZ 0x0018a3b2
XOR EAX,EAX
MOV RBX,qword ptr [RSP + 0xf8]
XOR RBX,qword ptr FS:[0x28]
JNZ 0x0018a4d6
ADD RSP,0x108
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV R12,qword ptr [RSP + 0x30]
MOV R11,R8
MOV R14D,0x1
SUB R11,RDI
MOVZX R13D,byte ptr [R12 + R11*0x1 + 0x40]
XOR R13B,byte ptr [RSI]
MOV byte ptr [RCX],R13B
MOV RDI,qword ptr [R12 + 0x80]
MOV qword ptr [RSP],RDI
SUB RDI,0x1
MOV qword ptr [R12 + 0x80],RDI
JMP 0x00189890
MOV EDX,0x40
LEA RSI,[0x1c7188]
LEA RDI,[0x1c71a9]
CALL 0x00114270
MOV EDX,0x3f
LEA RSI,[0x1c7188]
LEA RDI,[0x1a87a1]
CALL 0x00114270
MOV EDX,0x3e
LEA RSI,[0x1c7188]
LEA RDI,[0x1a8790]
CALL 0x00114270
MOV EDX,0x3d
LEA RSI,[0x1c7188]
LEA RDI,[0x1c2da3]
CALL 0x00114270
CALL 0x00113880
(translation_unit "undefined8 chacha_crypt(int *param_1,byte *param_2,ulong param_3,byte *param_4)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  undefined1 uVar4;\n  undefined1 uVar5;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  int iVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  long lVar11;\n  uint uVar12;\n  uint uVar13;\n  ulong uVar14;\n  uint uVar15;\n  ulong uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  int iVar21;\n  uint uVar22;\n  ulong uVar23;\n  byte *pbVar24;\n  long in_FS_OFFSET;\n  int local_138;\n  uint local_11c;\n  uint local_118;\n  uint local_114;\n  ulong local_100;\n  long local_f0;\n  uint local_c8;\n  uint uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  uint local_b8;\n  uint uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  uint local_a8;\n  uint uStack_a4;\n  uint uStack_a0;\n  uint uStack_9c;\n  uint local_98;\n  uint uStack_94;\n  uint uStack_90;\n  uint uStack_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  int local_80;\n  int local_7c;\n  int local_78;\n  int local_74;\n  int local_70;\n  int local_6c;\n  int local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 != 0) {\n    if (param_1 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (param_2 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (param_4 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = *(long *)(param_1 + 0x22);\n    if (local_f0 == 0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar14 = *(ulong *)(param_1 + 0x20);\n    local_100 = param_3;\n    if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }\n    do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );\n  }\n  goto LAB_0018a411;\nLAB_0018a0ed:\n  uVar14 = 0;\n  uVar17 = (uint)local_100 & 7;\n  if ((local_100 & 7) == 0) goto LAB_0018a1e3;\n  if (uVar17 != 1) {\n    if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    uVar14 = uVar14 + 1;\n  }\n  pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n  for (uVar14 = uVar14 + 1; local_100 != uVar14; uVar14 = uVar14 + 8) {\nLAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);\n    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);\n    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);\n    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);\n    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);\n    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);\n    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);\n  }\n  *(ulong *)(param_1 + 0x20) = 0x40 - local_100;\n  local_88 = iVar8;\n  if (local_100 != 0x40) {\n    uVar17 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }\nLAB_0018a411:\n  uVar9 = 0;\nLAB_0018a413:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar9;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "undefined8 chacha_crypt(int *param_1,byte *param_2,ulong param_3,byte *param_4)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  undefined1 uVar4;\n  undefined1 uVar5;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  int iVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  long lVar11;\n  uint uVar12;\n  uint uVar13;\n  ulong uVar14;\n  uint uVar15;\n  ulong uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  int iVar21;\n  uint uVar22;\n  ulong uVar23;\n  byte *pbVar24;\n  long in_FS_OFFSET;\n  int local_138;\n  uint local_11c;\n  uint local_118;\n  uint local_114;\n  ulong local_100;\n  long local_f0;\n  uint local_c8;\n  uint uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  uint local_b8;\n  uint uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  uint local_a8;\n  uint uStack_a4;\n  uint uStack_a0;\n  uint uStack_9c;\n  uint local_98;\n  uint uStack_94;\n  uint uStack_90;\n  uint uStack_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  int local_80;\n  int local_7c;\n  int local_78;\n  int local_74;\n  int local_70;\n  int local_6c;\n  int local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 != 0) {\n    if (param_1 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (param_2 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (param_4 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = *(long *)(param_1 + 0x22);\n    if (local_f0 == 0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar14 = *(ulong *)(param_1 + 0x20);\n    local_100 = param_3;\n    if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }\n    do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );\n  }\n  goto LAB_0018a411;\nLAB_0018a0ed:\n  uVar14 = 0;\n  uVar17 = (uint)local_100 & 7;\n  if ((local_100 & 7) == 0) goto LAB_0018a1e3;\n  if (uVar17 != 1) {\n    if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    uVar14 = uVar14 + 1;\n  }\n  pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n  for (uVar14 = uVar14 + 1; local_100 != uVar14; uVar14 = uVar14 + 8) {\nLAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);\n    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);\n    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);\n    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);\n    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);\n    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);\n    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);\n  }\n  *(ulong *)(param_1 + 0x20) = 0x40 - local_100;\n  local_88 = iVar8;\n  if (local_100 != 0x40) {\n    uVar17 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }\nLAB_0018a411:\n  uVar9 = 0;\nLAB_0018a413:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar9;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" type_identifier (function_declarator "chacha_crypt(int *param_1,byte *param_2,ulong param_3,byte *param_4)" identifier (parameter_list "(int *param_1,byte *param_2,ulong param_3,byte *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "ulong param_3" type_identifier identifier) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  undefined1 uVar4;\n  undefined1 uVar5;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  int iVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  long lVar11;\n  uint uVar12;\n  uint uVar13;\n  ulong uVar14;\n  uint uVar15;\n  ulong uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  int iVar21;\n  uint uVar22;\n  ulong uVar23;\n  byte *pbVar24;\n  long in_FS_OFFSET;\n  int local_138;\n  uint local_11c;\n  uint local_118;\n  uint local_114;\n  ulong local_100;\n  long local_f0;\n  uint local_c8;\n  uint uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  uint local_b8;\n  uint uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  uint local_a8;\n  uint uStack_a4;\n  uint uStack_a0;\n  uint uStack_9c;\n  uint local_98;\n  uint uStack_94;\n  uint uStack_90;\n  uint uStack_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  int local_80;\n  int local_7c;\n  int local_78;\n  int local_74;\n  int local_70;\n  int local_6c;\n  int local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 != 0) {\n    if (param_1 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (param_2 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (param_4 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = *(long *)(param_1 + 0x22);\n    if (local_f0 == 0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar14 = *(ulong *)(param_1 + 0x20);\n    local_100 = param_3;\n    if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }\n    do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );\n  }\n  goto LAB_0018a411;\nLAB_0018a0ed:\n  uVar14 = 0;\n  uVar17 = (uint)local_100 & 7;\n  if ((local_100 & 7) == 0) goto LAB_0018a1e3;\n  if (uVar17 != 1) {\n    if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    uVar14 = uVar14 + 1;\n  }\n  pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n  for (uVar14 = uVar14 + 1; local_100 != uVar14; uVar14 = uVar14 + 8) {\nLAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);\n    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);\n    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);\n    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);\n    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);\n    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);\n    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);\n  }\n  *(ulong *)(param_1 + 0x20) = 0x40 - local_100;\n  local_88 = iVar8;\n  if (local_100 != 0x40) {\n    uVar17 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }\nLAB_0018a411:\n  uVar9 = 0;\nLAB_0018a413:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar9;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "undefined1 uVar3;" type_identifier identifier ;) (declaration "undefined1 uVar4;" type_identifier identifier ;) (declaration "undefined1 uVar5;" type_identifier identifier ;) (declaration "undefined1 uVar6;" type_identifier identifier ;) (declaration "undefined1 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "ulong uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_138;" primitive_type identifier ;) (declaration "uint local_11c;" type_identifier identifier ;) (declaration "uint local_118;" type_identifier identifier ;) (declaration "uint local_114;" type_identifier identifier ;) (declaration "ulong local_100;" type_identifier identifier ;) (declaration "long local_f0;" (sized_type_specifier "long" long) identifier ;) (declaration "uint local_c8;" type_identifier identifier ;) (declaration "uint uStack_c4;" type_identifier identifier ;) (declaration "uint uStack_c0;" type_identifier identifier ;) (declaration "uint uStack_bc;" type_identifier identifier ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "uint uStack_b4;" type_identifier identifier ;) (declaration "uint uStack_b0;" type_identifier identifier ;) (declaration "uint uStack_ac;" type_identifier identifier ;) (declaration "uint local_a8;" type_identifier identifier ;) (declaration "uint uStack_a4;" type_identifier identifier ;) (declaration "uint uStack_a0;" type_identifier identifier ;) (declaration "uint uStack_9c;" type_identifier identifier ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "uint uStack_94;" type_identifier identifier ;) (declaration "uint uStack_90;" type_identifier identifier ;) (declaration "uint uStack_8c;" type_identifier identifier ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "undefined4 local_84;" type_identifier identifier ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_3 != 0) {\n    if (param_1 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (param_2 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (param_4 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = *(long *)(param_1 + 0x22);\n    if (local_f0 == 0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar14 = *(ulong *)(param_1 + 0x20);\n    local_100 = param_3;\n    if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }\n    do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    if (param_1 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (param_2 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (param_4 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = *(long *)(param_1 + 0x22);\n    if (local_f0 == 0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar14 = *(ulong *)(param_1 + 0x20);\n    local_100 = param_3;\n    if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }\n    do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );\n  }" { (if_statement "if (param_1 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }" { comment (expression_statement "crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);" (call_expression "crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d)" identifier (argument_list "("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d)" ( (string_literal ""st != NULL"" " string_content ") , (string_literal ""src/stream/chacha/chacha_crypt.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }" if (parenthesized_expression "(param_2 == (byte *)0x0)" ( (binary_expression "param_2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }" { comment (expression_statement "crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);" (call_expression "crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e)" identifier (argument_list "("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e)" ( (string_literal ""in != NULL"" " string_content ") , (string_literal ""src/stream/chacha/chacha_crypt.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_4 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }" if (parenthesized_expression "(param_4 == (byte *)0x0)" ( (binary_expression "param_4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }" { comment (expression_statement "crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);" (call_expression "crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f)" identifier (argument_list "("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f)" ( (string_literal ""out != NULL"" " string_content ") , (string_literal ""src/stream/chacha/chacha_crypt.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "local_f0 = *(long *)(param_1 + 0x22);" (assignment_expression "local_f0 = *(long *)(param_1 + 0x22)" identifier = (pointer_expression "*(long *)(param_1 + 0x22)" * (cast_expression "(long *)(param_1 + 0x22)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22)" ( (binary_expression "param_1 + 0x22" identifier + number_literal) ))))) ;) (if_statement "if (local_f0 == 0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }" if (parenthesized_expression "(local_f0 == 0)" ( (binary_expression "local_f0 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }" { comment (expression_statement "crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);" (call_expression "crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40)" identifier (argument_list "("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40)" ( (string_literal ""st->ivlen != 0"" " string_content ") , (string_literal ""src/stream/chacha/chacha_crypt.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar14 = *(ulong *)(param_1 + 0x20);" (assignment_expression "uVar14 = *(ulong *)(param_1 + 0x20)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "local_100 = param_3;" (assignment_expression "local_100 = param_3" identifier = identifier) ;) (if_statement "if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }" { (expression_statement "uVar16 = param_3;" (assignment_expression "uVar16 = param_3" identifier = identifier) ;) (if_statement "if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }" if (parenthesized_expression "(uVar14 <= param_3)" ( (binary_expression "uVar14 <= param_3" identifier <= identifier) )) (compound_statement "{\n        uVar16 = uVar14;\n      }" { (expression_statement "uVar16 = uVar14;" (assignment_expression "uVar16 = uVar14" identifier = identifier) ;) })) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = (uint)uVar16 & 7;" (assignment_expression "uVar17 = (uint)uVar16 & 7" identifier = (binary_expression "(uint)uVar16 & 7" (cast_expression "(uint)uVar16" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((uVar16 & 7) == 0) goto LAB_001899d0;" if (parenthesized_expression "((uVar16 & 7) == 0)" ( (binary_expression "(uVar16 & 7) == 0" (parenthesized_expression "(uVar16 & 7)" ( (binary_expression "uVar16 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001899d0;" goto statement_identifier ;)) (if_statement "if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }" if (parenthesized_expression "(uVar17 != 1)" ( (binary_expression "uVar17 != 1" identifier != number_literal) )) (compound_statement "{\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }" { (if_statement "if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }" if (parenthesized_expression "(uVar17 != 2)" ( (binary_expression "uVar17 != 2" identifier != number_literal) )) (compound_statement "{\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }" { (if_statement "if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }" if (parenthesized_expression "(uVar17 != 3)" ( (binary_expression "uVar17 != 3" identifier != number_literal) )) (compound_statement "{\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }" { (if_statement "if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }" if (parenthesized_expression "(uVar17 != 4)" ( (binary_expression "uVar17 != 4" identifier != number_literal) )) (compound_statement "{\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }" { (if_statement "if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }" if (parenthesized_expression "(uVar17 != 5)" ( (binary_expression "uVar17 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }" { (if_statement "if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }" if (parenthesized_expression "(uVar17 != 6)" ( (binary_expression "uVar17 != 6" identifier != number_literal) )) (compound_statement "{\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }" { (expression_statement "*param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;" (assignment_expression "*param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2" (pointer_expression "*param_4" * identifier) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (pointer_expression "*param_2" * identifier))) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar23 = (ulong)(uVar17 != 6);" (assignment_expression "uVar23 = (ulong)(uVar17 != 6)" identifier = (call_expression "(ulong)(uVar17 != 6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar17 != 6)" ( (binary_expression "uVar17 != 6" identifier != number_literal) )))) ;) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (subscript_expression "param_2[uVar23]" identifier [ identifier ]))) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (subscript_expression "param_2[uVar23]" identifier [ identifier ]))) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (subscript_expression "param_2[uVar23]" identifier [ identifier ]))) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (subscript_expression "param_2[uVar23]" identifier [ identifier ]))) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (subscript_expression "param_2[uVar23]" identifier [ identifier ]))) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (subscript_expression "param_2[uVar23]" identifier [ identifier ]))) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (for_statement "for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }" for ( (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ; (binary_expression "uVar16 != uVar23" identifier != identifier) ; (assignment_expression "uVar23 = uVar23 + 8" identifier = (binary_expression "uVar23 + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }" { (labeled_statement "LAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" statement_identifier : (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (subscript_expression "param_2[uVar23]" identifier [ identifier ]))) ;)) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];" (assignment_expression "param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1]" (subscript_expression "param_4[uVar23 + 1]" identifier [ (binary_expression "uVar23 + 1" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" * (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" ( (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - (lVar11 + -1))" ( (binary_expression "0x80 - (lVar11 + -1)" number_literal - (parenthesized_expression "(lVar11 + -1)" ( (binary_expression "lVar11 + -1" identifier + number_literal) ))) ))) )))) ^ (subscript_expression "param_2[uVar23 + 1]" identifier [ (binary_expression "uVar23 + 1" identifier + number_literal) ]))) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];" (assignment_expression "param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2]" (subscript_expression "param_4[uVar23 + 2]" identifier [ (binary_expression "uVar23 + 2" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" * (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" ( (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - (lVar11 + -1))" ( (binary_expression "0x80 - (lVar11 + -1)" number_literal - (parenthesized_expression "(lVar11 + -1)" ( (binary_expression "lVar11 + -1" identifier + number_literal) ))) ))) )))) ^ (subscript_expression "param_2[uVar23 + 2]" identifier [ (binary_expression "uVar23 + 2" identifier + number_literal) ]))) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];" (assignment_expression "param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3]" (subscript_expression "param_4[uVar23 + 3]" identifier [ (binary_expression "uVar23 + 3" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" * (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" ( (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - (lVar11 + -1))" ( (binary_expression "0x80 - (lVar11 + -1)" number_literal - (parenthesized_expression "(lVar11 + -1)" ( (binary_expression "lVar11 + -1" identifier + number_literal) ))) ))) )))) ^ (subscript_expression "param_2[uVar23 + 3]" identifier [ (binary_expression "uVar23 + 3" identifier + number_literal) ]))) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];" (assignment_expression "param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4]" (subscript_expression "param_4[uVar23 + 4]" identifier [ (binary_expression "uVar23 + 4" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" * (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" ( (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - (lVar11 + -1))" ( (binary_expression "0x80 - (lVar11 + -1)" number_literal - (parenthesized_expression "(lVar11 + -1)" ( (binary_expression "lVar11 + -1" identifier + number_literal) ))) ))) )))) ^ (subscript_expression "param_2[uVar23 + 4]" identifier [ (binary_expression "uVar23 + 4" identifier + number_literal) ]))) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];" (assignment_expression "param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5]" (subscript_expression "param_4[uVar23 + 5]" identifier [ (binary_expression "uVar23 + 5" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" * (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" ( (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - (lVar11 + -1))" ( (binary_expression "0x80 - (lVar11 + -1)" number_literal - (parenthesized_expression "(lVar11 + -1)" ( (binary_expression "lVar11 + -1" identifier + number_literal) ))) ))) )))) ^ (subscript_expression "param_2[uVar23 + 5]" identifier [ (binary_expression "uVar23 + 5" identifier + number_literal) ]))) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];" (assignment_expression "param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6]" (subscript_expression "param_4[uVar23 + 6]" identifier [ (binary_expression "uVar23 + 6" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" * (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" ( (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - (lVar11 + -1))" ( (binary_expression "0x80 - (lVar11 + -1)" number_literal - (parenthesized_expression "(lVar11 + -1)" ( (binary_expression "lVar11 + -1" identifier + number_literal) ))) ))) )))) ^ (subscript_expression "param_2[uVar23 + 6]" identifier [ (binary_expression "uVar23 + 6" identifier + number_literal) ]))) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];" (assignment_expression "param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7]" (subscript_expression "param_4[uVar23 + 7]" identifier [ (binary_expression "uVar23 + 7" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" * (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" ( (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - (lVar11 + -1))" ( (binary_expression "0x80 - (lVar11 + -1)" number_literal - (parenthesized_expression "(lVar11 + -1)" ( (binary_expression "lVar11 + -1" identifier + number_literal) ))) ))) )))) ^ (subscript_expression "param_2[uVar23 + 7]" identifier [ (binary_expression "uVar23 + 7" identifier + number_literal) ]))) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "local_100 = param_3 - uVar16;" (assignment_expression "local_100 = param_3 - uVar16" identifier = (binary_expression "param_3 - uVar16" identifier - identifier)) ;) (if_statement "if (local_100 == 0) goto LAB_0018a411;" if (parenthesized_expression "(local_100 == 0)" ( (binary_expression "local_100 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0018a411;" goto statement_identifier ;)) (expression_statement "param_4 = param_4 + uVar16;" (assignment_expression "param_4 = param_4 + uVar16" identifier = (binary_expression "param_4 + uVar16" identifier + identifier)) ;) (expression_statement "param_2 = param_2 + uVar16;" (assignment_expression "param_2 = param_2 + uVar16" identifier = (binary_expression "param_2 + uVar16" identifier + identifier)) ;) (expression_statement "local_f0 = *(long *)(param_1 + 0x22);" (assignment_expression "local_f0 = *(long *)(param_1 + 0x22)" identifier = (pointer_expression "*(long *)(param_1 + 0x22)" * (cast_expression "(long *)(param_1 + 0x22)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22)" ( (binary_expression "param_1 + 0x22" identifier + number_literal) ))))) ;) (expression_statement "param_3 = local_100;" (assignment_expression "param_3 = local_100" identifier = identifier) ;) })) (do_statement "do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );" do (compound_statement "{\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    }" { (expression_statement "pbVar24 = param_4 + (param_3 - local_100);" (assignment_expression "pbVar24 = param_4 + (param_3 - local_100)" identifier = (binary_expression "param_4 + (param_3 - local_100)" identifier + (parenthesized_expression "(param_3 - local_100)" ( (binary_expression "param_3 - local_100" identifier - identifier) )))) ;) (expression_statement "local_138 = param_1[0x24];" (assignment_expression "local_138 = param_1[0x24]" identifier = (subscript_expression "param_1[0x24]" identifier [ number_literal ])) ;) (expression_statement "pbVar10 = param_2 + (param_3 - local_100);" (assignment_expression "pbVar10 = param_2 + (param_3 - local_100)" identifier = (binary_expression "param_2 + (param_3 - local_100)" identifier + (parenthesized_expression "(param_3 - local_100)" ( (binary_expression "param_3 - local_100" identifier - identifier) )))) ;) (expression_statement "uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);" (assignment_expression "uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)param_1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)param_1 >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)param_1 >> 0x20" (binary_expression "(ulong)*(undefined8 *)param_1" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)param_1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) )))) ;) (expression_statement "local_c8 = (uint)*(undefined8 *)param_1;" (assignment_expression "local_c8 = (uint)*(undefined8 *)param_1" identifier = (binary_expression "(uint)*(undefined8 *)param_1" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)param_1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);" (assignment_expression "uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_1 + 2) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_1 + 2) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 2)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);" (assignment_expression "uStack_c0 = (uint)*(undefined8 *)(param_1 + 2)" identifier = (binary_expression "(uint)*(undefined8 *)(param_1 + 2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))))) ;) (expression_statement "uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);" (assignment_expression "uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_1 + 4) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_1 + 4) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 4)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "local_b8 = (uint)*(undefined8 *)(param_1 + 4);" (assignment_expression "local_b8 = (uint)*(undefined8 *)(param_1 + 4)" identifier = (binary_expression "(uint)*(undefined8 *)(param_1 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);" (assignment_expression "uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_1 + 6) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_1 + 6) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 6)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 6)" ( (binary_expression "param_1 + 6" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);" (assignment_expression "uStack_b0 = (uint)*(undefined8 *)(param_1 + 6)" identifier = (binary_expression "(uint)*(undefined8 *)(param_1 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 6)" ( (binary_expression "param_1 + 6" identifier + number_literal) ))))) ;) (expression_statement "uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);" (assignment_expression "uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_1 + 8) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_1 + 8) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 8)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "local_a8 = (uint)*(undefined8 *)(param_1 + 8);" (assignment_expression "local_a8 = (uint)*(undefined8 *)(param_1 + 8)" identifier = (binary_expression "(uint)*(undefined8 *)(param_1 + 8)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);" (assignment_expression "uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_1 + 10) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_1 + 10) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 10)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);" (assignment_expression "uStack_a0 = (uint)*(undefined8 *)(param_1 + 10)" identifier = (binary_expression "(uint)*(undefined8 *)(param_1 + 10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) ))))) ;) (expression_statement "uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);" (assignment_expression "uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 0xc)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "local_98 = (uint)*(undefined8 *)(param_1 + 0xc);" (assignment_expression "local_98 = (uint)*(undefined8 *)(param_1 + 0xc)" identifier = (binary_expression "(uint)*(undefined8 *)(param_1 + 0xc)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);" (assignment_expression "uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 0xe)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 0xe)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);" (assignment_expression "uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe)" identifier = (binary_expression "(uint)*(undefined8 *)(param_1 + 0xe)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 0xe)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) ))))) ;) (if_statement "if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }" if (parenthesized_expression "(0 < local_138)" ( (binary_expression "0 < local_138" number_literal < identifier) )) (compound_statement "{\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }" { (expression_statement "local_118 = uStack_ac;" (assignment_expression "local_118 = uStack_ac" identifier = identifier) ;) (expression_statement "local_114 = uStack_a0;" (assignment_expression "local_114 = uStack_a0" identifier = identifier) ;) (expression_statement "local_11c = uStack_8c;" (assignment_expression "local_11c = uStack_8c" identifier = identifier) ;) (do_statement "do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);" do (compound_statement "{\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        }" { (expression_statement "local_98 = local_98 ^ local_c8 + local_b8;" (assignment_expression "local_98 = local_98 ^ local_c8 + local_b8" identifier = (binary_expression "local_98 ^ local_c8 + local_b8" identifier ^ (binary_expression "local_c8 + local_b8" identifier + identifier))) ;) (expression_statement "uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;" (assignment_expression "uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4" identifier = (binary_expression "uStack_94 ^ uStack_c4 + uStack_b4" identifier ^ (binary_expression "uStack_c4 + uStack_b4" identifier + identifier))) ;) (expression_statement "uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;" (assignment_expression "uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0" identifier = (binary_expression "uStack_90 ^ uStack_c0 + uStack_b0" identifier ^ (binary_expression "uStack_c0 + uStack_b0" identifier + identifier))) ;) (expression_statement "uVar17 = local_98 << 0x10 | local_98 >> 0x10;" (assignment_expression "uVar17 = local_98 << 0x10 | local_98 >> 0x10" identifier = (binary_expression "local_98 << 0x10 | local_98 >> 0x10" (binary_expression "local_98 << 0x10" identifier << number_literal) | (binary_expression "local_98 >> 0x10" identifier >> number_literal))) ;) (expression_statement "local_a8 = local_a8 + uVar17;" (assignment_expression "local_a8 = local_a8 + uVar17" identifier = (binary_expression "local_a8 + uVar17" identifier + identifier)) ;) (expression_statement "uVar12 = local_b8 ^ local_a8;" (assignment_expression "uVar12 = local_b8 ^ local_a8" identifier = (binary_expression "local_b8 ^ local_a8" identifier ^ identifier)) ;) (expression_statement "uVar13 = uVar12 << 0xc | uVar12 >> 0x14;" (assignment_expression "uVar13 = uVar12 << 0xc | uVar12 >> 0x14" identifier = (binary_expression "uVar12 << 0xc | uVar12 >> 0x14" (binary_expression "uVar12 << 0xc" identifier << number_literal) | (binary_expression "uVar12 >> 0x14" identifier >> number_literal))) ;) (expression_statement "local_c8 = local_c8 + local_b8 + uVar13;" (assignment_expression "local_c8 = local_c8 + local_b8 + uVar13" identifier = (binary_expression "local_c8 + local_b8 + uVar13" (binary_expression "local_c8 + local_b8" identifier + identifier) + identifier)) ;) (expression_statement "uVar17 = uVar17 ^ local_c8;" (assignment_expression "uVar17 = uVar17 ^ local_c8" identifier = (binary_expression "uVar17 ^ local_c8" identifier ^ identifier)) ;) (expression_statement "uVar12 = uVar17 << 8 | uVar17 >> 0x18;" (assignment_expression "uVar12 = uVar17 << 8 | uVar17 >> 0x18" identifier = (binary_expression "uVar17 << 8 | uVar17 >> 0x18" (binary_expression "uVar17 << 8" identifier << number_literal) | (binary_expression "uVar17 >> 0x18" identifier >> number_literal))) ;) (expression_statement "local_a8 = local_a8 + uVar12;" (assignment_expression "local_a8 = local_a8 + uVar12" identifier = (binary_expression "local_a8 + uVar12" identifier + identifier)) ;) (expression_statement "uVar13 = uVar13 ^ local_a8;" (assignment_expression "uVar13 = uVar13 ^ local_a8" identifier = (binary_expression "uVar13 ^ local_a8" identifier ^ identifier)) ;) (expression_statement "uVar22 = uVar13 << 7 | uVar13 >> 0x19;" (assignment_expression "uVar22 = uVar13 << 7 | uVar13 >> 0x19" identifier = (binary_expression "uVar13 << 7 | uVar13 >> 0x19" (binary_expression "uVar13 << 7" identifier << number_literal) | (binary_expression "uVar13 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;" (assignment_expression "uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10" identifier = (binary_expression "uStack_94 << 0x10 | uStack_94 >> 0x10" (binary_expression "uStack_94 << 0x10" identifier << number_literal) | (binary_expression "uStack_94 >> 0x10" identifier >> number_literal))) ;) (expression_statement "uStack_a4 = uStack_a4 + uVar17;" (assignment_expression "uStack_a4 = uStack_a4 + uVar17" identifier = (binary_expression "uStack_a4 + uVar17" identifier + identifier)) ;) (expression_statement "uVar13 = uStack_b4 ^ uStack_a4;" (assignment_expression "uVar13 = uStack_b4 ^ uStack_a4" identifier = (binary_expression "uStack_b4 ^ uStack_a4" identifier ^ identifier)) ;) (expression_statement "uVar13 = uVar13 << 0xc | uVar13 >> 0x14;" (assignment_expression "uVar13 = uVar13 << 0xc | uVar13 >> 0x14" identifier = (binary_expression "uVar13 << 0xc | uVar13 >> 0x14" (binary_expression "uVar13 << 0xc" identifier << number_literal) | (binary_expression "uVar13 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uStack_c4 = uStack_c4 + uStack_b4 + uVar13;" (assignment_expression "uStack_c4 = uStack_c4 + uStack_b4 + uVar13" identifier = (binary_expression "uStack_c4 + uStack_b4 + uVar13" (binary_expression "uStack_c4 + uStack_b4" identifier + identifier) + identifier)) ;) (expression_statement "uVar17 = uVar17 ^ uStack_c4;" (assignment_expression "uVar17 = uVar17 ^ uStack_c4" identifier = (binary_expression "uVar17 ^ uStack_c4" identifier ^ identifier)) ;) (expression_statement "uVar17 = uVar17 << 8 | uVar17 >> 0x18;" (assignment_expression "uVar17 = uVar17 << 8 | uVar17 >> 0x18" identifier = (binary_expression "uVar17 << 8 | uVar17 >> 0x18" (binary_expression "uVar17 << 8" identifier << number_literal) | (binary_expression "uVar17 >> 0x18" identifier >> number_literal))) ;) (expression_statement "uStack_a4 = uStack_a4 + uVar17;" (assignment_expression "uStack_a4 = uStack_a4 + uVar17" identifier = (binary_expression "uStack_a4 + uVar17" identifier + identifier)) ;) (expression_statement "uVar13 = uVar13 ^ uStack_a4;" (assignment_expression "uVar13 = uVar13 ^ uStack_a4" identifier = (binary_expression "uVar13 ^ uStack_a4" identifier ^ identifier)) ;) (expression_statement "uVar18 = uVar13 << 7 | uVar13 >> 0x19;" (assignment_expression "uVar18 = uVar13 << 7 | uVar13 >> 0x19" identifier = (binary_expression "uVar13 << 7 | uVar13 >> 0x19" (binary_expression "uVar13 << 7" identifier << number_literal) | (binary_expression "uVar13 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;" (assignment_expression "uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10" identifier = (binary_expression "uStack_90 << 0x10 | uStack_90 >> 0x10" (binary_expression "uStack_90 << 0x10" identifier << number_literal) | (binary_expression "uStack_90 >> 0x10" identifier >> number_literal))) ;) (expression_statement "local_114 = local_114 + uVar13;" (assignment_expression "local_114 = local_114 + uVar13" identifier = (binary_expression "local_114 + uVar13" identifier + identifier)) ;) (expression_statement "uVar19 = uStack_b0 ^ local_114;" (assignment_expression "uVar19 = uStack_b0 ^ local_114" identifier = (binary_expression "uStack_b0 ^ local_114" identifier ^ identifier)) ;) (expression_statement "uVar19 = uVar19 << 0xc | uVar19 >> 0x14;" (assignment_expression "uVar19 = uVar19 << 0xc | uVar19 >> 0x14" identifier = (binary_expression "uVar19 << 0xc | uVar19 >> 0x14" (binary_expression "uVar19 << 0xc" identifier << number_literal) | (binary_expression "uVar19 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uStack_c0 = uStack_c0 + uStack_b0 + uVar19;" (assignment_expression "uStack_c0 = uStack_c0 + uStack_b0 + uVar19" identifier = (binary_expression "uStack_c0 + uStack_b0 + uVar19" (binary_expression "uStack_c0 + uStack_b0" identifier + identifier) + identifier)) ;) (expression_statement "uVar13 = uVar13 ^ uStack_c0;" (assignment_expression "uVar13 = uVar13 ^ uStack_c0" identifier = (binary_expression "uVar13 ^ uStack_c0" identifier ^ identifier)) ;) (expression_statement "uVar13 = uVar13 << 8 | uVar13 >> 0x18;" (assignment_expression "uVar13 = uVar13 << 8 | uVar13 >> 0x18" identifier = (binary_expression "uVar13 << 8 | uVar13 >> 0x18" (binary_expression "uVar13 << 8" identifier << number_literal) | (binary_expression "uVar13 >> 0x18" identifier >> number_literal))) ;) (expression_statement "local_114 = local_114 + uVar13;" (assignment_expression "local_114 = local_114 + uVar13" identifier = (binary_expression "local_114 + uVar13" identifier + identifier)) ;) (expression_statement "local_c8 = local_c8 + uVar18;" (assignment_expression "local_c8 = local_c8 + uVar18" identifier = (binary_expression "local_c8 + uVar18" identifier + identifier)) ;) (expression_statement "uVar19 = uVar19 ^ local_114;" (assignment_expression "uVar19 = uVar19 ^ local_114" identifier = (binary_expression "uVar19 ^ local_114" identifier ^ identifier)) ;) (expression_statement "local_11c = local_11c ^ uStack_bc + local_118;" (assignment_expression "local_11c = local_11c ^ uStack_bc + local_118" identifier = (binary_expression "local_11c ^ uStack_bc + local_118" identifier ^ (binary_expression "uStack_bc + local_118" identifier + identifier))) ;) (expression_statement "uVar20 = uVar19 << 7 | uVar19 >> 0x19;" (assignment_expression "uVar20 = uVar19 << 7 | uVar19 >> 0x19" identifier = (binary_expression "uVar19 << 7 | uVar19 >> 0x19" (binary_expression "uVar19 << 7" identifier << number_literal) | (binary_expression "uVar19 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uStack_c4 = uStack_c4 + uVar20;" (assignment_expression "uStack_c4 = uStack_c4 + uVar20" identifier = (binary_expression "uStack_c4 + uVar20" identifier + identifier)) ;) (expression_statement "uVar15 = local_11c << 0x10 | local_11c >> 0x10;" (assignment_expression "uVar15 = local_11c << 0x10 | local_11c >> 0x10" identifier = (binary_expression "local_11c << 0x10 | local_11c >> 0x10" (binary_expression "local_11c << 0x10" identifier << number_literal) | (binary_expression "local_11c >> 0x10" identifier >> number_literal))) ;) (expression_statement "uStack_9c = uStack_9c + uVar15;" (assignment_expression "uStack_9c = uStack_9c + uVar15" identifier = (binary_expression "uStack_9c + uVar15" identifier + identifier)) ;) (expression_statement "uVar12 = uVar12 ^ uStack_c4;" (assignment_expression "uVar12 = uVar12 ^ uStack_c4" identifier = (binary_expression "uVar12 ^ uStack_c4" identifier ^ identifier)) ;) (expression_statement "uVar19 = local_118 ^ uStack_9c;" (assignment_expression "uVar19 = local_118 ^ uStack_9c" identifier = (binary_expression "local_118 ^ uStack_9c" identifier ^ identifier)) ;) (expression_statement "uVar19 = uVar19 << 0xc | uVar19 >> 0x14;" (assignment_expression "uVar19 = uVar19 << 0xc | uVar19 >> 0x14" identifier = (binary_expression "uVar19 << 0xc | uVar19 >> 0x14" (binary_expression "uVar19 << 0xc" identifier << number_literal) | (binary_expression "uVar19 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uStack_bc = uStack_bc + local_118 + uVar19;" (assignment_expression "uStack_bc = uStack_bc + local_118 + uVar19" identifier = (binary_expression "uStack_bc + local_118 + uVar19" (binary_expression "uStack_bc + local_118" identifier + identifier) + identifier)) ;) (expression_statement "uVar15 = uVar15 ^ uStack_bc;" (assignment_expression "uVar15 = uVar15 ^ uStack_bc" identifier = (binary_expression "uVar15 ^ uStack_bc" identifier ^ identifier)) ;) (expression_statement "uVar15 = uVar15 << 8 | uVar15 >> 0x18;" (assignment_expression "uVar15 = uVar15 << 8 | uVar15 >> 0x18" identifier = (binary_expression "uVar15 << 8 | uVar15 >> 0x18" (binary_expression "uVar15 << 8" identifier << number_literal) | (binary_expression "uVar15 >> 0x18" identifier >> number_literal))) ;) (expression_statement "uStack_9c = uStack_9c + uVar15;" (assignment_expression "uStack_9c = uStack_9c + uVar15" identifier = (binary_expression "uStack_9c + uVar15" identifier + identifier)) ;) (expression_statement "uVar15 = uVar15 ^ local_c8;" (assignment_expression "uVar15 = uVar15 ^ local_c8" identifier = (binary_expression "uVar15 ^ local_c8" identifier ^ identifier)) ;) (expression_statement "uVar19 = uVar19 ^ uStack_9c;" (assignment_expression "uVar19 = uVar19 ^ uStack_9c" identifier = (binary_expression "uVar19 ^ uStack_9c" identifier ^ identifier)) ;) (expression_statement "uVar19 = uVar19 << 7 | uVar19 >> 0x19;" (assignment_expression "uVar19 = uVar19 << 7 | uVar19 >> 0x19" identifier = (binary_expression "uVar19 << 7 | uVar19 >> 0x19" (binary_expression "uVar19 << 7" identifier << number_literal) | (binary_expression "uVar19 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;" (assignment_expression "uVar15 = uVar15 << 0x10 | uVar15 >> 0x10" identifier = (binary_expression "uVar15 << 0x10 | uVar15 >> 0x10" (binary_expression "uVar15 << 0x10" identifier << number_literal) | (binary_expression "uVar15 >> 0x10" identifier >> number_literal))) ;) (expression_statement "local_114 = local_114 + uVar15;" (assignment_expression "local_114 = local_114 + uVar15" identifier = (binary_expression "local_114 + uVar15" identifier + identifier)) ;) (expression_statement "uVar18 = uVar18 ^ local_114;" (assignment_expression "uVar18 = uVar18 ^ local_114" identifier = (binary_expression "uVar18 ^ local_114" identifier ^ identifier)) ;) (expression_statement "uVar18 = uVar18 << 0xc | uVar18 >> 0x14;" (assignment_expression "uVar18 = uVar18 << 0xc | uVar18 >> 0x14" identifier = (binary_expression "uVar18 << 0xc | uVar18 >> 0x14" (binary_expression "uVar18 << 0xc" identifier << number_literal) | (binary_expression "uVar18 >> 0x14" identifier >> number_literal))) ;) (expression_statement "local_c8 = local_c8 + uVar18;" (assignment_expression "local_c8 = local_c8 + uVar18" identifier = (binary_expression "local_c8 + uVar18" identifier + identifier)) ;) (expression_statement "uVar15 = uVar15 ^ local_c8;" (assignment_expression "uVar15 = uVar15 ^ local_c8" identifier = (binary_expression "uVar15 ^ local_c8" identifier ^ identifier)) ;) (expression_statement "local_11c = uVar15 << 8 | uVar15 >> 0x18;" (assignment_expression "local_11c = uVar15 << 8 | uVar15 >> 0x18" identifier = (binary_expression "uVar15 << 8 | uVar15 >> 0x18" (binary_expression "uVar15 << 8" identifier << number_literal) | (binary_expression "uVar15 >> 0x18" identifier >> number_literal))) ;) (expression_statement "local_114 = local_114 + local_11c;" (assignment_expression "local_114 = local_114 + local_11c" identifier = (binary_expression "local_114 + local_11c" identifier + identifier)) ;) (expression_statement "uVar18 = uVar18 ^ local_114;" (assignment_expression "uVar18 = uVar18 ^ local_114" identifier = (binary_expression "uVar18 ^ local_114" identifier ^ identifier)) ;) (expression_statement "uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;" (assignment_expression "uStack_b4 = uVar18 << 7 | uVar18 >> 0x19" identifier = (binary_expression "uVar18 << 7 | uVar18 >> 0x19" (binary_expression "uVar18 << 7" identifier << number_literal) | (binary_expression "uVar18 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;" (assignment_expression "uVar12 = uVar12 << 0x10 | uVar12 >> 0x10" identifier = (binary_expression "uVar12 << 0x10 | uVar12 >> 0x10" (binary_expression "uVar12 << 0x10" identifier << number_literal) | (binary_expression "uVar12 >> 0x10" identifier >> number_literal))) ;) (expression_statement "uStack_9c = uStack_9c + uVar12;" (assignment_expression "uStack_9c = uStack_9c + uVar12" identifier = (binary_expression "uStack_9c + uVar12" identifier + identifier)) ;) (expression_statement "uVar20 = uVar20 ^ uStack_9c;" (assignment_expression "uVar20 = uVar20 ^ uStack_9c" identifier = (binary_expression "uVar20 ^ uStack_9c" identifier ^ identifier)) ;) (expression_statement "uVar15 = uVar20 << 0xc | uVar20 >> 0x14;" (assignment_expression "uVar15 = uVar20 << 0xc | uVar20 >> 0x14" identifier = (binary_expression "uVar20 << 0xc | uVar20 >> 0x14" (binary_expression "uVar20 << 0xc" identifier << number_literal) | (binary_expression "uVar20 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uStack_c4 = uStack_c4 + uVar15;" (assignment_expression "uStack_c4 = uStack_c4 + uVar15" identifier = (binary_expression "uStack_c4 + uVar15" identifier + identifier)) ;) (expression_statement "uStack_c0 = uStack_c0 + uVar19;" (assignment_expression "uStack_c0 = uStack_c0 + uVar19" identifier = (binary_expression "uStack_c0 + uVar19" identifier + identifier)) ;) (expression_statement "uStack_bc = uStack_bc + uVar22;" (assignment_expression "uStack_bc = uStack_bc + uVar22" identifier = (binary_expression "uStack_bc + uVar22" identifier + identifier)) ;) (expression_statement "uVar12 = uVar12 ^ uStack_c4;" (assignment_expression "uVar12 = uVar12 ^ uStack_c4" identifier = (binary_expression "uVar12 ^ uStack_c4" identifier ^ identifier)) ;) (expression_statement "uVar17 = uVar17 ^ uStack_c0;" (assignment_expression "uVar17 = uVar17 ^ uStack_c0" identifier = (binary_expression "uVar17 ^ uStack_c0" identifier ^ identifier)) ;) (expression_statement "uVar13 = uVar13 ^ uStack_bc;" (assignment_expression "uVar13 = uVar13 ^ uStack_bc" identifier = (binary_expression "uVar13 ^ uStack_bc" identifier ^ identifier)) ;) (expression_statement "local_138 = local_138 + -2;" (assignment_expression "local_138 = local_138 + -2" identifier = (binary_expression "local_138 + -2" identifier + number_literal)) ;) (expression_statement "local_98 = uVar12 << 8 | uVar12 >> 0x18;" (assignment_expression "local_98 = uVar12 << 8 | uVar12 >> 0x18" identifier = (binary_expression "uVar12 << 8 | uVar12 >> 0x18" (binary_expression "uVar12 << 8" identifier << number_literal) | (binary_expression "uVar12 >> 0x18" identifier >> number_literal))) ;) (expression_statement "uStack_9c = uStack_9c + local_98;" (assignment_expression "uStack_9c = uStack_9c + local_98" identifier = (binary_expression "uStack_9c + local_98" identifier + identifier)) ;) (expression_statement "uVar15 = uVar15 ^ uStack_9c;" (assignment_expression "uVar15 = uVar15 ^ uStack_9c" identifier = (binary_expression "uVar15 ^ uStack_9c" identifier ^ identifier)) ;) (expression_statement "uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;" (assignment_expression "uStack_b0 = uVar15 << 7 | uVar15 >> 0x19" identifier = (binary_expression "uVar15 << 7 | uVar15 >> 0x19" (binary_expression "uVar15 << 7" identifier << number_literal) | (binary_expression "uVar15 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;" (assignment_expression "uVar17 = uVar17 << 0x10 | uVar17 >> 0x10" identifier = (binary_expression "uVar17 << 0x10 | uVar17 >> 0x10" (binary_expression "uVar17 << 0x10" identifier << number_literal) | (binary_expression "uVar17 >> 0x10" identifier >> number_literal))) ;) (expression_statement "local_a8 = local_a8 + uVar17;" (assignment_expression "local_a8 = local_a8 + uVar17" identifier = (binary_expression "local_a8 + uVar17" identifier + identifier)) ;) (expression_statement "uVar19 = uVar19 ^ local_a8;" (assignment_expression "uVar19 = uVar19 ^ local_a8" identifier = (binary_expression "uVar19 ^ local_a8" identifier ^ identifier)) ;) (expression_statement "uVar12 = uVar19 << 0xc | uVar19 >> 0x14;" (assignment_expression "uVar12 = uVar19 << 0xc | uVar19 >> 0x14" identifier = (binary_expression "uVar19 << 0xc | uVar19 >> 0x14" (binary_expression "uVar19 << 0xc" identifier << number_literal) | (binary_expression "uVar19 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uStack_c0 = uStack_c0 + uVar12;" (assignment_expression "uStack_c0 = uStack_c0 + uVar12" identifier = (binary_expression "uStack_c0 + uVar12" identifier + identifier)) ;) (expression_statement "uVar17 = uVar17 ^ uStack_c0;" (assignment_expression "uVar17 = uVar17 ^ uStack_c0" identifier = (binary_expression "uVar17 ^ uStack_c0" identifier ^ identifier)) ;) (expression_statement "uStack_94 = uVar17 << 8 | uVar17 >> 0x18;" (assignment_expression "uStack_94 = uVar17 << 8 | uVar17 >> 0x18" identifier = (binary_expression "uVar17 << 8 | uVar17 >> 0x18" (binary_expression "uVar17 << 8" identifier << number_literal) | (binary_expression "uVar17 >> 0x18" identifier >> number_literal))) ;) (expression_statement "local_a8 = local_a8 + uStack_94;" (assignment_expression "local_a8 = local_a8 + uStack_94" identifier = (binary_expression "local_a8 + uStack_94" identifier + identifier)) ;) (expression_statement "uVar12 = uVar12 ^ local_a8;" (assignment_expression "uVar12 = uVar12 ^ local_a8" identifier = (binary_expression "uVar12 ^ local_a8" identifier ^ identifier)) ;) (expression_statement "local_118 = uVar12 << 7 | uVar12 >> 0x19;" (assignment_expression "local_118 = uVar12 << 7 | uVar12 >> 0x19" identifier = (binary_expression "uVar12 << 7 | uVar12 >> 0x19" (binary_expression "uVar12 << 7" identifier << number_literal) | (binary_expression "uVar12 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;" (assignment_expression "uVar17 = uVar13 << 0x10 | uVar13 >> 0x10" identifier = (binary_expression "uVar13 << 0x10 | uVar13 >> 0x10" (binary_expression "uVar13 << 0x10" identifier << number_literal) | (binary_expression "uVar13 >> 0x10" identifier >> number_literal))) ;) (expression_statement "uStack_a4 = uStack_a4 + uVar17;" (assignment_expression "uStack_a4 = uStack_a4 + uVar17" identifier = (binary_expression "uStack_a4 + uVar17" identifier + identifier)) ;) (expression_statement "uVar22 = uVar22 ^ uStack_a4;" (assignment_expression "uVar22 = uVar22 ^ uStack_a4" identifier = (binary_expression "uVar22 ^ uStack_a4" identifier ^ identifier)) ;) (expression_statement "uVar12 = uVar22 << 0xc | uVar22 >> 0x14;" (assignment_expression "uVar12 = uVar22 << 0xc | uVar22 >> 0x14" identifier = (binary_expression "uVar22 << 0xc | uVar22 >> 0x14" (binary_expression "uVar22 << 0xc" identifier << number_literal) | (binary_expression "uVar22 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uStack_bc = uStack_bc + uVar12;" (assignment_expression "uStack_bc = uStack_bc + uVar12" identifier = (binary_expression "uStack_bc + uVar12" identifier + identifier)) ;) (expression_statement "uVar17 = uVar17 ^ uStack_bc;" (assignment_expression "uVar17 = uVar17 ^ uStack_bc" identifier = (binary_expression "uVar17 ^ uStack_bc" identifier ^ identifier)) ;) (expression_statement "uStack_90 = uVar17 << 8 | uVar17 >> 0x18;" (assignment_expression "uStack_90 = uVar17 << 8 | uVar17 >> 0x18" identifier = (binary_expression "uVar17 << 8 | uVar17 >> 0x18" (binary_expression "uVar17 << 8" identifier << number_literal) | (binary_expression "uVar17 >> 0x18" identifier >> number_literal))) ;) (expression_statement "uStack_a4 = uStack_a4 + uStack_90;" (assignment_expression "uStack_a4 = uStack_a4 + uStack_90" identifier = (binary_expression "uStack_a4 + uStack_90" identifier + identifier)) ;) (expression_statement "uVar12 = uVar12 ^ uStack_a4;" (assignment_expression "uVar12 = uVar12 ^ uStack_a4" identifier = (binary_expression "uVar12 ^ uStack_a4" identifier ^ identifier)) ;) (expression_statement "local_b8 = uVar12 << 7 | uVar12 >> 0x19;" (assignment_expression "local_b8 = uVar12 << 7 | uVar12 >> 0x19" identifier = (binary_expression "uVar12 << 7 | uVar12 >> 0x19" (binary_expression "uVar12 << 7" identifier << number_literal) | (binary_expression "uVar12 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uStack_ac = local_118;" (assignment_expression "uStack_ac = local_118" identifier = identifier) ;) (expression_statement "uStack_a0 = local_114;" (assignment_expression "uStack_a0 = local_114" identifier = identifier) ;) (expression_statement "uStack_8c = local_11c;" (assignment_expression "uStack_8c = local_11c" identifier = identifier) ;) }) while (parenthesized_expression "(0 < local_138)" ( (binary_expression "0 < local_138" number_literal < identifier) )) ;) })) (expression_statement "local_88 = local_c8 + *param_1;" (assignment_expression "local_88 = local_c8 + *param_1" identifier = (binary_expression "local_c8 + *param_1" identifier + (pointer_expression "*param_1" * identifier))) ;) (expression_statement "iVar8 = local_88;" (assignment_expression "iVar8 = local_88" identifier = identifier) ;) (expression_statement "local_80 = param_1[2] + uStack_c0;" (assignment_expression "local_80 = param_1[2] + uStack_c0" identifier = (binary_expression "param_1[2] + uStack_c0" (subscript_expression "param_1[2]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_7c = param_1[3] + uStack_bc;" (assignment_expression "local_7c = param_1[3] + uStack_bc" identifier = (binary_expression "param_1[3] + uStack_bc" (subscript_expression "param_1[3]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_84 = param_1[1] + uStack_c4;" (assignment_expression "local_84 = param_1[1] + uStack_c4" identifier = (binary_expression "param_1[1] + uStack_c4" (subscript_expression "param_1[1]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_78 = param_1[4] + local_b8;" (assignment_expression "local_78 = param_1[4] + local_b8" identifier = (binary_expression "param_1[4] + local_b8" (subscript_expression "param_1[4]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_74 = param_1[5] + uStack_b4;" (assignment_expression "local_74 = param_1[5] + uStack_b4" identifier = (binary_expression "param_1[5] + uStack_b4" (subscript_expression "param_1[5]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_70 = param_1[6] + uStack_b0;" (assignment_expression "local_70 = param_1[6] + uStack_b0" identifier = (binary_expression "param_1[6] + uStack_b0" (subscript_expression "param_1[6]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_6c = param_1[7] + uStack_ac;" (assignment_expression "local_6c = param_1[7] + uStack_ac" identifier = (binary_expression "param_1[7] + uStack_ac" (subscript_expression "param_1[7]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_68 = param_1[8] + local_a8;" (assignment_expression "local_68 = param_1[8] + local_a8" identifier = (binary_expression "param_1[8] + local_a8" (subscript_expression "param_1[8]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_64 = param_1[9] + uStack_a4;" (assignment_expression "local_64 = param_1[9] + uStack_a4" identifier = (binary_expression "param_1[9] + uStack_a4" (subscript_expression "param_1[9]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_60 = param_1[10] + uStack_a0;" (assignment_expression "local_60 = param_1[10] + uStack_a0" identifier = (binary_expression "param_1[10] + uStack_a0" (subscript_expression "param_1[10]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "iVar21 = param_1[0xc] + 1;" (assignment_expression "iVar21 = param_1[0xc] + 1" identifier = (binary_expression "param_1[0xc] + 1" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "local_5c = param_1[0xb] + uStack_9c;" (assignment_expression "local_5c = param_1[0xb] + uStack_9c" identifier = (binary_expression "param_1[0xb] + uStack_9c" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_58 = local_98 + param_1[0xc];" (assignment_expression "local_58 = local_98 + param_1[0xc]" identifier = (binary_expression "local_98 + param_1[0xc]" identifier + (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;) (expression_statement "local_54 = uStack_94 + param_1[0xd];" (assignment_expression "local_54 = uStack_94 + param_1[0xd]" identifier = (binary_expression "uStack_94 + param_1[0xd]" identifier + (subscript_expression "param_1[0xd]" identifier [ number_literal ]))) ;) (expression_statement "local_50 = param_1[0xe] + uStack_90;" (assignment_expression "local_50 = param_1[0xe] + uStack_90" identifier = (binary_expression "param_1[0xe] + uStack_90" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_4c = uStack_8c + param_1[0xf];" (assignment_expression "local_4c = uStack_8c + param_1[0xf]" identifier = (binary_expression "uStack_8c + param_1[0xf]" identifier + (subscript_expression "param_1[0xf]" identifier [ number_literal ]))) ;) (if_statement "if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }" if (parenthesized_expression "(local_f0 == 8)" ( (binary_expression "local_f0 == 8" identifier == number_literal) )) (compound_statement "{\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }" { (expression_statement "param_1[0xc] = iVar21;" (assignment_expression "param_1[0xc] = iVar21" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }" { (expression_statement "iVar21 = param_1[0xd] + 1;" (assignment_expression "iVar21 = param_1[0xd] + 1" identifier = (binary_expression "param_1[0xd] + 1" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_1[0xd] = iVar21;" (assignment_expression "param_1[0xd] = iVar21" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto joined_r0x0018a0dd;" goto statement_identifier ;) })) }) (else_clause "else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }" else (compound_statement "{\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }" { (expression_statement "param_1[0xc] = iVar21;" (assignment_expression "param_1[0xc] = iVar21" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "joined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }" statement_identifier : (if_statement "if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }" { (expression_statement "uVar9 = 0x13;" (assignment_expression "uVar9 = 0x13" identifier = number_literal) ;) (goto_statement "goto LAB_0018a413;" goto statement_identifier ;) }))) }))) (if_statement "if (local_100 < 0x41) goto LAB_0018a0ed;" if (parenthesized_expression "(local_100 < 0x41)" ( (binary_expression "local_100 < 0x41" identifier < number_literal) )) (goto_statement "goto LAB_0018a0ed;" goto statement_identifier ;)) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);" do (compound_statement "{\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      }" { (expression_statement "pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);" (assignment_expression "pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11)" (subscript_expression "pbVar24[lVar11]" identifier [ identifier ]) = (binary_expression "pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11)" (subscript_expression "pbVar10[lVar11]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + lVar11)" * (cast_expression "(byte *)((long)&local_88 + lVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + lVar11)" ( (binary_expression "(long)&local_88 + lVar11" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;) (expression_statement "pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);" (assignment_expression "pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1)" (subscript_expression "pbVar24[lVar11 + 1]" identifier [ (binary_expression "lVar11 + 1" identifier + number_literal) ]) = (binary_expression "pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1)" (subscript_expression "pbVar10[lVar11 + 1]" identifier [ (binary_expression "lVar11 + 1" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_88 + lVar11 + 1)" * (cast_expression "(byte *)((long)&local_88 + lVar11 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + lVar11 + 1)" ( (binary_expression "(long)&local_88 + lVar11 + 1" (binary_expression "(long)&local_88 + lVar11" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);" (assignment_expression "pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2)" (subscript_expression "pbVar24[lVar11 + 2]" identifier [ (binary_expression "lVar11 + 2" identifier + number_literal) ]) = (binary_expression "pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2)" (subscript_expression "pbVar10[lVar11 + 2]" identifier [ (binary_expression "lVar11 + 2" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_88 + lVar11 + 2)" * (cast_expression "(byte *)((long)&local_88 + lVar11 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + lVar11 + 2)" ( (binary_expression "(long)&local_88 + lVar11 + 2" (binary_expression "(long)&local_88 + lVar11" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);" (assignment_expression "pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3)" (subscript_expression "pbVar24[lVar11 + 3]" identifier [ (binary_expression "lVar11 + 3" identifier + number_literal) ]) = (binary_expression "pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3)" (subscript_expression "pbVar10[lVar11 + 3]" identifier [ (binary_expression "lVar11 + 3" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_88 + lVar11 + 3)" * (cast_expression "(byte *)((long)&local_88 + lVar11 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + lVar11 + 3)" ( (binary_expression "(long)&local_88 + lVar11 + 3" (binary_expression "(long)&local_88 + lVar11" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);" (assignment_expression "pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11)" (subscript_expression "pbVar24[lVar11 + 4]" identifier [ (binary_expression "lVar11 + 4" identifier + number_literal) ]) = (binary_expression "pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11)" (subscript_expression "pbVar10[lVar11 + 4]" identifier [ (binary_expression "lVar11 + 4" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + lVar11)" * (cast_expression "(byte *)((long)&local_84 + lVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + lVar11)" ( (binary_expression "(long)&local_84 + lVar11" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) )))))) ;) (expression_statement "pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);" (assignment_expression "pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1)" (subscript_expression "pbVar24[lVar11 + 5]" identifier [ (binary_expression "lVar11 + 5" identifier + number_literal) ]) = (binary_expression "pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1)" (subscript_expression "pbVar10[lVar11 + 5]" identifier [ (binary_expression "lVar11 + 5" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + lVar11 + 1)" * (cast_expression "(byte *)((long)&local_84 + lVar11 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + lVar11 + 1)" ( (binary_expression "(long)&local_84 + lVar11 + 1" (binary_expression "(long)&local_84 + lVar11" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);" (assignment_expression "pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2)" (subscript_expression "pbVar24[lVar11 + 6]" identifier [ (binary_expression "lVar11 + 6" identifier + number_literal) ]) = (binary_expression "pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2)" (subscript_expression "pbVar10[lVar11 + 6]" identifier [ (binary_expression "lVar11 + 6" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + lVar11 + 2)" * (cast_expression "(byte *)((long)&local_84 + lVar11 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + lVar11 + 2)" ( (binary_expression "(long)&local_84 + lVar11 + 2" (binary_expression "(long)&local_84 + lVar11" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);" (assignment_expression "pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3)" (subscript_expression "pbVar24[lVar11 + 7]" identifier [ (binary_expression "lVar11 + 7" identifier + number_literal) ]) = (binary_expression "pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3)" (subscript_expression "pbVar10[lVar11 + 7]" identifier [ (binary_expression "lVar11 + 7" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + lVar11 + 3)" * (cast_expression "(byte *)((long)&local_84 + lVar11 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + lVar11 + 3)" ( (binary_expression "(long)&local_84 + lVar11 + 3" (binary_expression "(long)&local_84 + lVar11" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "lVar11 = lVar11 + 8;" (assignment_expression "lVar11 = lVar11 + 8" identifier = (binary_expression "lVar11 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar11 != 0x40)" ( (binary_expression "lVar11 != 0x40" identifier != number_literal) )) ;) (expression_statement "local_100 = local_100 - 0x40;" (assignment_expression "local_100 = local_100 - 0x40" identifier = (binary_expression "local_100 - 0x40" identifier - number_literal)) ;) (expression_statement "local_f0 = *(long *)(param_1 + 0x22);" (assignment_expression "local_f0 = *(long *)(param_1 + 0x22)" identifier = (pointer_expression "*(long *)(param_1 + 0x22)" * (cast_expression "(long *)(param_1 + 0x22)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22)" ( (binary_expression "param_1 + 0x22" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0018a411;" goto statement_identifier ;) (labeled_statement "LAB_0018a0ed:\n  uVar14 = 0;" statement_identifier : (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;)) (expression_statement "uVar17 = (uint)local_100 & 7;" (assignment_expression "uVar17 = (uint)local_100 & 7" identifier = (binary_expression "(uint)local_100 & 7" (cast_expression "(uint)local_100" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((local_100 & 7) == 0) goto LAB_0018a1e3;" if (parenthesized_expression "((local_100 & 7) == 0)" ( (binary_expression "(local_100 & 7) == 0" (parenthesized_expression "(local_100 & 7)" ( (binary_expression "local_100 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0018a1e3;" goto statement_identifier ;)) (if_statement "if (uVar17 != 1) {\n    if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    uVar14 = uVar14 + 1;\n  }" if (parenthesized_expression "(uVar17 != 1)" ( (binary_expression "uVar17 != 1" identifier != number_literal) )) (compound_statement "{\n    if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    uVar14 = uVar14 + 1;\n  }" { (if_statement "if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }" if (parenthesized_expression "(uVar17 != 2)" ( (binary_expression "uVar17 != 2" identifier != number_literal) )) (compound_statement "{\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }" { (if_statement "if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }" if (parenthesized_expression "(uVar17 != 3)" ( (binary_expression "uVar17 != 3" identifier != number_literal) )) (compound_statement "{\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }" { (if_statement "if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }" if (parenthesized_expression "(uVar17 != 4)" ( (binary_expression "uVar17 != 4" identifier != number_literal) )) (compound_statement "{\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }" { (if_statement "if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }" if (parenthesized_expression "(uVar17 != 5)" ( (binary_expression "uVar17 != 5" identifier != number_literal) )) (compound_statement "{\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }" { (if_statement "if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }" if (parenthesized_expression "(uVar17 != 6)" ( (binary_expression "uVar17 != 6" identifier != number_literal) )) (compound_statement "{\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }" { (expression_statement "local_88._0_1_ = (byte)(local_c8 + *param_1);" (assignment_expression "local_88._0_1_ = (byte)(local_c8 + *param_1)" (field_expression "local_88._0_1_" identifier . field_identifier) = (call_expression "(byte)(local_c8 + *param_1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_c8 + *param_1)" ( (binary_expression "local_c8 + *param_1" identifier + (pointer_expression "*param_1" * identifier)) )))) ;) (expression_statement "*pbVar24 = *pbVar10 ^ (byte)local_88;" (assignment_expression "*pbVar24 = *pbVar10 ^ (byte)local_88" (pointer_expression "*pbVar24" * identifier) = (binary_expression "*pbVar10 ^ (byte)local_88" (pointer_expression "*pbVar10" * identifier) ^ (cast_expression "(byte)local_88" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) })) (expression_statement "uVar14 = (ulong)(uVar17 != 6);" (assignment_expression "uVar14 = (ulong)(uVar17 != 6)" identifier = (call_expression "(ulong)(uVar17 != 6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar17 != 6)" ( (binary_expression "uVar17 != 6" identifier != number_literal) )))) ;) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" identifier [ identifier ]) = (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14)" * (cast_expression "(byte *)((long)&local_88 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14)" ( (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" identifier [ identifier ]) = (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14)" * (cast_expression "(byte *)((long)&local_88 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14)" ( (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" identifier [ identifier ]) = (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14)" * (cast_expression "(byte *)((long)&local_88 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14)" ( (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" identifier [ identifier ]) = (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14)" * (cast_expression "(byte *)((long)&local_88 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14)" ( (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" identifier [ identifier ]) = (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14)" * (cast_expression "(byte *)((long)&local_88 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14)" ( (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" identifier [ identifier ]) = (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14)" * (cast_expression "(byte *)((long)&local_88 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14)" ( (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;) (for_statement "for (uVar14 = uVar14 + 1; local_100 != uVar14; uVar14 = uVar14 + 8) {\nLAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);\n    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);\n    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);\n    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);\n    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);\n    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);\n    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);\n  }" for ( (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ; (binary_expression "local_100 != uVar14" identifier != identifier) ; (assignment_expression "uVar14 = uVar14 + 8" identifier = (binary_expression "uVar14 + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);\n    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);\n    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);\n    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);\n    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);\n    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);\n    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);\n  }" { (labeled_statement "LAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" statement_identifier : (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" identifier [ identifier ]) = (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14)" * (cast_expression "(byte *)((long)&local_88 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14)" ( (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;)) (expression_statement "pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);" (assignment_expression "pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1)" (subscript_expression "pbVar24[uVar14 + 1]" identifier [ (binary_expression "uVar14 + 1" identifier + number_literal) ]) = (binary_expression "pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1)" (subscript_expression "pbVar10[uVar14 + 1]" identifier [ (binary_expression "uVar14 + 1" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14 + 1)" * (cast_expression "(byte *)((long)&local_88 + uVar14 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14 + 1)" ( (binary_expression "(long)&local_88 + uVar14 + 1" (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);" (assignment_expression "pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2)" (subscript_expression "pbVar24[uVar14 + 2]" identifier [ (binary_expression "uVar14 + 2" identifier + number_literal) ]) = (binary_expression "pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2)" (subscript_expression "pbVar10[uVar14 + 2]" identifier [ (binary_expression "uVar14 + 2" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14 + 2)" * (cast_expression "(byte *)((long)&local_88 + uVar14 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14 + 2)" ( (binary_expression "(long)&local_88 + uVar14 + 2" (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);" (assignment_expression "pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3)" (subscript_expression "pbVar24[uVar14 + 3]" identifier [ (binary_expression "uVar14 + 3" identifier + number_literal) ]) = (binary_expression "pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3)" (subscript_expression "pbVar10[uVar14 + 3]" identifier [ (binary_expression "uVar14 + 3" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14 + 3)" * (cast_expression "(byte *)((long)&local_88 + uVar14 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14 + 3)" ( (binary_expression "(long)&local_88 + uVar14 + 3" (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);" (assignment_expression "pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14)" (subscript_expression "pbVar24[uVar14 + 4]" identifier [ (binary_expression "uVar14 + 4" identifier + number_literal) ]) = (binary_expression "pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14)" (subscript_expression "pbVar10[uVar14 + 4]" identifier [ (binary_expression "uVar14 + 4" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + uVar14)" * (cast_expression "(byte *)((long)&local_84 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + uVar14)" ( (binary_expression "(long)&local_84 + uVar14" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) )))))) ;) (expression_statement "pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);" (assignment_expression "pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1)" (subscript_expression "pbVar24[uVar14 + 5]" identifier [ (binary_expression "uVar14 + 5" identifier + number_literal) ]) = (binary_expression "pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1)" (subscript_expression "pbVar10[uVar14 + 5]" identifier [ (binary_expression "uVar14 + 5" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + uVar14 + 1)" * (cast_expression "(byte *)((long)&local_84 + uVar14 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + uVar14 + 1)" ( (binary_expression "(long)&local_84 + uVar14 + 1" (binary_expression "(long)&local_84 + uVar14" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);" (assignment_expression "pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2)" (subscript_expression "pbVar24[uVar14 + 6]" identifier [ (binary_expression "uVar14 + 6" identifier + number_literal) ]) = (binary_expression "pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2)" (subscript_expression "pbVar10[uVar14 + 6]" identifier [ (binary_expression "uVar14 + 6" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + uVar14 + 2)" * (cast_expression "(byte *)((long)&local_84 + uVar14 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + uVar14 + 2)" ( (binary_expression "(long)&local_84 + uVar14 + 2" (binary_expression "(long)&local_84 + uVar14" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);" (assignment_expression "pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3)" (subscript_expression "pbVar24[uVar14 + 7]" identifier [ (binary_expression "uVar14 + 7" identifier + number_literal) ]) = (binary_expression "pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3)" (subscript_expression "pbVar10[uVar14 + 7]" identifier [ (binary_expression "uVar14 + 7" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + uVar14 + 3)" * (cast_expression "(byte *)((long)&local_84 + uVar14 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + uVar14 + 3)" ( (binary_expression "(long)&local_84 + uVar14 + 3" (binary_expression "(long)&local_84 + uVar14" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) )))))) ;) })) (expression_statement "*(ulong *)(param_1 + 0x20) = 0x40 - local_100;" (assignment_expression "*(ulong *)(param_1 + 0x20) = 0x40 - local_100" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "0x40 - local_100" number_literal - identifier)) ;) (expression_statement "local_88 = iVar8;" (assignment_expression "local_88 = iVar8" identifier = identifier) ;) (if_statement "if (local_100 != 0x40) {\n    uVar17 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }" if (parenthesized_expression "(local_100 != 0x40)" ( (binary_expression "local_100 != 0x40" identifier != number_literal) )) (compound_statement "{\n    uVar17 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }" { (expression_statement "uVar17 = (uint)-local_100 & 7;" (assignment_expression "uVar17 = (uint)-local_100 & 7" identifier = (binary_expression "(uint)-local_100 & 7" (binary_expression "(uint)-local_100" (parenthesized_expression "(uint)" ( identifier )) - identifier) & number_literal)) ;) (if_statement "if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }" if (parenthesized_expression "((-local_100 & 7) != 0)" ( (binary_expression "(-local_100 & 7) != 0" (parenthesized_expression "(-local_100 & 7)" ( (binary_expression "-local_100 & 7" (unary_expression "-local_100" - identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }" { (if_statement "if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }" if (parenthesized_expression "(uVar17 != 1)" ( (binary_expression "uVar17 != 1" identifier != number_literal) )) (compound_statement "{\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }" { (if_statement "if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }" if (parenthesized_expression "(uVar17 != 2)" ( (binary_expression "uVar17 != 2" identifier != number_literal) )) (compound_statement "{\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }" { (if_statement "if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }" if (parenthesized_expression "(uVar17 != 3)" ( (binary_expression "uVar17 != 3" identifier != number_literal) )) (compound_statement "{\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }" { (if_statement "if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }" if (parenthesized_expression "(uVar17 != 4)" ( (binary_expression "uVar17 != 4" identifier != number_literal) )) (compound_statement "{\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }" { (if_statement "if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }" if (parenthesized_expression "(uVar17 != 5)" ( (binary_expression "uVar17 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }" { (if_statement "if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }" if (parenthesized_expression "(uVar17 != 6)" ( (binary_expression "uVar17 != 6" identifier != number_literal) )) (compound_statement "{\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }" { (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) (if_statement "if (local_100 == 0x40) goto LAB_0018a411;" if (parenthesized_expression "(local_100 == 0x40)" ( (binary_expression "local_100 == 0x40" identifier == number_literal) )) (goto_statement "goto LAB_0018a411;" goto statement_identifier ;)) })) (do_statement "do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);" do (compound_statement "{\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    }" { (expression_statement "uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);" (assignment_expression "uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1)" identifier = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100 + 1)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100 + 1)" ( (binary_expression "(long)&local_88 + local_100 + 1" (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);" (assignment_expression "uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2)" identifier = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100 + 2)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100 + 2)" ( (binary_expression "(long)&local_88 + local_100 + 2" (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);" (assignment_expression "uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3)" identifier = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100 + 3)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100 + 3)" ( (binary_expression "(long)&local_88 + local_100 + 3" (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined1 *)((long)&local_84 + local_100);" (assignment_expression "uVar4 = *(undefined1 *)((long)&local_84 + local_100)" identifier = (pointer_expression "*(undefined1 *)((long)&local_84 + local_100)" * (cast_expression "(undefined1 *)((long)&local_84 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + local_100)" ( (binary_expression "(long)&local_84 + local_100" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) ))))) ;) (expression_statement "uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);" (assignment_expression "uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1)" identifier = (pointer_expression "*(undefined1 *)((long)&local_84 + local_100 + 1)" * (cast_expression "(undefined1 *)((long)&local_84 + local_100 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + local_100 + 1)" ( (binary_expression "(long)&local_84 + local_100 + 1" (binary_expression "(long)&local_84 + local_100" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);" (assignment_expression "uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2)" identifier = (pointer_expression "*(undefined1 *)((long)&local_84 + local_100 + 2)" * (cast_expression "(undefined1 *)((long)&local_84 + local_100 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + local_100 + 2)" ( (binary_expression "(long)&local_84 + local_100 + 2" (binary_expression "(long)&local_84 + local_100" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);" (assignment_expression "uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3)" identifier = (pointer_expression "*(undefined1 *)((long)&local_84 + local_100 + 3)" * (cast_expression "(undefined1 *)((long)&local_84 + local_100 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + local_100 + 3)" ( (binary_expression "(long)&local_84 + local_100 + 3" (binary_expression "(long)&local_84 + local_100" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x41)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x41)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x41)" ( (binary_expression "(long)param_1 + local_100 + 0x41" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x42)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x42)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x42)" ( (binary_expression "(long)param_1 + local_100 + 0x42" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x43)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x43)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x43)" ( (binary_expression "(long)param_1 + local_100 + 0x43" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x44)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x44)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x44)" ( (binary_expression "(long)param_1 + local_100 + 0x44" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x45)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x45)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x45)" ( (binary_expression "(long)param_1 + local_100 + 0x45" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x46)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x46)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x46)" ( (binary_expression "(long)param_1 + local_100 + 0x46" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x47)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x47)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x47)" ( (binary_expression "(long)param_1 + local_100 + 0x47" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_100 = local_100 + 8;" (assignment_expression "local_100 = local_100 + 8" identifier = (binary_expression "local_100 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_100 != 0x40)" ( (binary_expression "local_100 != 0x40" identifier != number_literal) )) ;) })) (labeled_statement "LAB_0018a411:\n  uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0018a413:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar9;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar9;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar9;\n  }" { (return_statement "return uVar9;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int chacha_crypt(chacha_state *st,uchar *in,ulong inlen,uchar *out)\n\n{\n  uchar uVar1;\n  uchar uVar2;\n  uchar uVar3;\n  uchar uVar4;\n  uchar uVar5;\n  uchar uVar6;\n  uchar uVar7;\n  long lVar8;\n  undefined4 uVar9;\n  int iVar10;\n  uint uVar11;\n  byte *pbVar12;\n  long lVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  ulong uVar18;\n  uint uVar19;\n  uint uVar20;\n  ulong uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  ulong32 uVar27;\n  uint uVar28;\n  uint uVar29;\n  ulong uVar30;\n  byte *pbVar31;\n  uint uVar32;\n  long in_FS_OFFSET;\n  int local_138;\n  uint local_11c;\n  uint local_118;\n  uint local_114;\n  ulong local_100;\n  ulong local_f0;\n  ulong32 x [16];\n  uchar buf [64];\n  \n  lVar8 = *(long *)(in_FS_OFFSET + 0x28);\n  if (inlen != 0) {\n    if (st == (chacha_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (out == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = st->ivlen;\n    if (local_f0 == 0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar18 = st->ksleft;\n    local_100 = inlen;\n    if (uVar18 != 0) {\n      uVar21 = inlen;\n      if (uVar18 <= inlen) {\n        uVar21 = uVar18;\n      }\n      uVar30 = 0;\n      uVar22 = (uint)uVar21 & 7;\n      if ((uVar21 & 7) == 0) goto LAB_001899d0;\n      if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }\n              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n              uVar30 = uVar30 + 1;\n              uVar18 = st->ksleft - 1;\n              st->ksleft = uVar18;\n            }\n            out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n            uVar30 = uVar30 + 1;\n            uVar18 = st->ksleft - 1;\n            st->ksleft = uVar18;\n          }\n          out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n          uVar30 = uVar30 + 1;\n          uVar18 = st->ksleft - 1;\n          st->ksleft = uVar18;\n        }\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar30 = uVar30 + 1;\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }\n      out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n      uVar18 = st->ksleft - 1;\n      st->ksleft = uVar18;\n      for (uVar30 = uVar30 + 1; uVar21 != uVar30; uVar30 = uVar30 + 8) {\nLAB_001899d0:\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 1] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 1];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 2] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 2];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 3] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 3];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 4] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 4];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 5] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 5];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 6] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 6];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 7] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 7];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }\n      local_100 = inlen - uVar21;\n      if (local_100 == 0) goto LAB_0018a411;\n      out = out + uVar21;\n      in = in + uVar21;\n      local_f0 = st->ivlen;\n      inlen = local_100;\n    }\n    do {\n      pbVar31 = out + (inlen - local_100);\n      local_138 = st->rounds;\n      pbVar12 = in + (inlen - local_100);\n      x[1] = (ulong32)((ulong)*(undefined8 *)st->input >> 0x20);\n      x[0] = (ulong32)*(undefined8 *)st->input;\n      x[3] = (ulong32)((ulong)*(undefined8 *)(st->input + 2) >> 0x20);\n      x[2] = (ulong32)*(undefined8 *)(st->input + 2);\n      x[5] = (ulong32)((ulong)*(undefined8 *)(st->input + 4) >> 0x20);\n      x[4] = (ulong32)*(undefined8 *)(st->input + 4);\n      x[7] = (ulong32)((ulong)*(undefined8 *)(st->input + 6) >> 0x20);\n      x[6] = (ulong32)*(undefined8 *)(st->input + 6);\n      x[9] = (ulong32)((ulong)*(undefined8 *)(st->input + 8) >> 0x20);\n      x[8] = (ulong32)*(undefined8 *)(st->input + 8);\n      x[0xb] = (ulong32)((ulong)*(undefined8 *)(st->input + 10) >> 0x20);\n      x[10] = (ulong32)*(undefined8 *)(st->input + 10);\n      x[0xd] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xc) >> 0x20);\n      x[0xc] = (ulong32)*(undefined8 *)(st->input + 0xc);\n      x[0xf] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xe) >> 0x20);\n      x[0xe] = (ulong32)*(undefined8 *)(st->input + 0xe);\n      if (0 < local_138) {\n        local_118 = x[7];\n        local_114 = x[10];\n        local_11c = x[0xf];\n        do {\n          uVar11 = x[0xc] ^ x[0] + x[4];\n          uVar22 = x[0xd] ^ x[1] + x[5];\n          uVar14 = x[0xe] ^ x[2] + x[6];\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = x[8] + uVar11;\n          uVar16 = x[4] ^ uVar19;\n          uVar17 = uVar16 << 0xc | uVar16 >> 0x14;\n          uVar29 = x[0] + x[4] + uVar17;\n          uVar11 = uVar11 ^ uVar29;\n          uVar16 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar19 = uVar19 + uVar16;\n          uVar17 = uVar17 ^ uVar19;\n          uVar28 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar11 = uVar22 << 0x10 | uVar22 >> 0x10;\n          uVar22 = x[9] + uVar11;\n          uVar17 = x[5] ^ uVar22;\n          uVar17 = uVar17 << 0xc | uVar17 >> 0x14;\n          uVar26 = x[1] + x[5] + uVar17;\n          uVar11 = uVar11 ^ uVar26;\n          uVar11 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar22 = uVar22 + uVar11;\n          uVar17 = uVar17 ^ uVar22;\n          uVar23 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar17 = uVar14 << 0x10 | uVar14 >> 0x10;\n          local_114 = local_114 + uVar17;\n          uVar14 = x[6] ^ local_114;\n          uVar24 = uVar14 << 0xc | uVar14 >> 0x14;\n          uVar14 = x[2] + x[6] + uVar24;\n          uVar17 = uVar17 ^ uVar14;\n          uVar15 = uVar17 << 8 | uVar17 >> 0x18;\n          local_114 = local_114 + uVar15;\n          uVar29 = uVar29 + uVar23;\n          uVar24 = uVar24 ^ local_114;\n          local_11c = local_11c ^ x[3] + local_118;\n          uVar25 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar26 = uVar26 + uVar25;\n          uVar20 = local_11c << 0x10 | local_11c >> 0x10;\n          uVar17 = x[0xb] + uVar20;\n          uVar16 = uVar16 ^ uVar26;\n          uVar24 = local_118 ^ uVar17;\n          uVar24 = uVar24 << 0xc | uVar24 >> 0x14;\n          uVar32 = x[3] + local_118 + uVar24;\n          uVar20 = uVar20 ^ uVar32;\n          uVar20 = uVar20 << 8 | uVar20 >> 0x18;\n          uVar17 = uVar17 + uVar20;\n          uVar20 = uVar20 ^ uVar29;\n          uVar24 = uVar24 ^ uVar17;\n          uVar24 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar20 = uVar20 << 0x10 | uVar20 >> 0x10;\n          local_114 = local_114 + uVar20;\n          uVar23 = uVar23 ^ local_114;\n          uVar23 = uVar23 << 0xc | uVar23 >> 0x14;\n          x[0] = uVar29 + uVar23;\n          uVar20 = uVar20 ^ x[0];\n          local_11c = uVar20 << 8 | uVar20 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar23 = uVar23 ^ local_114;\n          x[5] = uVar23 << 7 | uVar23 >> 0x19;\n          uVar16 = uVar16 << 0x10 | uVar16 >> 0x10;\n          uVar17 = uVar17 + uVar16;\n          uVar25 = uVar25 ^ uVar17;\n          uVar20 = uVar25 << 0xc | uVar25 >> 0x14;\n          x[1] = uVar26 + uVar20;\n          uVar14 = uVar14 + uVar24;\n          uVar32 = uVar32 + uVar28;\n          uVar16 = uVar16 ^ x[1];\n          uVar11 = uVar11 ^ uVar14;\n          uVar15 = uVar15 ^ uVar32;\n          local_138 = local_138 + -2;\n          x[0xc] = uVar16 << 8 | uVar16 >> 0x18;\n          x[0xb] = uVar17 + x[0xc];\n          uVar20 = uVar20 ^ x[0xb];\n          x[6] = uVar20 << 7 | uVar20 >> 0x19;\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = uVar19 + uVar11;\n          uVar24 = uVar24 ^ uVar19;\n          uVar16 = uVar24 << 0xc | uVar24 >> 0x14;\n          x[2] = uVar14 + uVar16;\n          uVar11 = uVar11 ^ x[2];\n          x[0xd] = uVar11 << 8 | uVar11 >> 0x18;\n          x[8] = uVar19 + x[0xd];\n          uVar16 = uVar16 ^ x[8];\n          local_118 = uVar16 << 7 | uVar16 >> 0x19;\n          uVar11 = uVar15 << 0x10 | uVar15 >> 0x10;\n          uVar22 = uVar22 + uVar11;\n          uVar28 = uVar28 ^ uVar22;\n          uVar16 = uVar28 << 0xc | uVar28 >> 0x14;\n          x[3] = uVar32 + uVar16;\n          uVar11 = uVar11 ^ x[3];\n          x[0xe] = uVar11 << 8 | uVar11 >> 0x18;\n          x[9] = uVar22 + x[0xe];\n          uVar16 = uVar16 ^ x[9];\n          x[4] = uVar16 << 7 | uVar16 >> 0x19;\n          x[7] = local_118;\n          x[10] = local_114;\n          x[0xf] = local_11c;\n        } while (0 < local_138);\n      }\n      buf._0_4_ = x[0] + st->input[0];\n      uVar9 = buf._0_4_;\n      buf._8_4_ = st->input[2] + x[2];\n      buf._12_4_ = st->input[3] + x[3];\n      buf._4_4_ = st->input[1] + x[1];\n      buf._16_4_ = st->input[4] + x[4];\n      buf._20_4_ = st->input[5] + x[5];\n      buf._24_4_ = st->input[6] + x[6];\n      buf._28_4_ = st->input[7] + x[7];\n      buf._32_4_ = st->input[8] + x[8];\n      buf._36_4_ = st->input[9] + x[9];\n      buf._40_4_ = st->input[10] + x[10];\n      uVar27 = st->input[0xc] + 1;\n      buf._44_4_ = st->input[0xb] + x[0xb];\n      buf._48_4_ = x[0xc] + st->input[0xc];\n      buf._52_4_ = x[0xd] + st->input[0xd];\n      buf._56_4_ = st->input[0xe] + x[0xe];\n      buf._60_4_ = x[0xf] + st->input[0xf];\n      if (local_f0 == 8) {\n        st->input[0xc] = uVar27;\n        if (uVar27 == 0) {\n          uVar27 = st->input[0xd] + 1;\n          st->input[0xd] = uVar27;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        st->input[0xc] = uVar27;\njoined_r0x0018a0dd:\n        if (uVar27 == 0) {\n          iVar10 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar13 = 0;\n      do {\n        pbVar31[lVar13] = pbVar12[lVar13] ^ buf[lVar13];\n        pbVar31[lVar13 + 1] = pbVar12[lVar13 + 1] ^ buf[lVar13 + 1];\n        pbVar31[lVar13 + 2] = pbVar12[lVar13 + 2] ^ buf[lVar13 + 2];\n        pbVar31[lVar13 + 3] = pbVar12[lVar13 + 3] ^ buf[lVar13 + 3];\n        pbVar31[lVar13 + 4] = pbVar12[lVar13 + 4] ^ buf[lVar13 + 4];\n        pbVar31[lVar13 + 5] = pbVar12[lVar13 + 5] ^ buf[lVar13 + 5];\n        pbVar31[lVar13 + 6] = pbVar12[lVar13 + 6] ^ buf[lVar13 + 6];\n        pbVar31[lVar13 + 7] = pbVar12[lVar13 + 7] ^ buf[lVar13 + 7];\n        lVar13 = lVar13 + 8;\n      } while (lVar13 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = st->ivlen;\n    } while( true );\n  }\n  goto LAB_0018a411;\nLAB_0018a0ed:\n  uVar18 = 0;\n  uVar22 = (uint)local_100 & 7;\n  if ((local_100 & 7) == 0) goto LAB_0018a1e3;\n  if (uVar22 != 1) {\n    if (uVar22 != 2) {\n      if (uVar22 != 3) {\n        if (uVar22 != 4) {\n          if (uVar22 != 5) {\n            if (uVar22 != 6) {\n              *pbVar31 = *pbVar12 ^ buf[0];\n            }\n            uVar18 = (ulong)(uVar22 != 6);\n            pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n            uVar18 = uVar18 + 1;\n          }\n          pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n          uVar18 = uVar18 + 1;\n        }\n        pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n        uVar18 = uVar18 + 1;\n      }\n      pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n      uVar18 = uVar18 + 1;\n    }\n    pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n    uVar18 = uVar18 + 1;\n  }\n  pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n  for (uVar18 = uVar18 + 1; local_100 != uVar18; uVar18 = uVar18 + 8) {\nLAB_0018a1e3:\n    pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n    pbVar31[uVar18 + 1] = pbVar12[uVar18 + 1] ^ buf[uVar18 + 1];\n    pbVar31[uVar18 + 2] = pbVar12[uVar18 + 2] ^ buf[uVar18 + 2];\n    pbVar31[uVar18 + 3] = pbVar12[uVar18 + 3] ^ buf[uVar18 + 3];\n    pbVar31[uVar18 + 4] = pbVar12[uVar18 + 4] ^ buf[uVar18 + 4];\n    pbVar31[uVar18 + 5] = pbVar12[uVar18 + 5] ^ buf[uVar18 + 5];\n    pbVar31[uVar18 + 6] = pbVar12[uVar18 + 6] ^ buf[uVar18 + 6];\n    pbVar31[uVar18 + 7] = pbVar12[uVar18 + 7] ^ buf[uVar18 + 7];\n  }\n  st->ksleft = 0x40 - local_100;\n  buf._0_4_ = uVar9;\n  if (local_100 != 0x40) {\n    uVar22 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }\n              st->kstream[local_100] = buf[local_100];\n              local_100 = local_100 + 1;\n            }\n            st->kstream[local_100] = buf[local_100];\n            local_100 = local_100 + 1;\n          }\n          st->kstream[local_100] = buf[local_100];\n          local_100 = local_100 + 1;\n        }\n        st->kstream[local_100] = buf[local_100];\n        local_100 = local_100 + 1;\n      }\n      st->kstream[local_100] = buf[local_100];\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = buf[local_100 + 1];\n      uVar2 = buf[local_100 + 2];\n      uVar3 = buf[local_100 + 3];\n      uVar4 = buf[local_100 + 4];\n      uVar5 = buf[local_100 + 5];\n      st->kstream[local_100] = buf[local_100];\n      uVar6 = buf[local_100 + 6];\n      uVar7 = buf[local_100 + 7];\n      st->kstream[local_100 + 1] = uVar1;\n      st->kstream[local_100 + 2] = uVar2;\n      st->kstream[local_100 + 3] = uVar3;\n      st->kstream[local_100 + 4] = uVar4;\n      st->kstream[local_100 + 5] = uVar5;\n      st->kstream[local_100 + 6] = uVar6;\n      st->kstream[local_100 + 7] = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }\nLAB_0018a411:\n  iVar10 = 0;\nLAB_0018a413:\n  if (lVar8 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar10;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "int chacha_crypt(chacha_state *st,uchar *in,ulong inlen,uchar *out)\n\n{\n  uchar uVar1;\n  uchar uVar2;\n  uchar uVar3;\n  uchar uVar4;\n  uchar uVar5;\n  uchar uVar6;\n  uchar uVar7;\n  long lVar8;\n  undefined4 uVar9;\n  int iVar10;\n  uint uVar11;\n  byte *pbVar12;\n  long lVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  ulong uVar18;\n  uint uVar19;\n  uint uVar20;\n  ulong uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  ulong32 uVar27;\n  uint uVar28;\n  uint uVar29;\n  ulong uVar30;\n  byte *pbVar31;\n  uint uVar32;\n  long in_FS_OFFSET;\n  int local_138;\n  uint local_11c;\n  uint local_118;\n  uint local_114;\n  ulong local_100;\n  ulong local_f0;\n  ulong32 x [16];\n  uchar buf [64];\n  \n  lVar8 = *(long *)(in_FS_OFFSET + 0x28);\n  if (inlen != 0) {\n    if (st == (chacha_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (out == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = st->ivlen;\n    if (local_f0 == 0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar18 = st->ksleft;\n    local_100 = inlen;\n    if (uVar18 != 0) {\n      uVar21 = inlen;\n      if (uVar18 <= inlen) {\n        uVar21 = uVar18;\n      }\n      uVar30 = 0;\n      uVar22 = (uint)uVar21 & 7;\n      if ((uVar21 & 7) == 0) goto LAB_001899d0;\n      if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }\n              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n              uVar30 = uVar30 + 1;\n              uVar18 = st->ksleft - 1;\n              st->ksleft = uVar18;\n            }\n            out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n            uVar30 = uVar30 + 1;\n            uVar18 = st->ksleft - 1;\n            st->ksleft = uVar18;\n          }\n          out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n          uVar30 = uVar30 + 1;\n          uVar18 = st->ksleft - 1;\n          st->ksleft = uVar18;\n        }\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar30 = uVar30 + 1;\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }\n      out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n      uVar18 = st->ksleft - 1;\n      st->ksleft = uVar18;\n      for (uVar30 = uVar30 + 1; uVar21 != uVar30; uVar30 = uVar30 + 8) {\nLAB_001899d0:\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 1] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 1];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 2] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 2];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 3] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 3];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 4] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 4];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 5] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 5];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 6] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 6];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 7] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 7];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }\n      local_100 = inlen - uVar21;\n      if (local_100 == 0) goto LAB_0018a411;\n      out = out + uVar21;\n      in = in + uVar21;\n      local_f0 = st->ivlen;\n      inlen = local_100;\n    }\n    do {\n      pbVar31 = out + (inlen - local_100);\n      local_138 = st->rounds;\n      pbVar12 = in + (inlen - local_100);\n      x[1] = (ulong32)((ulong)*(undefined8 *)st->input >> 0x20);\n      x[0] = (ulong32)*(undefined8 *)st->input;\n      x[3] = (ulong32)((ulong)*(undefined8 *)(st->input + 2) >> 0x20);\n      x[2] = (ulong32)*(undefined8 *)(st->input + 2);\n      x[5] = (ulong32)((ulong)*(undefined8 *)(st->input + 4) >> 0x20);\n      x[4] = (ulong32)*(undefined8 *)(st->input + 4);\n      x[7] = (ulong32)((ulong)*(undefined8 *)(st->input + 6) >> 0x20);\n      x[6] = (ulong32)*(undefined8 *)(st->input + 6);\n      x[9] = (ulong32)((ulong)*(undefined8 *)(st->input + 8) >> 0x20);\n      x[8] = (ulong32)*(undefined8 *)(st->input + 8);\n      x[0xb] = (ulong32)((ulong)*(undefined8 *)(st->input + 10) >> 0x20);\n      x[10] = (ulong32)*(undefined8 *)(st->input + 10);\n      x[0xd] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xc) >> 0x20);\n      x[0xc] = (ulong32)*(undefined8 *)(st->input + 0xc);\n      x[0xf] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xe) >> 0x20);\n      x[0xe] = (ulong32)*(undefined8 *)(st->input + 0xe);\n      if (0 < local_138) {\n        local_118 = x[7];\n        local_114 = x[10];\n        local_11c = x[0xf];\n        do {\n          uVar11 = x[0xc] ^ x[0] + x[4];\n          uVar22 = x[0xd] ^ x[1] + x[5];\n          uVar14 = x[0xe] ^ x[2] + x[6];\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = x[8] + uVar11;\n          uVar16 = x[4] ^ uVar19;\n          uVar17 = uVar16 << 0xc | uVar16 >> 0x14;\n          uVar29 = x[0] + x[4] + uVar17;\n          uVar11 = uVar11 ^ uVar29;\n          uVar16 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar19 = uVar19 + uVar16;\n          uVar17 = uVar17 ^ uVar19;\n          uVar28 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar11 = uVar22 << 0x10 | uVar22 >> 0x10;\n          uVar22 = x[9] + uVar11;\n          uVar17 = x[5] ^ uVar22;\n          uVar17 = uVar17 << 0xc | uVar17 >> 0x14;\n          uVar26 = x[1] + x[5] + uVar17;\n          uVar11 = uVar11 ^ uVar26;\n          uVar11 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar22 = uVar22 + uVar11;\n          uVar17 = uVar17 ^ uVar22;\n          uVar23 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar17 = uVar14 << 0x10 | uVar14 >> 0x10;\n          local_114 = local_114 + uVar17;\n          uVar14 = x[6] ^ local_114;\n          uVar24 = uVar14 << 0xc | uVar14 >> 0x14;\n          uVar14 = x[2] + x[6] + uVar24;\n          uVar17 = uVar17 ^ uVar14;\n          uVar15 = uVar17 << 8 | uVar17 >> 0x18;\n          local_114 = local_114 + uVar15;\n          uVar29 = uVar29 + uVar23;\n          uVar24 = uVar24 ^ local_114;\n          local_11c = local_11c ^ x[3] + local_118;\n          uVar25 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar26 = uVar26 + uVar25;\n          uVar20 = local_11c << 0x10 | local_11c >> 0x10;\n          uVar17 = x[0xb] + uVar20;\n          uVar16 = uVar16 ^ uVar26;\n          uVar24 = local_118 ^ uVar17;\n          uVar24 = uVar24 << 0xc | uVar24 >> 0x14;\n          uVar32 = x[3] + local_118 + uVar24;\n          uVar20 = uVar20 ^ uVar32;\n          uVar20 = uVar20 << 8 | uVar20 >> 0x18;\n          uVar17 = uVar17 + uVar20;\n          uVar20 = uVar20 ^ uVar29;\n          uVar24 = uVar24 ^ uVar17;\n          uVar24 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar20 = uVar20 << 0x10 | uVar20 >> 0x10;\n          local_114 = local_114 + uVar20;\n          uVar23 = uVar23 ^ local_114;\n          uVar23 = uVar23 << 0xc | uVar23 >> 0x14;\n          x[0] = uVar29 + uVar23;\n          uVar20 = uVar20 ^ x[0];\n          local_11c = uVar20 << 8 | uVar20 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar23 = uVar23 ^ local_114;\n          x[5] = uVar23 << 7 | uVar23 >> 0x19;\n          uVar16 = uVar16 << 0x10 | uVar16 >> 0x10;\n          uVar17 = uVar17 + uVar16;\n          uVar25 = uVar25 ^ uVar17;\n          uVar20 = uVar25 << 0xc | uVar25 >> 0x14;\n          x[1] = uVar26 + uVar20;\n          uVar14 = uVar14 + uVar24;\n          uVar32 = uVar32 + uVar28;\n          uVar16 = uVar16 ^ x[1];\n          uVar11 = uVar11 ^ uVar14;\n          uVar15 = uVar15 ^ uVar32;\n          local_138 = local_138 + -2;\n          x[0xc] = uVar16 << 8 | uVar16 >> 0x18;\n          x[0xb] = uVar17 + x[0xc];\n          uVar20 = uVar20 ^ x[0xb];\n          x[6] = uVar20 << 7 | uVar20 >> 0x19;\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = uVar19 + uVar11;\n          uVar24 = uVar24 ^ uVar19;\n          uVar16 = uVar24 << 0xc | uVar24 >> 0x14;\n          x[2] = uVar14 + uVar16;\n          uVar11 = uVar11 ^ x[2];\n          x[0xd] = uVar11 << 8 | uVar11 >> 0x18;\n          x[8] = uVar19 + x[0xd];\n          uVar16 = uVar16 ^ x[8];\n          local_118 = uVar16 << 7 | uVar16 >> 0x19;\n          uVar11 = uVar15 << 0x10 | uVar15 >> 0x10;\n          uVar22 = uVar22 + uVar11;\n          uVar28 = uVar28 ^ uVar22;\n          uVar16 = uVar28 << 0xc | uVar28 >> 0x14;\n          x[3] = uVar32 + uVar16;\n          uVar11 = uVar11 ^ x[3];\n          x[0xe] = uVar11 << 8 | uVar11 >> 0x18;\n          x[9] = uVar22 + x[0xe];\n          uVar16 = uVar16 ^ x[9];\n          x[4] = uVar16 << 7 | uVar16 >> 0x19;\n          x[7] = local_118;\n          x[10] = local_114;\n          x[0xf] = local_11c;\n        } while (0 < local_138);\n      }\n      buf._0_4_ = x[0] + st->input[0];\n      uVar9 = buf._0_4_;\n      buf._8_4_ = st->input[2] + x[2];\n      buf._12_4_ = st->input[3] + x[3];\n      buf._4_4_ = st->input[1] + x[1];\n      buf._16_4_ = st->input[4] + x[4];\n      buf._20_4_ = st->input[5] + x[5];\n      buf._24_4_ = st->input[6] + x[6];\n      buf._28_4_ = st->input[7] + x[7];\n      buf._32_4_ = st->input[8] + x[8];\n      buf._36_4_ = st->input[9] + x[9];\n      buf._40_4_ = st->input[10] + x[10];\n      uVar27 = st->input[0xc] + 1;\n      buf._44_4_ = st->input[0xb] + x[0xb];\n      buf._48_4_ = x[0xc] + st->input[0xc];\n      buf._52_4_ = x[0xd] + st->input[0xd];\n      buf._56_4_ = st->input[0xe] + x[0xe];\n      buf._60_4_ = x[0xf] + st->input[0xf];\n      if (local_f0 == 8) {\n        st->input[0xc] = uVar27;\n        if (uVar27 == 0) {\n          uVar27 = st->input[0xd] + 1;\n          st->input[0xd] = uVar27;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        st->input[0xc] = uVar27;\njoined_r0x0018a0dd:\n        if (uVar27 == 0) {\n          iVar10 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar13 = 0;\n      do {\n        pbVar31[lVar13] = pbVar12[lVar13] ^ buf[lVar13];\n        pbVar31[lVar13 + 1] = pbVar12[lVar13 + 1] ^ buf[lVar13 + 1];\n        pbVar31[lVar13 + 2] = pbVar12[lVar13 + 2] ^ buf[lVar13 + 2];\n        pbVar31[lVar13 + 3] = pbVar12[lVar13 + 3] ^ buf[lVar13 + 3];\n        pbVar31[lVar13 + 4] = pbVar12[lVar13 + 4] ^ buf[lVar13 + 4];\n        pbVar31[lVar13 + 5] = pbVar12[lVar13 + 5] ^ buf[lVar13 + 5];\n        pbVar31[lVar13 + 6] = pbVar12[lVar13 + 6] ^ buf[lVar13 + 6];\n        pbVar31[lVar13 + 7] = pbVar12[lVar13 + 7] ^ buf[lVar13 + 7];\n        lVar13 = lVar13 + 8;\n      } while (lVar13 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = st->ivlen;\n    } while( true );\n  }\n  goto LAB_0018a411;\nLAB_0018a0ed:\n  uVar18 = 0;\n  uVar22 = (uint)local_100 & 7;\n  if ((local_100 & 7) == 0) goto LAB_0018a1e3;\n  if (uVar22 != 1) {\n    if (uVar22 != 2) {\n      if (uVar22 != 3) {\n        if (uVar22 != 4) {\n          if (uVar22 != 5) {\n            if (uVar22 != 6) {\n              *pbVar31 = *pbVar12 ^ buf[0];\n            }\n            uVar18 = (ulong)(uVar22 != 6);\n            pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n            uVar18 = uVar18 + 1;\n          }\n          pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n          uVar18 = uVar18 + 1;\n        }\n        pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n        uVar18 = uVar18 + 1;\n      }\n      pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n      uVar18 = uVar18 + 1;\n    }\n    pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n    uVar18 = uVar18 + 1;\n  }\n  pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n  for (uVar18 = uVar18 + 1; local_100 != uVar18; uVar18 = uVar18 + 8) {\nLAB_0018a1e3:\n    pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n    pbVar31[uVar18 + 1] = pbVar12[uVar18 + 1] ^ buf[uVar18 + 1];\n    pbVar31[uVar18 + 2] = pbVar12[uVar18 + 2] ^ buf[uVar18 + 2];\n    pbVar31[uVar18 + 3] = pbVar12[uVar18 + 3] ^ buf[uVar18 + 3];\n    pbVar31[uVar18 + 4] = pbVar12[uVar18 + 4] ^ buf[uVar18 + 4];\n    pbVar31[uVar18 + 5] = pbVar12[uVar18 + 5] ^ buf[uVar18 + 5];\n    pbVar31[uVar18 + 6] = pbVar12[uVar18 + 6] ^ buf[uVar18 + 6];\n    pbVar31[uVar18 + 7] = pbVar12[uVar18 + 7] ^ buf[uVar18 + 7];\n  }\n  st->ksleft = 0x40 - local_100;\n  buf._0_4_ = uVar9;\n  if (local_100 != 0x40) {\n    uVar22 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }\n              st->kstream[local_100] = buf[local_100];\n              local_100 = local_100 + 1;\n            }\n            st->kstream[local_100] = buf[local_100];\n            local_100 = local_100 + 1;\n          }\n          st->kstream[local_100] = buf[local_100];\n          local_100 = local_100 + 1;\n        }\n        st->kstream[local_100] = buf[local_100];\n        local_100 = local_100 + 1;\n      }\n      st->kstream[local_100] = buf[local_100];\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = buf[local_100 + 1];\n      uVar2 = buf[local_100 + 2];\n      uVar3 = buf[local_100 + 3];\n      uVar4 = buf[local_100 + 4];\n      uVar5 = buf[local_100 + 5];\n      st->kstream[local_100] = buf[local_100];\n      uVar6 = buf[local_100 + 6];\n      uVar7 = buf[local_100 + 7];\n      st->kstream[local_100 + 1] = uVar1;\n      st->kstream[local_100 + 2] = uVar2;\n      st->kstream[local_100 + 3] = uVar3;\n      st->kstream[local_100 + 4] = uVar4;\n      st->kstream[local_100 + 5] = uVar5;\n      st->kstream[local_100 + 6] = uVar6;\n      st->kstream[local_100 + 7] = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }\nLAB_0018a411:\n  iVar10 = 0;\nLAB_0018a413:\n  if (lVar8 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar10;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "chacha_crypt(chacha_state *st,uchar *in,ulong inlen,uchar *out)" identifier (parameter_list "(chacha_state *st,uchar *in,ulong inlen,uchar *out)" ( (parameter_declaration "chacha_state *st" type_identifier (pointer_declarator "*st" * identifier)) , (parameter_declaration "uchar *in" type_identifier (pointer_declarator "*in" * identifier)) , (parameter_declaration "ulong inlen" type_identifier identifier) , (parameter_declaration "uchar *out" type_identifier (pointer_declarator "*out" * identifier)) ))) (compound_statement "{\n  uchar uVar1;\n  uchar uVar2;\n  uchar uVar3;\n  uchar uVar4;\n  uchar uVar5;\n  uchar uVar6;\n  uchar uVar7;\n  long lVar8;\n  undefined4 uVar9;\n  int iVar10;\n  uint uVar11;\n  byte *pbVar12;\n  long lVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  ulong uVar18;\n  uint uVar19;\n  uint uVar20;\n  ulong uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  ulong32 uVar27;\n  uint uVar28;\n  uint uVar29;\n  ulong uVar30;\n  byte *pbVar31;\n  uint uVar32;\n  long in_FS_OFFSET;\n  int local_138;\n  uint local_11c;\n  uint local_118;\n  uint local_114;\n  ulong local_100;\n  ulong local_f0;\n  ulong32 x [16];\n  uchar buf [64];\n  \n  lVar8 = *(long *)(in_FS_OFFSET + 0x28);\n  if (inlen != 0) {\n    if (st == (chacha_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (out == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = st->ivlen;\n    if (local_f0 == 0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar18 = st->ksleft;\n    local_100 = inlen;\n    if (uVar18 != 0) {\n      uVar21 = inlen;\n      if (uVar18 <= inlen) {\n        uVar21 = uVar18;\n      }\n      uVar30 = 0;\n      uVar22 = (uint)uVar21 & 7;\n      if ((uVar21 & 7) == 0) goto LAB_001899d0;\n      if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }\n              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n              uVar30 = uVar30 + 1;\n              uVar18 = st->ksleft - 1;\n              st->ksleft = uVar18;\n            }\n            out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n            uVar30 = uVar30 + 1;\n            uVar18 = st->ksleft - 1;\n            st->ksleft = uVar18;\n          }\n          out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n          uVar30 = uVar30 + 1;\n          uVar18 = st->ksleft - 1;\n          st->ksleft = uVar18;\n        }\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar30 = uVar30 + 1;\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }\n      out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n      uVar18 = st->ksleft - 1;\n      st->ksleft = uVar18;\n      for (uVar30 = uVar30 + 1; uVar21 != uVar30; uVar30 = uVar30 + 8) {\nLAB_001899d0:\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 1] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 1];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 2] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 2];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 3] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 3];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 4] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 4];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 5] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 5];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 6] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 6];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 7] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 7];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }\n      local_100 = inlen - uVar21;\n      if (local_100 == 0) goto LAB_0018a411;\n      out = out + uVar21;\n      in = in + uVar21;\n      local_f0 = st->ivlen;\n      inlen = local_100;\n    }\n    do {\n      pbVar31 = out + (inlen - local_100);\n      local_138 = st->rounds;\n      pbVar12 = in + (inlen - local_100);\n      x[1] = (ulong32)((ulong)*(undefined8 *)st->input >> 0x20);\n      x[0] = (ulong32)*(undefined8 *)st->input;\n      x[3] = (ulong32)((ulong)*(undefined8 *)(st->input + 2) >> 0x20);\n      x[2] = (ulong32)*(undefined8 *)(st->input + 2);\n      x[5] = (ulong32)((ulong)*(undefined8 *)(st->input + 4) >> 0x20);\n      x[4] = (ulong32)*(undefined8 *)(st->input + 4);\n      x[7] = (ulong32)((ulong)*(undefined8 *)(st->input + 6) >> 0x20);\n      x[6] = (ulong32)*(undefined8 *)(st->input + 6);\n      x[9] = (ulong32)((ulong)*(undefined8 *)(st->input + 8) >> 0x20);\n      x[8] = (ulong32)*(undefined8 *)(st->input + 8);\n      x[0xb] = (ulong32)((ulong)*(undefined8 *)(st->input + 10) >> 0x20);\n      x[10] = (ulong32)*(undefined8 *)(st->input + 10);\n      x[0xd] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xc) >> 0x20);\n      x[0xc] = (ulong32)*(undefined8 *)(st->input + 0xc);\n      x[0xf] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xe) >> 0x20);\n      x[0xe] = (ulong32)*(undefined8 *)(st->input + 0xe);\n      if (0 < local_138) {\n        local_118 = x[7];\n        local_114 = x[10];\n        local_11c = x[0xf];\n        do {\n          uVar11 = x[0xc] ^ x[0] + x[4];\n          uVar22 = x[0xd] ^ x[1] + x[5];\n          uVar14 = x[0xe] ^ x[2] + x[6];\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = x[8] + uVar11;\n          uVar16 = x[4] ^ uVar19;\n          uVar17 = uVar16 << 0xc | uVar16 >> 0x14;\n          uVar29 = x[0] + x[4] + uVar17;\n          uVar11 = uVar11 ^ uVar29;\n          uVar16 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar19 = uVar19 + uVar16;\n          uVar17 = uVar17 ^ uVar19;\n          uVar28 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar11 = uVar22 << 0x10 | uVar22 >> 0x10;\n          uVar22 = x[9] + uVar11;\n          uVar17 = x[5] ^ uVar22;\n          uVar17 = uVar17 << 0xc | uVar17 >> 0x14;\n          uVar26 = x[1] + x[5] + uVar17;\n          uVar11 = uVar11 ^ uVar26;\n          uVar11 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar22 = uVar22 + uVar11;\n          uVar17 = uVar17 ^ uVar22;\n          uVar23 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar17 = uVar14 << 0x10 | uVar14 >> 0x10;\n          local_114 = local_114 + uVar17;\n          uVar14 = x[6] ^ local_114;\n          uVar24 = uVar14 << 0xc | uVar14 >> 0x14;\n          uVar14 = x[2] + x[6] + uVar24;\n          uVar17 = uVar17 ^ uVar14;\n          uVar15 = uVar17 << 8 | uVar17 >> 0x18;\n          local_114 = local_114 + uVar15;\n          uVar29 = uVar29 + uVar23;\n          uVar24 = uVar24 ^ local_114;\n          local_11c = local_11c ^ x[3] + local_118;\n          uVar25 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar26 = uVar26 + uVar25;\n          uVar20 = local_11c << 0x10 | local_11c >> 0x10;\n          uVar17 = x[0xb] + uVar20;\n          uVar16 = uVar16 ^ uVar26;\n          uVar24 = local_118 ^ uVar17;\n          uVar24 = uVar24 << 0xc | uVar24 >> 0x14;\n          uVar32 = x[3] + local_118 + uVar24;\n          uVar20 = uVar20 ^ uVar32;\n          uVar20 = uVar20 << 8 | uVar20 >> 0x18;\n          uVar17 = uVar17 + uVar20;\n          uVar20 = uVar20 ^ uVar29;\n          uVar24 = uVar24 ^ uVar17;\n          uVar24 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar20 = uVar20 << 0x10 | uVar20 >> 0x10;\n          local_114 = local_114 + uVar20;\n          uVar23 = uVar23 ^ local_114;\n          uVar23 = uVar23 << 0xc | uVar23 >> 0x14;\n          x[0] = uVar29 + uVar23;\n          uVar20 = uVar20 ^ x[0];\n          local_11c = uVar20 << 8 | uVar20 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar23 = uVar23 ^ local_114;\n          x[5] = uVar23 << 7 | uVar23 >> 0x19;\n          uVar16 = uVar16 << 0x10 | uVar16 >> 0x10;\n          uVar17 = uVar17 + uVar16;\n          uVar25 = uVar25 ^ uVar17;\n          uVar20 = uVar25 << 0xc | uVar25 >> 0x14;\n          x[1] = uVar26 + uVar20;\n          uVar14 = uVar14 + uVar24;\n          uVar32 = uVar32 + uVar28;\n          uVar16 = uVar16 ^ x[1];\n          uVar11 = uVar11 ^ uVar14;\n          uVar15 = uVar15 ^ uVar32;\n          local_138 = local_138 + -2;\n          x[0xc] = uVar16 << 8 | uVar16 >> 0x18;\n          x[0xb] = uVar17 + x[0xc];\n          uVar20 = uVar20 ^ x[0xb];\n          x[6] = uVar20 << 7 | uVar20 >> 0x19;\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = uVar19 + uVar11;\n          uVar24 = uVar24 ^ uVar19;\n          uVar16 = uVar24 << 0xc | uVar24 >> 0x14;\n          x[2] = uVar14 + uVar16;\n          uVar11 = uVar11 ^ x[2];\n          x[0xd] = uVar11 << 8 | uVar11 >> 0x18;\n          x[8] = uVar19 + x[0xd];\n          uVar16 = uVar16 ^ x[8];\n          local_118 = uVar16 << 7 | uVar16 >> 0x19;\n          uVar11 = uVar15 << 0x10 | uVar15 >> 0x10;\n          uVar22 = uVar22 + uVar11;\n          uVar28 = uVar28 ^ uVar22;\n          uVar16 = uVar28 << 0xc | uVar28 >> 0x14;\n          x[3] = uVar32 + uVar16;\n          uVar11 = uVar11 ^ x[3];\n          x[0xe] = uVar11 << 8 | uVar11 >> 0x18;\n          x[9] = uVar22 + x[0xe];\n          uVar16 = uVar16 ^ x[9];\n          x[4] = uVar16 << 7 | uVar16 >> 0x19;\n          x[7] = local_118;\n          x[10] = local_114;\n          x[0xf] = local_11c;\n        } while (0 < local_138);\n      }\n      buf._0_4_ = x[0] + st->input[0];\n      uVar9 = buf._0_4_;\n      buf._8_4_ = st->input[2] + x[2];\n      buf._12_4_ = st->input[3] + x[3];\n      buf._4_4_ = st->input[1] + x[1];\n      buf._16_4_ = st->input[4] + x[4];\n      buf._20_4_ = st->input[5] + x[5];\n      buf._24_4_ = st->input[6] + x[6];\n      buf._28_4_ = st->input[7] + x[7];\n      buf._32_4_ = st->input[8] + x[8];\n      buf._36_4_ = st->input[9] + x[9];\n      buf._40_4_ = st->input[10] + x[10];\n      uVar27 = st->input[0xc] + 1;\n      buf._44_4_ = st->input[0xb] + x[0xb];\n      buf._48_4_ = x[0xc] + st->input[0xc];\n      buf._52_4_ = x[0xd] + st->input[0xd];\n      buf._56_4_ = st->input[0xe] + x[0xe];\n      buf._60_4_ = x[0xf] + st->input[0xf];\n      if (local_f0 == 8) {\n        st->input[0xc] = uVar27;\n        if (uVar27 == 0) {\n          uVar27 = st->input[0xd] + 1;\n          st->input[0xd] = uVar27;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        st->input[0xc] = uVar27;\njoined_r0x0018a0dd:\n        if (uVar27 == 0) {\n          iVar10 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar13 = 0;\n      do {\n        pbVar31[lVar13] = pbVar12[lVar13] ^ buf[lVar13];\n        pbVar31[lVar13 + 1] = pbVar12[lVar13 + 1] ^ buf[lVar13 + 1];\n        pbVar31[lVar13 + 2] = pbVar12[lVar13 + 2] ^ buf[lVar13 + 2];\n        pbVar31[lVar13 + 3] = pbVar12[lVar13 + 3] ^ buf[lVar13 + 3];\n        pbVar31[lVar13 + 4] = pbVar12[lVar13 + 4] ^ buf[lVar13 + 4];\n        pbVar31[lVar13 + 5] = pbVar12[lVar13 + 5] ^ buf[lVar13 + 5];\n        pbVar31[lVar13 + 6] = pbVar12[lVar13 + 6] ^ buf[lVar13 + 6];\n        pbVar31[lVar13 + 7] = pbVar12[lVar13 + 7] ^ buf[lVar13 + 7];\n        lVar13 = lVar13 + 8;\n      } while (lVar13 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = st->ivlen;\n    } while( true );\n  }\n  goto LAB_0018a411;\nLAB_0018a0ed:\n  uVar18 = 0;\n  uVar22 = (uint)local_100 & 7;\n  if ((local_100 & 7) == 0) goto LAB_0018a1e3;\n  if (uVar22 != 1) {\n    if (uVar22 != 2) {\n      if (uVar22 != 3) {\n        if (uVar22 != 4) {\n          if (uVar22 != 5) {\n            if (uVar22 != 6) {\n              *pbVar31 = *pbVar12 ^ buf[0];\n            }\n            uVar18 = (ulong)(uVar22 != 6);\n            pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n            uVar18 = uVar18 + 1;\n          }\n          pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n          uVar18 = uVar18 + 1;\n        }\n        pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n        uVar18 = uVar18 + 1;\n      }\n      pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n      uVar18 = uVar18 + 1;\n    }\n    pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n    uVar18 = uVar18 + 1;\n  }\n  pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n  for (uVar18 = uVar18 + 1; local_100 != uVar18; uVar18 = uVar18 + 8) {\nLAB_0018a1e3:\n    pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n    pbVar31[uVar18 + 1] = pbVar12[uVar18 + 1] ^ buf[uVar18 + 1];\n    pbVar31[uVar18 + 2] = pbVar12[uVar18 + 2] ^ buf[uVar18 + 2];\n    pbVar31[uVar18 + 3] = pbVar12[uVar18 + 3] ^ buf[uVar18 + 3];\n    pbVar31[uVar18 + 4] = pbVar12[uVar18 + 4] ^ buf[uVar18 + 4];\n    pbVar31[uVar18 + 5] = pbVar12[uVar18 + 5] ^ buf[uVar18 + 5];\n    pbVar31[uVar18 + 6] = pbVar12[uVar18 + 6] ^ buf[uVar18 + 6];\n    pbVar31[uVar18 + 7] = pbVar12[uVar18 + 7] ^ buf[uVar18 + 7];\n  }\n  st->ksleft = 0x40 - local_100;\n  buf._0_4_ = uVar9;\n  if (local_100 != 0x40) {\n    uVar22 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }\n              st->kstream[local_100] = buf[local_100];\n              local_100 = local_100 + 1;\n            }\n            st->kstream[local_100] = buf[local_100];\n            local_100 = local_100 + 1;\n          }\n          st->kstream[local_100] = buf[local_100];\n          local_100 = local_100 + 1;\n        }\n        st->kstream[local_100] = buf[local_100];\n        local_100 = local_100 + 1;\n      }\n      st->kstream[local_100] = buf[local_100];\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = buf[local_100 + 1];\n      uVar2 = buf[local_100 + 2];\n      uVar3 = buf[local_100 + 3];\n      uVar4 = buf[local_100 + 4];\n      uVar5 = buf[local_100 + 5];\n      st->kstream[local_100] = buf[local_100];\n      uVar6 = buf[local_100 + 6];\n      uVar7 = buf[local_100 + 7];\n      st->kstream[local_100 + 1] = uVar1;\n      st->kstream[local_100 + 2] = uVar2;\n      st->kstream[local_100 + 3] = uVar3;\n      st->kstream[local_100 + 4] = uVar4;\n      st->kstream[local_100 + 5] = uVar5;\n      st->kstream[local_100 + 6] = uVar6;\n      st->kstream[local_100 + 7] = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }\nLAB_0018a411:\n  iVar10 = 0;\nLAB_0018a413:\n  if (lVar8 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar10;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "uchar uVar1;" type_identifier identifier ;) (declaration "uchar uVar2;" type_identifier identifier ;) (declaration "uchar uVar3;" type_identifier identifier ;) (declaration "uchar uVar4;" type_identifier identifier ;) (declaration "uchar uVar5;" type_identifier identifier ;) (declaration "uchar uVar6;" type_identifier identifier ;) (declaration "uchar uVar7;" type_identifier identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "ulong32 uVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "ulong uVar30;" type_identifier identifier ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "uint uVar32;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_138;" primitive_type identifier ;) (declaration "uint local_11c;" type_identifier identifier ;) (declaration "uint local_118;" type_identifier identifier ;) (declaration "uint local_114;" type_identifier identifier ;) (declaration "ulong local_100;" type_identifier identifier ;) (declaration "ulong local_f0;" type_identifier identifier ;) (declaration "ulong32 x [16];" type_identifier (array_declarator "x [16]" identifier [ number_literal ]) ;) (declaration "uchar buf [64];" type_identifier (array_declarator "buf [64]" identifier [ number_literal ]) ;) (expression_statement "lVar8 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar8 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (inlen != 0) {\n    if (st == (chacha_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (out == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = st->ivlen;\n    if (local_f0 == 0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar18 = st->ksleft;\n    local_100 = inlen;\n    if (uVar18 != 0) {\n      uVar21 = inlen;\n      if (uVar18 <= inlen) {\n        uVar21 = uVar18;\n      }\n      uVar30 = 0;\n      uVar22 = (uint)uVar21 & 7;\n      if ((uVar21 & 7) == 0) goto LAB_001899d0;\n      if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }\n              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n              uVar30 = uVar30 + 1;\n              uVar18 = st->ksleft - 1;\n              st->ksleft = uVar18;\n            }\n            out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n            uVar30 = uVar30 + 1;\n            uVar18 = st->ksleft - 1;\n            st->ksleft = uVar18;\n          }\n          out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n          uVar30 = uVar30 + 1;\n          uVar18 = st->ksleft - 1;\n          st->ksleft = uVar18;\n        }\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar30 = uVar30 + 1;\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }\n      out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n      uVar18 = st->ksleft - 1;\n      st->ksleft = uVar18;\n      for (uVar30 = uVar30 + 1; uVar21 != uVar30; uVar30 = uVar30 + 8) {\nLAB_001899d0:\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 1] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 1];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 2] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 2];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 3] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 3];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 4] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 4];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 5] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 5];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 6] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 6];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 7] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 7];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }\n      local_100 = inlen - uVar21;\n      if (local_100 == 0) goto LAB_0018a411;\n      out = out + uVar21;\n      in = in + uVar21;\n      local_f0 = st->ivlen;\n      inlen = local_100;\n    }\n    do {\n      pbVar31 = out + (inlen - local_100);\n      local_138 = st->rounds;\n      pbVar12 = in + (inlen - local_100);\n      x[1] = (ulong32)((ulong)*(undefined8 *)st->input >> 0x20);\n      x[0] = (ulong32)*(undefined8 *)st->input;\n      x[3] = (ulong32)((ulong)*(undefined8 *)(st->input + 2) >> 0x20);\n      x[2] = (ulong32)*(undefined8 *)(st->input + 2);\n      x[5] = (ulong32)((ulong)*(undefined8 *)(st->input + 4) >> 0x20);\n      x[4] = (ulong32)*(undefined8 *)(st->input + 4);\n      x[7] = (ulong32)((ulong)*(undefined8 *)(st->input + 6) >> 0x20);\n      x[6] = (ulong32)*(undefined8 *)(st->input + 6);\n      x[9] = (ulong32)((ulong)*(undefined8 *)(st->input + 8) >> 0x20);\n      x[8] = (ulong32)*(undefined8 *)(st->input + 8);\n      x[0xb] = (ulong32)((ulong)*(undefined8 *)(st->input + 10) >> 0x20);\n      x[10] = (ulong32)*(undefined8 *)(st->input + 10);\n      x[0xd] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xc) >> 0x20);\n      x[0xc] = (ulong32)*(undefined8 *)(st->input + 0xc);\n      x[0xf] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xe) >> 0x20);\n      x[0xe] = (ulong32)*(undefined8 *)(st->input + 0xe);\n      if (0 < local_138) {\n        local_118 = x[7];\n        local_114 = x[10];\n        local_11c = x[0xf];\n        do {\n          uVar11 = x[0xc] ^ x[0] + x[4];\n          uVar22 = x[0xd] ^ x[1] + x[5];\n          uVar14 = x[0xe] ^ x[2] + x[6];\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = x[8] + uVar11;\n          uVar16 = x[4] ^ uVar19;\n          uVar17 = uVar16 << 0xc | uVar16 >> 0x14;\n          uVar29 = x[0] + x[4] + uVar17;\n          uVar11 = uVar11 ^ uVar29;\n          uVar16 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar19 = uVar19 + uVar16;\n          uVar17 = uVar17 ^ uVar19;\n          uVar28 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar11 = uVar22 << 0x10 | uVar22 >> 0x10;\n          uVar22 = x[9] + uVar11;\n          uVar17 = x[5] ^ uVar22;\n          uVar17 = uVar17 << 0xc | uVar17 >> 0x14;\n          uVar26 = x[1] + x[5] + uVar17;\n          uVar11 = uVar11 ^ uVar26;\n          uVar11 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar22 = uVar22 + uVar11;\n          uVar17 = uVar17 ^ uVar22;\n          uVar23 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar17 = uVar14 << 0x10 | uVar14 >> 0x10;\n          local_114 = local_114 + uVar17;\n          uVar14 = x[6] ^ local_114;\n          uVar24 = uVar14 << 0xc | uVar14 >> 0x14;\n          uVar14 = x[2] + x[6] + uVar24;\n          uVar17 = uVar17 ^ uVar14;\n          uVar15 = uVar17 << 8 | uVar17 >> 0x18;\n          local_114 = local_114 + uVar15;\n          uVar29 = uVar29 + uVar23;\n          uVar24 = uVar24 ^ local_114;\n          local_11c = local_11c ^ x[3] + local_118;\n          uVar25 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar26 = uVar26 + uVar25;\n          uVar20 = local_11c << 0x10 | local_11c >> 0x10;\n          uVar17 = x[0xb] + uVar20;\n          uVar16 = uVar16 ^ uVar26;\n          uVar24 = local_118 ^ uVar17;\n          uVar24 = uVar24 << 0xc | uVar24 >> 0x14;\n          uVar32 = x[3] + local_118 + uVar24;\n          uVar20 = uVar20 ^ uVar32;\n          uVar20 = uVar20 << 8 | uVar20 >> 0x18;\n          uVar17 = uVar17 + uVar20;\n          uVar20 = uVar20 ^ uVar29;\n          uVar24 = uVar24 ^ uVar17;\n          uVar24 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar20 = uVar20 << 0x10 | uVar20 >> 0x10;\n          local_114 = local_114 + uVar20;\n          uVar23 = uVar23 ^ local_114;\n          uVar23 = uVar23 << 0xc | uVar23 >> 0x14;\n          x[0] = uVar29 + uVar23;\n          uVar20 = uVar20 ^ x[0];\n          local_11c = uVar20 << 8 | uVar20 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar23 = uVar23 ^ local_114;\n          x[5] = uVar23 << 7 | uVar23 >> 0x19;\n          uVar16 = uVar16 << 0x10 | uVar16 >> 0x10;\n          uVar17 = uVar17 + uVar16;\n          uVar25 = uVar25 ^ uVar17;\n          uVar20 = uVar25 << 0xc | uVar25 >> 0x14;\n          x[1] = uVar26 + uVar20;\n          uVar14 = uVar14 + uVar24;\n          uVar32 = uVar32 + uVar28;\n          uVar16 = uVar16 ^ x[1];\n          uVar11 = uVar11 ^ uVar14;\n          uVar15 = uVar15 ^ uVar32;\n          local_138 = local_138 + -2;\n          x[0xc] = uVar16 << 8 | uVar16 >> 0x18;\n          x[0xb] = uVar17 + x[0xc];\n          uVar20 = uVar20 ^ x[0xb];\n          x[6] = uVar20 << 7 | uVar20 >> 0x19;\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = uVar19 + uVar11;\n          uVar24 = uVar24 ^ uVar19;\n          uVar16 = uVar24 << 0xc | uVar24 >> 0x14;\n          x[2] = uVar14 + uVar16;\n          uVar11 = uVar11 ^ x[2];\n          x[0xd] = uVar11 << 8 | uVar11 >> 0x18;\n          x[8] = uVar19 + x[0xd];\n          uVar16 = uVar16 ^ x[8];\n          local_118 = uVar16 << 7 | uVar16 >> 0x19;\n          uVar11 = uVar15 << 0x10 | uVar15 >> 0x10;\n          uVar22 = uVar22 + uVar11;\n          uVar28 = uVar28 ^ uVar22;\n          uVar16 = uVar28 << 0xc | uVar28 >> 0x14;\n          x[3] = uVar32 + uVar16;\n          uVar11 = uVar11 ^ x[3];\n          x[0xe] = uVar11 << 8 | uVar11 >> 0x18;\n          x[9] = uVar22 + x[0xe];\n          uVar16 = uVar16 ^ x[9];\n          x[4] = uVar16 << 7 | uVar16 >> 0x19;\n          x[7] = local_118;\n          x[10] = local_114;\n          x[0xf] = local_11c;\n        } while (0 < local_138);\n      }\n      buf._0_4_ = x[0] + st->input[0];\n      uVar9 = buf._0_4_;\n      buf._8_4_ = st->input[2] + x[2];\n      buf._12_4_ = st->input[3] + x[3];\n      buf._4_4_ = st->input[1] + x[1];\n      buf._16_4_ = st->input[4] + x[4];\n      buf._20_4_ = st->input[5] + x[5];\n      buf._24_4_ = st->input[6] + x[6];\n      buf._28_4_ = st->input[7] + x[7];\n      buf._32_4_ = st->input[8] + x[8];\n      buf._36_4_ = st->input[9] + x[9];\n      buf._40_4_ = st->input[10] + x[10];\n      uVar27 = st->input[0xc] + 1;\n      buf._44_4_ = st->input[0xb] + x[0xb];\n      buf._48_4_ = x[0xc] + st->input[0xc];\n      buf._52_4_ = x[0xd] + st->input[0xd];\n      buf._56_4_ = st->input[0xe] + x[0xe];\n      buf._60_4_ = x[0xf] + st->input[0xf];\n      if (local_f0 == 8) {\n        st->input[0xc] = uVar27;\n        if (uVar27 == 0) {\n          uVar27 = st->input[0xd] + 1;\n          st->input[0xd] = uVar27;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        st->input[0xc] = uVar27;\njoined_r0x0018a0dd:\n        if (uVar27 == 0) {\n          iVar10 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar13 = 0;\n      do {\n        pbVar31[lVar13] = pbVar12[lVar13] ^ buf[lVar13];\n        pbVar31[lVar13 + 1] = pbVar12[lVar13 + 1] ^ buf[lVar13 + 1];\n        pbVar31[lVar13 + 2] = pbVar12[lVar13 + 2] ^ buf[lVar13 + 2];\n        pbVar31[lVar13 + 3] = pbVar12[lVar13 + 3] ^ buf[lVar13 + 3];\n        pbVar31[lVar13 + 4] = pbVar12[lVar13 + 4] ^ buf[lVar13 + 4];\n        pbVar31[lVar13 + 5] = pbVar12[lVar13 + 5] ^ buf[lVar13 + 5];\n        pbVar31[lVar13 + 6] = pbVar12[lVar13 + 6] ^ buf[lVar13 + 6];\n        pbVar31[lVar13 + 7] = pbVar12[lVar13 + 7] ^ buf[lVar13 + 7];\n        lVar13 = lVar13 + 8;\n      } while (lVar13 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = st->ivlen;\n    } while( true );\n  }" if (parenthesized_expression "(inlen != 0)" ( (binary_expression "inlen != 0" identifier != number_literal) )) (compound_statement "{\n    if (st == (chacha_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (out == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = st->ivlen;\n    if (local_f0 == 0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar18 = st->ksleft;\n    local_100 = inlen;\n    if (uVar18 != 0) {\n      uVar21 = inlen;\n      if (uVar18 <= inlen) {\n        uVar21 = uVar18;\n      }\n      uVar30 = 0;\n      uVar22 = (uint)uVar21 & 7;\n      if ((uVar21 & 7) == 0) goto LAB_001899d0;\n      if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }\n              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n              uVar30 = uVar30 + 1;\n              uVar18 = st->ksleft - 1;\n              st->ksleft = uVar18;\n            }\n            out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n            uVar30 = uVar30 + 1;\n            uVar18 = st->ksleft - 1;\n            st->ksleft = uVar18;\n          }\n          out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n          uVar30 = uVar30 + 1;\n          uVar18 = st->ksleft - 1;\n          st->ksleft = uVar18;\n        }\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar30 = uVar30 + 1;\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }\n      out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n      uVar18 = st->ksleft - 1;\n      st->ksleft = uVar18;\n      for (uVar30 = uVar30 + 1; uVar21 != uVar30; uVar30 = uVar30 + 8) {\nLAB_001899d0:\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 1] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 1];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 2] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 2];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 3] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 3];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 4] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 4];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 5] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 5];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 6] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 6];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 7] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 7];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }\n      local_100 = inlen - uVar21;\n      if (local_100 == 0) goto LAB_0018a411;\n      out = out + uVar21;\n      in = in + uVar21;\n      local_f0 = st->ivlen;\n      inlen = local_100;\n    }\n    do {\n      pbVar31 = out + (inlen - local_100);\n      local_138 = st->rounds;\n      pbVar12 = in + (inlen - local_100);\n      x[1] = (ulong32)((ulong)*(undefined8 *)st->input >> 0x20);\n      x[0] = (ulong32)*(undefined8 *)st->input;\n      x[3] = (ulong32)((ulong)*(undefined8 *)(st->input + 2) >> 0x20);\n      x[2] = (ulong32)*(undefined8 *)(st->input + 2);\n      x[5] = (ulong32)((ulong)*(undefined8 *)(st->input + 4) >> 0x20);\n      x[4] = (ulong32)*(undefined8 *)(st->input + 4);\n      x[7] = (ulong32)((ulong)*(undefined8 *)(st->input + 6) >> 0x20);\n      x[6] = (ulong32)*(undefined8 *)(st->input + 6);\n      x[9] = (ulong32)((ulong)*(undefined8 *)(st->input + 8) >> 0x20);\n      x[8] = (ulong32)*(undefined8 *)(st->input + 8);\n      x[0xb] = (ulong32)((ulong)*(undefined8 *)(st->input + 10) >> 0x20);\n      x[10] = (ulong32)*(undefined8 *)(st->input + 10);\n      x[0xd] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xc) >> 0x20);\n      x[0xc] = (ulong32)*(undefined8 *)(st->input + 0xc);\n      x[0xf] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xe) >> 0x20);\n      x[0xe] = (ulong32)*(undefined8 *)(st->input + 0xe);\n      if (0 < local_138) {\n        local_118 = x[7];\n        local_114 = x[10];\n        local_11c = x[0xf];\n        do {\n          uVar11 = x[0xc] ^ x[0] + x[4];\n          uVar22 = x[0xd] ^ x[1] + x[5];\n          uVar14 = x[0xe] ^ x[2] + x[6];\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = x[8] + uVar11;\n          uVar16 = x[4] ^ uVar19;\n          uVar17 = uVar16 << 0xc | uVar16 >> 0x14;\n          uVar29 = x[0] + x[4] + uVar17;\n          uVar11 = uVar11 ^ uVar29;\n          uVar16 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar19 = uVar19 + uVar16;\n          uVar17 = uVar17 ^ uVar19;\n          uVar28 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar11 = uVar22 << 0x10 | uVar22 >> 0x10;\n          uVar22 = x[9] + uVar11;\n          uVar17 = x[5] ^ uVar22;\n          uVar17 = uVar17 << 0xc | uVar17 >> 0x14;\n          uVar26 = x[1] + x[5] + uVar17;\n          uVar11 = uVar11 ^ uVar26;\n          uVar11 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar22 = uVar22 + uVar11;\n          uVar17 = uVar17 ^ uVar22;\n          uVar23 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar17 = uVar14 << 0x10 | uVar14 >> 0x10;\n          local_114 = local_114 + uVar17;\n          uVar14 = x[6] ^ local_114;\n          uVar24 = uVar14 << 0xc | uVar14 >> 0x14;\n          uVar14 = x[2] + x[6] + uVar24;\n          uVar17 = uVar17 ^ uVar14;\n          uVar15 = uVar17 << 8 | uVar17 >> 0x18;\n          local_114 = local_114 + uVar15;\n          uVar29 = uVar29 + uVar23;\n          uVar24 = uVar24 ^ local_114;\n          local_11c = local_11c ^ x[3] + local_118;\n          uVar25 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar26 = uVar26 + uVar25;\n          uVar20 = local_11c << 0x10 | local_11c >> 0x10;\n          uVar17 = x[0xb] + uVar20;\n          uVar16 = uVar16 ^ uVar26;\n          uVar24 = local_118 ^ uVar17;\n          uVar24 = uVar24 << 0xc | uVar24 >> 0x14;\n          uVar32 = x[3] + local_118 + uVar24;\n          uVar20 = uVar20 ^ uVar32;\n          uVar20 = uVar20 << 8 | uVar20 >> 0x18;\n          uVar17 = uVar17 + uVar20;\n          uVar20 = uVar20 ^ uVar29;\n          uVar24 = uVar24 ^ uVar17;\n          uVar24 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar20 = uVar20 << 0x10 | uVar20 >> 0x10;\n          local_114 = local_114 + uVar20;\n          uVar23 = uVar23 ^ local_114;\n          uVar23 = uVar23 << 0xc | uVar23 >> 0x14;\n          x[0] = uVar29 + uVar23;\n          uVar20 = uVar20 ^ x[0];\n          local_11c = uVar20 << 8 | uVar20 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar23 = uVar23 ^ local_114;\n          x[5] = uVar23 << 7 | uVar23 >> 0x19;\n          uVar16 = uVar16 << 0x10 | uVar16 >> 0x10;\n          uVar17 = uVar17 + uVar16;\n          uVar25 = uVar25 ^ uVar17;\n          uVar20 = uVar25 << 0xc | uVar25 >> 0x14;\n          x[1] = uVar26 + uVar20;\n          uVar14 = uVar14 + uVar24;\n          uVar32 = uVar32 + uVar28;\n          uVar16 = uVar16 ^ x[1];\n          uVar11 = uVar11 ^ uVar14;\n          uVar15 = uVar15 ^ uVar32;\n          local_138 = local_138 + -2;\n          x[0xc] = uVar16 << 8 | uVar16 >> 0x18;\n          x[0xb] = uVar17 + x[0xc];\n          uVar20 = uVar20 ^ x[0xb];\n          x[6] = uVar20 << 7 | uVar20 >> 0x19;\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = uVar19 + uVar11;\n          uVar24 = uVar24 ^ uVar19;\n          uVar16 = uVar24 << 0xc | uVar24 >> 0x14;\n          x[2] = uVar14 + uVar16;\n          uVar11 = uVar11 ^ x[2];\n          x[0xd] = uVar11 << 8 | uVar11 >> 0x18;\n          x[8] = uVar19 + x[0xd];\n          uVar16 = uVar16 ^ x[8];\n          local_118 = uVar16 << 7 | uVar16 >> 0x19;\n          uVar11 = uVar15 << 0x10 | uVar15 >> 0x10;\n          uVar22 = uVar22 + uVar11;\n          uVar28 = uVar28 ^ uVar22;\n          uVar16 = uVar28 << 0xc | uVar28 >> 0x14;\n          x[3] = uVar32 + uVar16;\n          uVar11 = uVar11 ^ x[3];\n          x[0xe] = uVar11 << 8 | uVar11 >> 0x18;\n          x[9] = uVar22 + x[0xe];\n          uVar16 = uVar16 ^ x[9];\n          x[4] = uVar16 << 7 | uVar16 >> 0x19;\n          x[7] = local_118;\n          x[10] = local_114;\n          x[0xf] = local_11c;\n        } while (0 < local_138);\n      }\n      buf._0_4_ = x[0] + st->input[0];\n      uVar9 = buf._0_4_;\n      buf._8_4_ = st->input[2] + x[2];\n      buf._12_4_ = st->input[3] + x[3];\n      buf._4_4_ = st->input[1] + x[1];\n      buf._16_4_ = st->input[4] + x[4];\n      buf._20_4_ = st->input[5] + x[5];\n      buf._24_4_ = st->input[6] + x[6];\n      buf._28_4_ = st->input[7] + x[7];\n      buf._32_4_ = st->input[8] + x[8];\n      buf._36_4_ = st->input[9] + x[9];\n      buf._40_4_ = st->input[10] + x[10];\n      uVar27 = st->input[0xc] + 1;\n      buf._44_4_ = st->input[0xb] + x[0xb];\n      buf._48_4_ = x[0xc] + st->input[0xc];\n      buf._52_4_ = x[0xd] + st->input[0xd];\n      buf._56_4_ = st->input[0xe] + x[0xe];\n      buf._60_4_ = x[0xf] + st->input[0xf];\n      if (local_f0 == 8) {\n        st->input[0xc] = uVar27;\n        if (uVar27 == 0) {\n          uVar27 = st->input[0xd] + 1;\n          st->input[0xd] = uVar27;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        st->input[0xc] = uVar27;\njoined_r0x0018a0dd:\n        if (uVar27 == 0) {\n          iVar10 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar13 = 0;\n      do {\n        pbVar31[lVar13] = pbVar12[lVar13] ^ buf[lVar13];\n        pbVar31[lVar13 + 1] = pbVar12[lVar13 + 1] ^ buf[lVar13 + 1];\n        pbVar31[lVar13 + 2] = pbVar12[lVar13 + 2] ^ buf[lVar13 + 2];\n        pbVar31[lVar13 + 3] = pbVar12[lVar13 + 3] ^ buf[lVar13 + 3];\n        pbVar31[lVar13 + 4] = pbVar12[lVar13 + 4] ^ buf[lVar13 + 4];\n        pbVar31[lVar13 + 5] = pbVar12[lVar13 + 5] ^ buf[lVar13 + 5];\n        pbVar31[lVar13 + 6] = pbVar12[lVar13 + 6] ^ buf[lVar13 + 6];\n        pbVar31[lVar13 + 7] = pbVar12[lVar13 + 7] ^ buf[lVar13 + 7];\n        lVar13 = lVar13 + 8;\n      } while (lVar13 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = st->ivlen;\n    } while( true );\n  }" { (if_statement "if (st == (chacha_state *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }" if (parenthesized_expression "(st == (chacha_state *)0x0)" ( (binary_expression "st == (chacha_state *)0x0" identifier == (cast_expression "(chacha_state *)0x0" ( (type_descriptor "chacha_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }" { comment (expression_statement "crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);" (call_expression "crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d)" identifier (argument_list "("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d)" ( (string_literal ""st != NULL"" " string_content ") , (string_literal ""src/stream/chacha/chacha_crypt.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }" if (parenthesized_expression "(in == (uchar *)0x0)" ( (binary_expression "in == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }" { comment (expression_statement "crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);" (call_expression "crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e)" identifier (argument_list "("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e)" ( (string_literal ""in != NULL"" " string_content ") , (string_literal ""src/stream/chacha/chacha_crypt.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (out == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }" if (parenthesized_expression "(out == (uchar *)0x0)" ( (binary_expression "out == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }" { comment (expression_statement "crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);" (call_expression "crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f)" identifier (argument_list "("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f)" ( (string_literal ""out != NULL"" " string_content ") , (string_literal ""src/stream/chacha/chacha_crypt.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "local_f0 = st->ivlen;" (assignment_expression "local_f0 = st->ivlen" identifier = (field_expression "st->ivlen" identifier -> field_identifier)) ;) (if_statement "if (local_f0 == 0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }" if (parenthesized_expression "(local_f0 == 0)" ( (binary_expression "local_f0 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }" { comment (expression_statement "crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);" (call_expression "crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40)" identifier (argument_list "("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40)" ( (string_literal ""st->ivlen != 0"" " string_content ") , (string_literal ""src/stream/chacha/chacha_crypt.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar18 = st->ksleft;" (assignment_expression "uVar18 = st->ksleft" identifier = (field_expression "st->ksleft" identifier -> field_identifier)) ;) (expression_statement "local_100 = inlen;" (assignment_expression "local_100 = inlen" identifier = identifier) ;) (if_statement "if (uVar18 != 0) {\n      uVar21 = inlen;\n      if (uVar18 <= inlen) {\n        uVar21 = uVar18;\n      }\n      uVar30 = 0;\n      uVar22 = (uint)uVar21 & 7;\n      if ((uVar21 & 7) == 0) goto LAB_001899d0;\n      if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }\n              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n              uVar30 = uVar30 + 1;\n              uVar18 = st->ksleft - 1;\n              st->ksleft = uVar18;\n            }\n            out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n            uVar30 = uVar30 + 1;\n            uVar18 = st->ksleft - 1;\n            st->ksleft = uVar18;\n          }\n          out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n          uVar30 = uVar30 + 1;\n          uVar18 = st->ksleft - 1;\n          st->ksleft = uVar18;\n        }\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar30 = uVar30 + 1;\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }\n      out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n      uVar18 = st->ksleft - 1;\n      st->ksleft = uVar18;\n      for (uVar30 = uVar30 + 1; uVar21 != uVar30; uVar30 = uVar30 + 8) {\nLAB_001899d0:\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 1] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 1];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 2] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 2];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 3] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 3];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 4] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 4];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 5] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 5];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 6] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 6];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 7] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 7];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }\n      local_100 = inlen - uVar21;\n      if (local_100 == 0) goto LAB_0018a411;\n      out = out + uVar21;\n      in = in + uVar21;\n      local_f0 = st->ivlen;\n      inlen = local_100;\n    }" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar21 = inlen;\n      if (uVar18 <= inlen) {\n        uVar21 = uVar18;\n      }\n      uVar30 = 0;\n      uVar22 = (uint)uVar21 & 7;\n      if ((uVar21 & 7) == 0) goto LAB_001899d0;\n      if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }\n              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n              uVar30 = uVar30 + 1;\n              uVar18 = st->ksleft - 1;\n              st->ksleft = uVar18;\n            }\n            out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n            uVar30 = uVar30 + 1;\n            uVar18 = st->ksleft - 1;\n            st->ksleft = uVar18;\n          }\n          out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n          uVar30 = uVar30 + 1;\n          uVar18 = st->ksleft - 1;\n          st->ksleft = uVar18;\n        }\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar30 = uVar30 + 1;\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }\n      out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n      uVar18 = st->ksleft - 1;\n      st->ksleft = uVar18;\n      for (uVar30 = uVar30 + 1; uVar21 != uVar30; uVar30 = uVar30 + 8) {\nLAB_001899d0:\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 1] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 1];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 2] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 2];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 3] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 3];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 4] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 4];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 5] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 5];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 6] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 6];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 7] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 7];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }\n      local_100 = inlen - uVar21;\n      if (local_100 == 0) goto LAB_0018a411;\n      out = out + uVar21;\n      in = in + uVar21;\n      local_f0 = st->ivlen;\n      inlen = local_100;\n    }" { (expression_statement "uVar21 = inlen;" (assignment_expression "uVar21 = inlen" identifier = identifier) ;) (if_statement "if (uVar18 <= inlen) {\n        uVar21 = uVar18;\n      }" if (parenthesized_expression "(uVar18 <= inlen)" ( (binary_expression "uVar18 <= inlen" identifier <= identifier) )) (compound_statement "{\n        uVar21 = uVar18;\n      }" { (expression_statement "uVar21 = uVar18;" (assignment_expression "uVar21 = uVar18" identifier = identifier) ;) })) (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "uVar22 = (uint)uVar21 & 7;" (assignment_expression "uVar22 = (uint)uVar21 & 7" identifier = (binary_expression "(uint)uVar21 & 7" (cast_expression "(uint)uVar21" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((uVar21 & 7) == 0) goto LAB_001899d0;" if (parenthesized_expression "((uVar21 & 7) == 0)" ( (binary_expression "(uVar21 & 7) == 0" (parenthesized_expression "(uVar21 & 7)" ( (binary_expression "uVar21 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001899d0;" goto statement_identifier ;)) (if_statement "if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }\n              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n              uVar30 = uVar30 + 1;\n              uVar18 = st->ksleft - 1;\n              st->ksleft = uVar18;\n            }\n            out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n            uVar30 = uVar30 + 1;\n            uVar18 = st->ksleft - 1;\n            st->ksleft = uVar18;\n          }\n          out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n          uVar30 = uVar30 + 1;\n          uVar18 = st->ksleft - 1;\n          st->ksleft = uVar18;\n        }\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar30 = uVar30 + 1;\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }" if (parenthesized_expression "(uVar22 != 1)" ( (binary_expression "uVar22 != 1" identifier != number_literal) )) (compound_statement "{\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }\n              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n              uVar30 = uVar30 + 1;\n              uVar18 = st->ksleft - 1;\n              st->ksleft = uVar18;\n            }\n            out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n            uVar30 = uVar30 + 1;\n            uVar18 = st->ksleft - 1;\n            st->ksleft = uVar18;\n          }\n          out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n          uVar30 = uVar30 + 1;\n          uVar18 = st->ksleft - 1;\n          st->ksleft = uVar18;\n        }\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar30 = uVar30 + 1;\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }" { (if_statement "if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }\n              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n              uVar30 = uVar30 + 1;\n              uVar18 = st->ksleft - 1;\n              st->ksleft = uVar18;\n            }\n            out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n            uVar30 = uVar30 + 1;\n            uVar18 = st->ksleft - 1;\n            st->ksleft = uVar18;\n          }\n          out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n          uVar30 = uVar30 + 1;\n          uVar18 = st->ksleft - 1;\n          st->ksleft = uVar18;\n        }" if (parenthesized_expression "(uVar22 != 2)" ( (binary_expression "uVar22 != 2" identifier != number_literal) )) (compound_statement "{\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }\n              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n              uVar30 = uVar30 + 1;\n              uVar18 = st->ksleft - 1;\n              st->ksleft = uVar18;\n            }\n            out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n            uVar30 = uVar30 + 1;\n            uVar18 = st->ksleft - 1;\n            st->ksleft = uVar18;\n          }\n          out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n          uVar30 = uVar30 + 1;\n          uVar18 = st->ksleft - 1;\n          st->ksleft = uVar18;\n        }" { (if_statement "if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }\n              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n              uVar30 = uVar30 + 1;\n              uVar18 = st->ksleft - 1;\n              st->ksleft = uVar18;\n            }\n            out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n            uVar30 = uVar30 + 1;\n            uVar18 = st->ksleft - 1;\n            st->ksleft = uVar18;\n          }" if (parenthesized_expression "(uVar22 != 3)" ( (binary_expression "uVar22 != 3" identifier != number_literal) )) (compound_statement "{\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }\n              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n              uVar30 = uVar30 + 1;\n              uVar18 = st->ksleft - 1;\n              st->ksleft = uVar18;\n            }\n            out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n            uVar30 = uVar30 + 1;\n            uVar18 = st->ksleft - 1;\n            st->ksleft = uVar18;\n          }" { (if_statement "if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }\n              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n              uVar30 = uVar30 + 1;\n              uVar18 = st->ksleft - 1;\n              st->ksleft = uVar18;\n            }" if (parenthesized_expression "(uVar22 != 4)" ( (binary_expression "uVar22 != 4" identifier != number_literal) )) (compound_statement "{\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }\n              out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n              uVar30 = uVar30 + 1;\n              uVar18 = st->ksleft - 1;\n              st->ksleft = uVar18;\n            }" { (if_statement "if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }" if (parenthesized_expression "(uVar22 != 5)" ( (binary_expression "uVar22 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }\n                uVar30 = (ulong)(uVar22 != 6);\n                out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n                uVar30 = uVar30 + 1;\n                uVar18 = st->ksleft - 1;\n                st->ksleft = uVar18;\n              }" { (if_statement "if (uVar22 != 6) {\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }" if (parenthesized_expression "(uVar22 != 6)" ( (binary_expression "uVar22 != 6" identifier != number_literal) )) (compound_statement "{\n                  *out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;\n                  uVar18 = st->ksleft - 1;\n                  st->ksleft = uVar18;\n                }" { (expression_statement "*out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in;" (assignment_expression "*out = *(byte *)((long)st + (0x80 - uVar18)) ^ *in" (pointer_expression "*out" * identifier) = (binary_expression "*(byte *)((long)st + (0x80 - uVar18)) ^ *in" (pointer_expression "*(byte *)((long)st + (0x80 - uVar18))" * (cast_expression "(byte *)((long)st + (0x80 - uVar18))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)st + (0x80 - uVar18))" ( (binary_expression "(long)st + (0x80 - uVar18)" (cast_expression "(long)st" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar18)" ( (binary_expression "0x80 - uVar18" number_literal - identifier) ))) )))) ^ (pointer_expression "*in" * identifier))) ;) (expression_statement "uVar18 = st->ksleft - 1;" (assignment_expression "uVar18 = st->ksleft - 1" identifier = (binary_expression "st->ksleft - 1" (field_expression "st->ksleft" identifier -> field_identifier) - number_literal)) ;) (expression_statement "st->ksleft = uVar18;" (assignment_expression "st->ksleft = uVar18" (field_expression "st->ksleft" identifier -> field_identifier) = identifier) ;) })) (expression_statement "uVar30 = (ulong)(uVar22 != 6);" (assignment_expression "uVar30 = (ulong)(uVar22 != 6)" identifier = (call_expression "(ulong)(uVar22 != 6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar22 != 6)" ( (binary_expression "uVar22 != 6" identifier != number_literal) )))) ;) (expression_statement "out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];" (assignment_expression "out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30]" (subscript_expression "out[uVar30]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30]" (pointer_expression "*(byte *)((long)st + (0x80 - uVar18))" * (cast_expression "(byte *)((long)st + (0x80 - uVar18))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)st + (0x80 - uVar18))" ( (binary_expression "(long)st + (0x80 - uVar18)" (cast_expression "(long)st" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar18)" ( (binary_expression "0x80 - uVar18" number_literal - identifier) ))) )))) ^ (subscript_expression "in[uVar30]" identifier [ identifier ]))) ;) (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "uVar18 = st->ksleft - 1;" (assignment_expression "uVar18 = st->ksleft - 1" identifier = (binary_expression "st->ksleft - 1" (field_expression "st->ksleft" identifier -> field_identifier) - number_literal)) ;) (expression_statement "st->ksleft = uVar18;" (assignment_expression "st->ksleft = uVar18" (field_expression "st->ksleft" identifier -> field_identifier) = identifier) ;) })) (expression_statement "out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];" (assignment_expression "out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30]" (subscript_expression "out[uVar30]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30]" (pointer_expression "*(byte *)((long)st + (0x80 - uVar18))" * (cast_expression "(byte *)((long)st + (0x80 - uVar18))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)st + (0x80 - uVar18))" ( (binary_expression "(long)st + (0x80 - uVar18)" (cast_expression "(long)st" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar18)" ( (binary_expression "0x80 - uVar18" number_literal - identifier) ))) )))) ^ (subscript_expression "in[uVar30]" identifier [ identifier ]))) ;) (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "uVar18 = st->ksleft - 1;" (assignment_expression "uVar18 = st->ksleft - 1" identifier = (binary_expression "st->ksleft - 1" (field_expression "st->ksleft" identifier -> field_identifier) - number_literal)) ;) (expression_statement "st->ksleft = uVar18;" (assignment_expression "st->ksleft = uVar18" (field_expression "st->ksleft" identifier -> field_identifier) = identifier) ;) })) (expression_statement "out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];" (assignment_expression "out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30]" (subscript_expression "out[uVar30]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30]" (pointer_expression "*(byte *)((long)st + (0x80 - uVar18))" * (cast_expression "(byte *)((long)st + (0x80 - uVar18))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)st + (0x80 - uVar18))" ( (binary_expression "(long)st + (0x80 - uVar18)" (cast_expression "(long)st" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar18)" ( (binary_expression "0x80 - uVar18" number_literal - identifier) ))) )))) ^ (subscript_expression "in[uVar30]" identifier [ identifier ]))) ;) (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "uVar18 = st->ksleft - 1;" (assignment_expression "uVar18 = st->ksleft - 1" identifier = (binary_expression "st->ksleft - 1" (field_expression "st->ksleft" identifier -> field_identifier) - number_literal)) ;) (expression_statement "st->ksleft = uVar18;" (assignment_expression "st->ksleft = uVar18" (field_expression "st->ksleft" identifier -> field_identifier) = identifier) ;) })) (expression_statement "out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];" (assignment_expression "out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30]" (subscript_expression "out[uVar30]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30]" (pointer_expression "*(byte *)((long)st + (0x80 - uVar18))" * (cast_expression "(byte *)((long)st + (0x80 - uVar18))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)st + (0x80 - uVar18))" ( (binary_expression "(long)st + (0x80 - uVar18)" (cast_expression "(long)st" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar18)" ( (binary_expression "0x80 - uVar18" number_literal - identifier) ))) )))) ^ (subscript_expression "in[uVar30]" identifier [ identifier ]))) ;) (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "uVar18 = st->ksleft - 1;" (assignment_expression "uVar18 = st->ksleft - 1" identifier = (binary_expression "st->ksleft - 1" (field_expression "st->ksleft" identifier -> field_identifier) - number_literal)) ;) (expression_statement "st->ksleft = uVar18;" (assignment_expression "st->ksleft = uVar18" (field_expression "st->ksleft" identifier -> field_identifier) = identifier) ;) })) (expression_statement "out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];" (assignment_expression "out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30]" (subscript_expression "out[uVar30]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30]" (pointer_expression "*(byte *)((long)st + (0x80 - uVar18))" * (cast_expression "(byte *)((long)st + (0x80 - uVar18))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)st + (0x80 - uVar18))" ( (binary_expression "(long)st + (0x80 - uVar18)" (cast_expression "(long)st" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar18)" ( (binary_expression "0x80 - uVar18" number_literal - identifier) ))) )))) ^ (subscript_expression "in[uVar30]" identifier [ identifier ]))) ;) (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "uVar18 = st->ksleft - 1;" (assignment_expression "uVar18 = st->ksleft - 1" identifier = (binary_expression "st->ksleft - 1" (field_expression "st->ksleft" identifier -> field_identifier) - number_literal)) ;) (expression_statement "st->ksleft = uVar18;" (assignment_expression "st->ksleft = uVar18" (field_expression "st->ksleft" identifier -> field_identifier) = identifier) ;) })) (expression_statement "out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];" (assignment_expression "out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30]" (subscript_expression "out[uVar30]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30]" (pointer_expression "*(byte *)((long)st + (0x80 - uVar18))" * (cast_expression "(byte *)((long)st + (0x80 - uVar18))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)st + (0x80 - uVar18))" ( (binary_expression "(long)st + (0x80 - uVar18)" (cast_expression "(long)st" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar18)" ( (binary_expression "0x80 - uVar18" number_literal - identifier) ))) )))) ^ (subscript_expression "in[uVar30]" identifier [ identifier ]))) ;) (expression_statement "uVar18 = st->ksleft - 1;" (assignment_expression "uVar18 = st->ksleft - 1" identifier = (binary_expression "st->ksleft - 1" (field_expression "st->ksleft" identifier -> field_identifier) - number_literal)) ;) (expression_statement "st->ksleft = uVar18;" (assignment_expression "st->ksleft = uVar18" (field_expression "st->ksleft" identifier -> field_identifier) = identifier) ;) (for_statement "for (uVar30 = uVar30 + 1; uVar21 != uVar30; uVar30 = uVar30 + 8) {\nLAB_001899d0:\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 1] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 1];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 2] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 2];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 3] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 3];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 4] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 4];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 5] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 5];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 6] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 6];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 7] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 7];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }" for ( (assignment_expression "uVar30 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ; (binary_expression "uVar21 != uVar30" identifier != identifier) ; (assignment_expression "uVar30 = uVar30 + 8" identifier = (binary_expression "uVar30 + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_001899d0:\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 1] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 1];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 2] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 2];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 3] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 3];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 4] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 4];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 5] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 5];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 6] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 6];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n        out[uVar30 + 7] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 7];\n        uVar18 = st->ksleft - 1;\n        st->ksleft = uVar18;\n      }" { (labeled_statement "LAB_001899d0:\n        out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];" statement_identifier : (expression_statement "out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30];" (assignment_expression "out[uVar30] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30]" (subscript_expression "out[uVar30]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30]" (pointer_expression "*(byte *)((long)st + (0x80 - uVar18))" * (cast_expression "(byte *)((long)st + (0x80 - uVar18))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)st + (0x80 - uVar18))" ( (binary_expression "(long)st + (0x80 - uVar18)" (cast_expression "(long)st" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar18)" ( (binary_expression "0x80 - uVar18" number_literal - identifier) ))) )))) ^ (subscript_expression "in[uVar30]" identifier [ identifier ]))) ;)) (expression_statement "uVar18 = st->ksleft - 1;" (assignment_expression "uVar18 = st->ksleft - 1" identifier = (binary_expression "st->ksleft - 1" (field_expression "st->ksleft" identifier -> field_identifier) - number_literal)) ;) (expression_statement "st->ksleft = uVar18;" (assignment_expression "st->ksleft = uVar18" (field_expression "st->ksleft" identifier -> field_identifier) = identifier) ;) (expression_statement "out[uVar30 + 1] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 1];" (assignment_expression "out[uVar30 + 1] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 1]" (subscript_expression "out[uVar30 + 1]" identifier [ (binary_expression "uVar30 + 1" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 1]" (pointer_expression "*(byte *)((long)st + (0x80 - uVar18))" * (cast_expression "(byte *)((long)st + (0x80 - uVar18))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)st + (0x80 - uVar18))" ( (binary_expression "(long)st + (0x80 - uVar18)" (cast_expression "(long)st" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar18)" ( (binary_expression "0x80 - uVar18" number_literal - identifier) ))) )))) ^ (subscript_expression "in[uVar30 + 1]" identifier [ (binary_expression "uVar30 + 1" identifier + number_literal) ]))) ;) (expression_statement "uVar18 = st->ksleft - 1;" (assignment_expression "uVar18 = st->ksleft - 1" identifier = (binary_expression "st->ksleft - 1" (field_expression "st->ksleft" identifier -> field_identifier) - number_literal)) ;) (expression_statement "st->ksleft = uVar18;" (assignment_expression "st->ksleft = uVar18" (field_expression "st->ksleft" identifier -> field_identifier) = identifier) ;) (expression_statement "out[uVar30 + 2] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 2];" (assignment_expression "out[uVar30 + 2] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 2]" (subscript_expression "out[uVar30 + 2]" identifier [ (binary_expression "uVar30 + 2" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 2]" (pointer_expression "*(byte *)((long)st + (0x80 - uVar18))" * (cast_expression "(byte *)((long)st + (0x80 - uVar18))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)st + (0x80 - uVar18))" ( (binary_expression "(long)st + (0x80 - uVar18)" (cast_expression "(long)st" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar18)" ( (binary_expression "0x80 - uVar18" number_literal - identifier) ))) )))) ^ (subscript_expression "in[uVar30 + 2]" identifier [ (binary_expression "uVar30 + 2" identifier + number_literal) ]))) ;) (expression_statement "uVar18 = st->ksleft - 1;" (assignment_expression "uVar18 = st->ksleft - 1" identifier = (binary_expression "st->ksleft - 1" (field_expression "st->ksleft" identifier -> field_identifier) - number_literal)) ;) (expression_statement "st->ksleft = uVar18;" (assignment_expression "st->ksleft = uVar18" (field_expression "st->ksleft" identifier -> field_identifier) = identifier) ;) (expression_statement "out[uVar30 + 3] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 3];" (assignment_expression "out[uVar30 + 3] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 3]" (subscript_expression "out[uVar30 + 3]" identifier [ (binary_expression "uVar30 + 3" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 3]" (pointer_expression "*(byte *)((long)st + (0x80 - uVar18))" * (cast_expression "(byte *)((long)st + (0x80 - uVar18))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)st + (0x80 - uVar18))" ( (binary_expression "(long)st + (0x80 - uVar18)" (cast_expression "(long)st" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar18)" ( (binary_expression "0x80 - uVar18" number_literal - identifier) ))) )))) ^ (subscript_expression "in[uVar30 + 3]" identifier [ (binary_expression "uVar30 + 3" identifier + number_literal) ]))) ;) (expression_statement "uVar18 = st->ksleft - 1;" (assignment_expression "uVar18 = st->ksleft - 1" identifier = (binary_expression "st->ksleft - 1" (field_expression "st->ksleft" identifier -> field_identifier) - number_literal)) ;) (expression_statement "st->ksleft = uVar18;" (assignment_expression "st->ksleft = uVar18" (field_expression "st->ksleft" identifier -> field_identifier) = identifier) ;) (expression_statement "out[uVar30 + 4] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 4];" (assignment_expression "out[uVar30 + 4] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 4]" (subscript_expression "out[uVar30 + 4]" identifier [ (binary_expression "uVar30 + 4" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 4]" (pointer_expression "*(byte *)((long)st + (0x80 - uVar18))" * (cast_expression "(byte *)((long)st + (0x80 - uVar18))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)st + (0x80 - uVar18))" ( (binary_expression "(long)st + (0x80 - uVar18)" (cast_expression "(long)st" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar18)" ( (binary_expression "0x80 - uVar18" number_literal - identifier) ))) )))) ^ (subscript_expression "in[uVar30 + 4]" identifier [ (binary_expression "uVar30 + 4" identifier + number_literal) ]))) ;) (expression_statement "uVar18 = st->ksleft - 1;" (assignment_expression "uVar18 = st->ksleft - 1" identifier = (binary_expression "st->ksleft - 1" (field_expression "st->ksleft" identifier -> field_identifier) - number_literal)) ;) (expression_statement "st->ksleft = uVar18;" (assignment_expression "st->ksleft = uVar18" (field_expression "st->ksleft" identifier -> field_identifier) = identifier) ;) (expression_statement "out[uVar30 + 5] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 5];" (assignment_expression "out[uVar30 + 5] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 5]" (subscript_expression "out[uVar30 + 5]" identifier [ (binary_expression "uVar30 + 5" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 5]" (pointer_expression "*(byte *)((long)st + (0x80 - uVar18))" * (cast_expression "(byte *)((long)st + (0x80 - uVar18))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)st + (0x80 - uVar18))" ( (binary_expression "(long)st + (0x80 - uVar18)" (cast_expression "(long)st" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar18)" ( (binary_expression "0x80 - uVar18" number_literal - identifier) ))) )))) ^ (subscript_expression "in[uVar30 + 5]" identifier [ (binary_expression "uVar30 + 5" identifier + number_literal) ]))) ;) (expression_statement "uVar18 = st->ksleft - 1;" (assignment_expression "uVar18 = st->ksleft - 1" identifier = (binary_expression "st->ksleft - 1" (field_expression "st->ksleft" identifier -> field_identifier) - number_literal)) ;) (expression_statement "st->ksleft = uVar18;" (assignment_expression "st->ksleft = uVar18" (field_expression "st->ksleft" identifier -> field_identifier) = identifier) ;) (expression_statement "out[uVar30 + 6] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 6];" (assignment_expression "out[uVar30 + 6] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 6]" (subscript_expression "out[uVar30 + 6]" identifier [ (binary_expression "uVar30 + 6" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 6]" (pointer_expression "*(byte *)((long)st + (0x80 - uVar18))" * (cast_expression "(byte *)((long)st + (0x80 - uVar18))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)st + (0x80 - uVar18))" ( (binary_expression "(long)st + (0x80 - uVar18)" (cast_expression "(long)st" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar18)" ( (binary_expression "0x80 - uVar18" number_literal - identifier) ))) )))) ^ (subscript_expression "in[uVar30 + 6]" identifier [ (binary_expression "uVar30 + 6" identifier + number_literal) ]))) ;) (expression_statement "uVar18 = st->ksleft - 1;" (assignment_expression "uVar18 = st->ksleft - 1" identifier = (binary_expression "st->ksleft - 1" (field_expression "st->ksleft" identifier -> field_identifier) - number_literal)) ;) (expression_statement "st->ksleft = uVar18;" (assignment_expression "st->ksleft = uVar18" (field_expression "st->ksleft" identifier -> field_identifier) = identifier) ;) (expression_statement "out[uVar30 + 7] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 7];" (assignment_expression "out[uVar30 + 7] = *(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 7]" (subscript_expression "out[uVar30 + 7]" identifier [ (binary_expression "uVar30 + 7" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)st + (0x80 - uVar18)) ^ in[uVar30 + 7]" (pointer_expression "*(byte *)((long)st + (0x80 - uVar18))" * (cast_expression "(byte *)((long)st + (0x80 - uVar18))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)st + (0x80 - uVar18))" ( (binary_expression "(long)st + (0x80 - uVar18)" (cast_expression "(long)st" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar18)" ( (binary_expression "0x80 - uVar18" number_literal - identifier) ))) )))) ^ (subscript_expression "in[uVar30 + 7]" identifier [ (binary_expression "uVar30 + 7" identifier + number_literal) ]))) ;) (expression_statement "uVar18 = st->ksleft - 1;" (assignment_expression "uVar18 = st->ksleft - 1" identifier = (binary_expression "st->ksleft - 1" (field_expression "st->ksleft" identifier -> field_identifier) - number_literal)) ;) (expression_statement "st->ksleft = uVar18;" (assignment_expression "st->ksleft = uVar18" (field_expression "st->ksleft" identifier -> field_identifier) = identifier) ;) })) (expression_statement "local_100 = inlen - uVar21;" (assignment_expression "local_100 = inlen - uVar21" identifier = (binary_expression "inlen - uVar21" identifier - identifier)) ;) (if_statement "if (local_100 == 0) goto LAB_0018a411;" if (parenthesized_expression "(local_100 == 0)" ( (binary_expression "local_100 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0018a411;" goto statement_identifier ;)) (expression_statement "out = out + uVar21;" (assignment_expression "out = out + uVar21" identifier = (binary_expression "out + uVar21" identifier + identifier)) ;) (expression_statement "in = in + uVar21;" (assignment_expression "in = in + uVar21" identifier = (binary_expression "in + uVar21" identifier + identifier)) ;) (expression_statement "local_f0 = st->ivlen;" (assignment_expression "local_f0 = st->ivlen" identifier = (field_expression "st->ivlen" identifier -> field_identifier)) ;) (expression_statement "inlen = local_100;" (assignment_expression "inlen = local_100" identifier = identifier) ;) })) (do_statement "do {\n      pbVar31 = out + (inlen - local_100);\n      local_138 = st->rounds;\n      pbVar12 = in + (inlen - local_100);\n      x[1] = (ulong32)((ulong)*(undefined8 *)st->input >> 0x20);\n      x[0] = (ulong32)*(undefined8 *)st->input;\n      x[3] = (ulong32)((ulong)*(undefined8 *)(st->input + 2) >> 0x20);\n      x[2] = (ulong32)*(undefined8 *)(st->input + 2);\n      x[5] = (ulong32)((ulong)*(undefined8 *)(st->input + 4) >> 0x20);\n      x[4] = (ulong32)*(undefined8 *)(st->input + 4);\n      x[7] = (ulong32)((ulong)*(undefined8 *)(st->input + 6) >> 0x20);\n      x[6] = (ulong32)*(undefined8 *)(st->input + 6);\n      x[9] = (ulong32)((ulong)*(undefined8 *)(st->input + 8) >> 0x20);\n      x[8] = (ulong32)*(undefined8 *)(st->input + 8);\n      x[0xb] = (ulong32)((ulong)*(undefined8 *)(st->input + 10) >> 0x20);\n      x[10] = (ulong32)*(undefined8 *)(st->input + 10);\n      x[0xd] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xc) >> 0x20);\n      x[0xc] = (ulong32)*(undefined8 *)(st->input + 0xc);\n      x[0xf] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xe) >> 0x20);\n      x[0xe] = (ulong32)*(undefined8 *)(st->input + 0xe);\n      if (0 < local_138) {\n        local_118 = x[7];\n        local_114 = x[10];\n        local_11c = x[0xf];\n        do {\n          uVar11 = x[0xc] ^ x[0] + x[4];\n          uVar22 = x[0xd] ^ x[1] + x[5];\n          uVar14 = x[0xe] ^ x[2] + x[6];\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = x[8] + uVar11;\n          uVar16 = x[4] ^ uVar19;\n          uVar17 = uVar16 << 0xc | uVar16 >> 0x14;\n          uVar29 = x[0] + x[4] + uVar17;\n          uVar11 = uVar11 ^ uVar29;\n          uVar16 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar19 = uVar19 + uVar16;\n          uVar17 = uVar17 ^ uVar19;\n          uVar28 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar11 = uVar22 << 0x10 | uVar22 >> 0x10;\n          uVar22 = x[9] + uVar11;\n          uVar17 = x[5] ^ uVar22;\n          uVar17 = uVar17 << 0xc | uVar17 >> 0x14;\n          uVar26 = x[1] + x[5] + uVar17;\n          uVar11 = uVar11 ^ uVar26;\n          uVar11 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar22 = uVar22 + uVar11;\n          uVar17 = uVar17 ^ uVar22;\n          uVar23 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar17 = uVar14 << 0x10 | uVar14 >> 0x10;\n          local_114 = local_114 + uVar17;\n          uVar14 = x[6] ^ local_114;\n          uVar24 = uVar14 << 0xc | uVar14 >> 0x14;\n          uVar14 = x[2] + x[6] + uVar24;\n          uVar17 = uVar17 ^ uVar14;\n          uVar15 = uVar17 << 8 | uVar17 >> 0x18;\n          local_114 = local_114 + uVar15;\n          uVar29 = uVar29 + uVar23;\n          uVar24 = uVar24 ^ local_114;\n          local_11c = local_11c ^ x[3] + local_118;\n          uVar25 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar26 = uVar26 + uVar25;\n          uVar20 = local_11c << 0x10 | local_11c >> 0x10;\n          uVar17 = x[0xb] + uVar20;\n          uVar16 = uVar16 ^ uVar26;\n          uVar24 = local_118 ^ uVar17;\n          uVar24 = uVar24 << 0xc | uVar24 >> 0x14;\n          uVar32 = x[3] + local_118 + uVar24;\n          uVar20 = uVar20 ^ uVar32;\n          uVar20 = uVar20 << 8 | uVar20 >> 0x18;\n          uVar17 = uVar17 + uVar20;\n          uVar20 = uVar20 ^ uVar29;\n          uVar24 = uVar24 ^ uVar17;\n          uVar24 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar20 = uVar20 << 0x10 | uVar20 >> 0x10;\n          local_114 = local_114 + uVar20;\n          uVar23 = uVar23 ^ local_114;\n          uVar23 = uVar23 << 0xc | uVar23 >> 0x14;\n          x[0] = uVar29 + uVar23;\n          uVar20 = uVar20 ^ x[0];\n          local_11c = uVar20 << 8 | uVar20 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar23 = uVar23 ^ local_114;\n          x[5] = uVar23 << 7 | uVar23 >> 0x19;\n          uVar16 = uVar16 << 0x10 | uVar16 >> 0x10;\n          uVar17 = uVar17 + uVar16;\n          uVar25 = uVar25 ^ uVar17;\n          uVar20 = uVar25 << 0xc | uVar25 >> 0x14;\n          x[1] = uVar26 + uVar20;\n          uVar14 = uVar14 + uVar24;\n          uVar32 = uVar32 + uVar28;\n          uVar16 = uVar16 ^ x[1];\n          uVar11 = uVar11 ^ uVar14;\n          uVar15 = uVar15 ^ uVar32;\n          local_138 = local_138 + -2;\n          x[0xc] = uVar16 << 8 | uVar16 >> 0x18;\n          x[0xb] = uVar17 + x[0xc];\n          uVar20 = uVar20 ^ x[0xb];\n          x[6] = uVar20 << 7 | uVar20 >> 0x19;\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = uVar19 + uVar11;\n          uVar24 = uVar24 ^ uVar19;\n          uVar16 = uVar24 << 0xc | uVar24 >> 0x14;\n          x[2] = uVar14 + uVar16;\n          uVar11 = uVar11 ^ x[2];\n          x[0xd] = uVar11 << 8 | uVar11 >> 0x18;\n          x[8] = uVar19 + x[0xd];\n          uVar16 = uVar16 ^ x[8];\n          local_118 = uVar16 << 7 | uVar16 >> 0x19;\n          uVar11 = uVar15 << 0x10 | uVar15 >> 0x10;\n          uVar22 = uVar22 + uVar11;\n          uVar28 = uVar28 ^ uVar22;\n          uVar16 = uVar28 << 0xc | uVar28 >> 0x14;\n          x[3] = uVar32 + uVar16;\n          uVar11 = uVar11 ^ x[3];\n          x[0xe] = uVar11 << 8 | uVar11 >> 0x18;\n          x[9] = uVar22 + x[0xe];\n          uVar16 = uVar16 ^ x[9];\n          x[4] = uVar16 << 7 | uVar16 >> 0x19;\n          x[7] = local_118;\n          x[10] = local_114;\n          x[0xf] = local_11c;\n        } while (0 < local_138);\n      }\n      buf._0_4_ = x[0] + st->input[0];\n      uVar9 = buf._0_4_;\n      buf._8_4_ = st->input[2] + x[2];\n      buf._12_4_ = st->input[3] + x[3];\n      buf._4_4_ = st->input[1] + x[1];\n      buf._16_4_ = st->input[4] + x[4];\n      buf._20_4_ = st->input[5] + x[5];\n      buf._24_4_ = st->input[6] + x[6];\n      buf._28_4_ = st->input[7] + x[7];\n      buf._32_4_ = st->input[8] + x[8];\n      buf._36_4_ = st->input[9] + x[9];\n      buf._40_4_ = st->input[10] + x[10];\n      uVar27 = st->input[0xc] + 1;\n      buf._44_4_ = st->input[0xb] + x[0xb];\n      buf._48_4_ = x[0xc] + st->input[0xc];\n      buf._52_4_ = x[0xd] + st->input[0xd];\n      buf._56_4_ = st->input[0xe] + x[0xe];\n      buf._60_4_ = x[0xf] + st->input[0xf];\n      if (local_f0 == 8) {\n        st->input[0xc] = uVar27;\n        if (uVar27 == 0) {\n          uVar27 = st->input[0xd] + 1;\n          st->input[0xd] = uVar27;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        st->input[0xc] = uVar27;\njoined_r0x0018a0dd:\n        if (uVar27 == 0) {\n          iVar10 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar13 = 0;\n      do {\n        pbVar31[lVar13] = pbVar12[lVar13] ^ buf[lVar13];\n        pbVar31[lVar13 + 1] = pbVar12[lVar13 + 1] ^ buf[lVar13 + 1];\n        pbVar31[lVar13 + 2] = pbVar12[lVar13 + 2] ^ buf[lVar13 + 2];\n        pbVar31[lVar13 + 3] = pbVar12[lVar13 + 3] ^ buf[lVar13 + 3];\n        pbVar31[lVar13 + 4] = pbVar12[lVar13 + 4] ^ buf[lVar13 + 4];\n        pbVar31[lVar13 + 5] = pbVar12[lVar13 + 5] ^ buf[lVar13 + 5];\n        pbVar31[lVar13 + 6] = pbVar12[lVar13 + 6] ^ buf[lVar13 + 6];\n        pbVar31[lVar13 + 7] = pbVar12[lVar13 + 7] ^ buf[lVar13 + 7];\n        lVar13 = lVar13 + 8;\n      } while (lVar13 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = st->ivlen;\n    } while( true );" do (compound_statement "{\n      pbVar31 = out + (inlen - local_100);\n      local_138 = st->rounds;\n      pbVar12 = in + (inlen - local_100);\n      x[1] = (ulong32)((ulong)*(undefined8 *)st->input >> 0x20);\n      x[0] = (ulong32)*(undefined8 *)st->input;\n      x[3] = (ulong32)((ulong)*(undefined8 *)(st->input + 2) >> 0x20);\n      x[2] = (ulong32)*(undefined8 *)(st->input + 2);\n      x[5] = (ulong32)((ulong)*(undefined8 *)(st->input + 4) >> 0x20);\n      x[4] = (ulong32)*(undefined8 *)(st->input + 4);\n      x[7] = (ulong32)((ulong)*(undefined8 *)(st->input + 6) >> 0x20);\n      x[6] = (ulong32)*(undefined8 *)(st->input + 6);\n      x[9] = (ulong32)((ulong)*(undefined8 *)(st->input + 8) >> 0x20);\n      x[8] = (ulong32)*(undefined8 *)(st->input + 8);\n      x[0xb] = (ulong32)((ulong)*(undefined8 *)(st->input + 10) >> 0x20);\n      x[10] = (ulong32)*(undefined8 *)(st->input + 10);\n      x[0xd] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xc) >> 0x20);\n      x[0xc] = (ulong32)*(undefined8 *)(st->input + 0xc);\n      x[0xf] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xe) >> 0x20);\n      x[0xe] = (ulong32)*(undefined8 *)(st->input + 0xe);\n      if (0 < local_138) {\n        local_118 = x[7];\n        local_114 = x[10];\n        local_11c = x[0xf];\n        do {\n          uVar11 = x[0xc] ^ x[0] + x[4];\n          uVar22 = x[0xd] ^ x[1] + x[5];\n          uVar14 = x[0xe] ^ x[2] + x[6];\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = x[8] + uVar11;\n          uVar16 = x[4] ^ uVar19;\n          uVar17 = uVar16 << 0xc | uVar16 >> 0x14;\n          uVar29 = x[0] + x[4] + uVar17;\n          uVar11 = uVar11 ^ uVar29;\n          uVar16 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar19 = uVar19 + uVar16;\n          uVar17 = uVar17 ^ uVar19;\n          uVar28 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar11 = uVar22 << 0x10 | uVar22 >> 0x10;\n          uVar22 = x[9] + uVar11;\n          uVar17 = x[5] ^ uVar22;\n          uVar17 = uVar17 << 0xc | uVar17 >> 0x14;\n          uVar26 = x[1] + x[5] + uVar17;\n          uVar11 = uVar11 ^ uVar26;\n          uVar11 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar22 = uVar22 + uVar11;\n          uVar17 = uVar17 ^ uVar22;\n          uVar23 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar17 = uVar14 << 0x10 | uVar14 >> 0x10;\n          local_114 = local_114 + uVar17;\n          uVar14 = x[6] ^ local_114;\n          uVar24 = uVar14 << 0xc | uVar14 >> 0x14;\n          uVar14 = x[2] + x[6] + uVar24;\n          uVar17 = uVar17 ^ uVar14;\n          uVar15 = uVar17 << 8 | uVar17 >> 0x18;\n          local_114 = local_114 + uVar15;\n          uVar29 = uVar29 + uVar23;\n          uVar24 = uVar24 ^ local_114;\n          local_11c = local_11c ^ x[3] + local_118;\n          uVar25 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar26 = uVar26 + uVar25;\n          uVar20 = local_11c << 0x10 | local_11c >> 0x10;\n          uVar17 = x[0xb] + uVar20;\n          uVar16 = uVar16 ^ uVar26;\n          uVar24 = local_118 ^ uVar17;\n          uVar24 = uVar24 << 0xc | uVar24 >> 0x14;\n          uVar32 = x[3] + local_118 + uVar24;\n          uVar20 = uVar20 ^ uVar32;\n          uVar20 = uVar20 << 8 | uVar20 >> 0x18;\n          uVar17 = uVar17 + uVar20;\n          uVar20 = uVar20 ^ uVar29;\n          uVar24 = uVar24 ^ uVar17;\n          uVar24 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar20 = uVar20 << 0x10 | uVar20 >> 0x10;\n          local_114 = local_114 + uVar20;\n          uVar23 = uVar23 ^ local_114;\n          uVar23 = uVar23 << 0xc | uVar23 >> 0x14;\n          x[0] = uVar29 + uVar23;\n          uVar20 = uVar20 ^ x[0];\n          local_11c = uVar20 << 8 | uVar20 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar23 = uVar23 ^ local_114;\n          x[5] = uVar23 << 7 | uVar23 >> 0x19;\n          uVar16 = uVar16 << 0x10 | uVar16 >> 0x10;\n          uVar17 = uVar17 + uVar16;\n          uVar25 = uVar25 ^ uVar17;\n          uVar20 = uVar25 << 0xc | uVar25 >> 0x14;\n          x[1] = uVar26 + uVar20;\n          uVar14 = uVar14 + uVar24;\n          uVar32 = uVar32 + uVar28;\n          uVar16 = uVar16 ^ x[1];\n          uVar11 = uVar11 ^ uVar14;\n          uVar15 = uVar15 ^ uVar32;\n          local_138 = local_138 + -2;\n          x[0xc] = uVar16 << 8 | uVar16 >> 0x18;\n          x[0xb] = uVar17 + x[0xc];\n          uVar20 = uVar20 ^ x[0xb];\n          x[6] = uVar20 << 7 | uVar20 >> 0x19;\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = uVar19 + uVar11;\n          uVar24 = uVar24 ^ uVar19;\n          uVar16 = uVar24 << 0xc | uVar24 >> 0x14;\n          x[2] = uVar14 + uVar16;\n          uVar11 = uVar11 ^ x[2];\n          x[0xd] = uVar11 << 8 | uVar11 >> 0x18;\n          x[8] = uVar19 + x[0xd];\n          uVar16 = uVar16 ^ x[8];\n          local_118 = uVar16 << 7 | uVar16 >> 0x19;\n          uVar11 = uVar15 << 0x10 | uVar15 >> 0x10;\n          uVar22 = uVar22 + uVar11;\n          uVar28 = uVar28 ^ uVar22;\n          uVar16 = uVar28 << 0xc | uVar28 >> 0x14;\n          x[3] = uVar32 + uVar16;\n          uVar11 = uVar11 ^ x[3];\n          x[0xe] = uVar11 << 8 | uVar11 >> 0x18;\n          x[9] = uVar22 + x[0xe];\n          uVar16 = uVar16 ^ x[9];\n          x[4] = uVar16 << 7 | uVar16 >> 0x19;\n          x[7] = local_118;\n          x[10] = local_114;\n          x[0xf] = local_11c;\n        } while (0 < local_138);\n      }\n      buf._0_4_ = x[0] + st->input[0];\n      uVar9 = buf._0_4_;\n      buf._8_4_ = st->input[2] + x[2];\n      buf._12_4_ = st->input[3] + x[3];\n      buf._4_4_ = st->input[1] + x[1];\n      buf._16_4_ = st->input[4] + x[4];\n      buf._20_4_ = st->input[5] + x[5];\n      buf._24_4_ = st->input[6] + x[6];\n      buf._28_4_ = st->input[7] + x[7];\n      buf._32_4_ = st->input[8] + x[8];\n      buf._36_4_ = st->input[9] + x[9];\n      buf._40_4_ = st->input[10] + x[10];\n      uVar27 = st->input[0xc] + 1;\n      buf._44_4_ = st->input[0xb] + x[0xb];\n      buf._48_4_ = x[0xc] + st->input[0xc];\n      buf._52_4_ = x[0xd] + st->input[0xd];\n      buf._56_4_ = st->input[0xe] + x[0xe];\n      buf._60_4_ = x[0xf] + st->input[0xf];\n      if (local_f0 == 8) {\n        st->input[0xc] = uVar27;\n        if (uVar27 == 0) {\n          uVar27 = st->input[0xd] + 1;\n          st->input[0xd] = uVar27;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        st->input[0xc] = uVar27;\njoined_r0x0018a0dd:\n        if (uVar27 == 0) {\n          iVar10 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar13 = 0;\n      do {\n        pbVar31[lVar13] = pbVar12[lVar13] ^ buf[lVar13];\n        pbVar31[lVar13 + 1] = pbVar12[lVar13 + 1] ^ buf[lVar13 + 1];\n        pbVar31[lVar13 + 2] = pbVar12[lVar13 + 2] ^ buf[lVar13 + 2];\n        pbVar31[lVar13 + 3] = pbVar12[lVar13 + 3] ^ buf[lVar13 + 3];\n        pbVar31[lVar13 + 4] = pbVar12[lVar13 + 4] ^ buf[lVar13 + 4];\n        pbVar31[lVar13 + 5] = pbVar12[lVar13 + 5] ^ buf[lVar13 + 5];\n        pbVar31[lVar13 + 6] = pbVar12[lVar13 + 6] ^ buf[lVar13 + 6];\n        pbVar31[lVar13 + 7] = pbVar12[lVar13 + 7] ^ buf[lVar13 + 7];\n        lVar13 = lVar13 + 8;\n      } while (lVar13 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = st->ivlen;\n    }" { (expression_statement "pbVar31 = out + (inlen - local_100);" (assignment_expression "pbVar31 = out + (inlen - local_100)" identifier = (binary_expression "out + (inlen - local_100)" identifier + (parenthesized_expression "(inlen - local_100)" ( (binary_expression "inlen - local_100" identifier - identifier) )))) ;) (expression_statement "local_138 = st->rounds;" (assignment_expression "local_138 = st->rounds" identifier = (field_expression "st->rounds" identifier -> field_identifier)) ;) (expression_statement "pbVar12 = in + (inlen - local_100);" (assignment_expression "pbVar12 = in + (inlen - local_100)" identifier = (binary_expression "in + (inlen - local_100)" identifier + (parenthesized_expression "(inlen - local_100)" ( (binary_expression "inlen - local_100" identifier - identifier) )))) ;) (expression_statement "x[1] = (ulong32)((ulong)*(undefined8 *)st->input >> 0x20);" (assignment_expression "x[1] = (ulong32)((ulong)*(undefined8 *)st->input >> 0x20)" (subscript_expression "x[1]" identifier [ number_literal ]) = (call_expression "(ulong32)((ulong)*(undefined8 *)st->input >> 0x20)" (parenthesized_expression "(ulong32)" ( identifier )) (argument_list "((ulong)*(undefined8 *)st->input >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)st->input >> 0x20" (binary_expression "(ulong)*(undefined8 *)st->input" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)st->input" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "st->input" identifier -> field_identifier))) >> number_literal) )))) ;) (expression_statement "x[0] = (ulong32)*(undefined8 *)st->input;" (assignment_expression "x[0] = (ulong32)*(undefined8 *)st->input" (subscript_expression "x[0]" identifier [ number_literal ]) = (binary_expression "(ulong32)*(undefined8 *)st->input" (parenthesized_expression "(ulong32)" ( identifier )) * (cast_expression "(undefined8 *)st->input" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "st->input" identifier -> field_identifier)))) ;) (expression_statement "x[3] = (ulong32)((ulong)*(undefined8 *)(st->input + 2) >> 0x20);" (assignment_expression "x[3] = (ulong32)((ulong)*(undefined8 *)(st->input + 2) >> 0x20)" (subscript_expression "x[3]" identifier [ number_literal ]) = (call_expression "(ulong32)((ulong)*(undefined8 *)(st->input + 2) >> 0x20)" (parenthesized_expression "(ulong32)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(st->input + 2) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(st->input + 2) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(st->input + 2)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(st->input + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(st->input + 2)" ( (binary_expression "st->input + 2" (field_expression "st->input" identifier -> field_identifier) + number_literal) )))) >> number_literal) )))) ;) (expression_statement "x[2] = (ulong32)*(undefined8 *)(st->input + 2);" (assignment_expression "x[2] = (ulong32)*(undefined8 *)(st->input + 2)" (subscript_expression "x[2]" identifier [ number_literal ]) = (binary_expression "(ulong32)*(undefined8 *)(st->input + 2)" (parenthesized_expression "(ulong32)" ( identifier )) * (cast_expression "(undefined8 *)(st->input + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(st->input + 2)" ( (binary_expression "st->input + 2" (field_expression "st->input" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "x[5] = (ulong32)((ulong)*(undefined8 *)(st->input + 4) >> 0x20);" (assignment_expression "x[5] = (ulong32)((ulong)*(undefined8 *)(st->input + 4) >> 0x20)" (subscript_expression "x[5]" identifier [ number_literal ]) = (call_expression "(ulong32)((ulong)*(undefined8 *)(st->input + 4) >> 0x20)" (parenthesized_expression "(ulong32)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(st->input + 4) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(st->input + 4) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(st->input + 4)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(st->input + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(st->input + 4)" ( (binary_expression "st->input + 4" (field_expression "st->input" identifier -> field_identifier) + number_literal) )))) >> number_literal) )))) ;) (expression_statement "x[4] = (ulong32)*(undefined8 *)(st->input + 4);" (assignment_expression "x[4] = (ulong32)*(undefined8 *)(st->input + 4)" (subscript_expression "x[4]" identifier [ number_literal ]) = (binary_expression "(ulong32)*(undefined8 *)(st->input + 4)" (parenthesized_expression "(ulong32)" ( identifier )) * (cast_expression "(undefined8 *)(st->input + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(st->input + 4)" ( (binary_expression "st->input + 4" (field_expression "st->input" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "x[7] = (ulong32)((ulong)*(undefined8 *)(st->input + 6) >> 0x20);" (assignment_expression "x[7] = (ulong32)((ulong)*(undefined8 *)(st->input + 6) >> 0x20)" (subscript_expression "x[7]" identifier [ number_literal ]) = (call_expression "(ulong32)((ulong)*(undefined8 *)(st->input + 6) >> 0x20)" (parenthesized_expression "(ulong32)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(st->input + 6) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(st->input + 6) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(st->input + 6)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(st->input + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(st->input + 6)" ( (binary_expression "st->input + 6" (field_expression "st->input" identifier -> field_identifier) + number_literal) )))) >> number_literal) )))) ;) (expression_statement "x[6] = (ulong32)*(undefined8 *)(st->input + 6);" (assignment_expression "x[6] = (ulong32)*(undefined8 *)(st->input + 6)" (subscript_expression "x[6]" identifier [ number_literal ]) = (binary_expression "(ulong32)*(undefined8 *)(st->input + 6)" (parenthesized_expression "(ulong32)" ( identifier )) * (cast_expression "(undefined8 *)(st->input + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(st->input + 6)" ( (binary_expression "st->input + 6" (field_expression "st->input" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "x[9] = (ulong32)((ulong)*(undefined8 *)(st->input + 8) >> 0x20);" (assignment_expression "x[9] = (ulong32)((ulong)*(undefined8 *)(st->input + 8) >> 0x20)" (subscript_expression "x[9]" identifier [ number_literal ]) = (call_expression "(ulong32)((ulong)*(undefined8 *)(st->input + 8) >> 0x20)" (parenthesized_expression "(ulong32)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(st->input + 8) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(st->input + 8) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(st->input + 8)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(st->input + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(st->input + 8)" ( (binary_expression "st->input + 8" (field_expression "st->input" identifier -> field_identifier) + number_literal) )))) >> number_literal) )))) ;) (expression_statement "x[8] = (ulong32)*(undefined8 *)(st->input + 8);" (assignment_expression "x[8] = (ulong32)*(undefined8 *)(st->input + 8)" (subscript_expression "x[8]" identifier [ number_literal ]) = (binary_expression "(ulong32)*(undefined8 *)(st->input + 8)" (parenthesized_expression "(ulong32)" ( identifier )) * (cast_expression "(undefined8 *)(st->input + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(st->input + 8)" ( (binary_expression "st->input + 8" (field_expression "st->input" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "x[0xb] = (ulong32)((ulong)*(undefined8 *)(st->input + 10) >> 0x20);" (assignment_expression "x[0xb] = (ulong32)((ulong)*(undefined8 *)(st->input + 10) >> 0x20)" (subscript_expression "x[0xb]" identifier [ number_literal ]) = (call_expression "(ulong32)((ulong)*(undefined8 *)(st->input + 10) >> 0x20)" (parenthesized_expression "(ulong32)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(st->input + 10) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(st->input + 10) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(st->input + 10)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(st->input + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(st->input + 10)" ( (binary_expression "st->input + 10" (field_expression "st->input" identifier -> field_identifier) + number_literal) )))) >> number_literal) )))) ;) (expression_statement "x[10] = (ulong32)*(undefined8 *)(st->input + 10);" (assignment_expression "x[10] = (ulong32)*(undefined8 *)(st->input + 10)" (subscript_expression "x[10]" identifier [ number_literal ]) = (binary_expression "(ulong32)*(undefined8 *)(st->input + 10)" (parenthesized_expression "(ulong32)" ( identifier )) * (cast_expression "(undefined8 *)(st->input + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(st->input + 10)" ( (binary_expression "st->input + 10" (field_expression "st->input" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "x[0xd] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xc) >> 0x20);" (assignment_expression "x[0xd] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xc) >> 0x20)" (subscript_expression "x[0xd]" identifier [ number_literal ]) = (call_expression "(ulong32)((ulong)*(undefined8 *)(st->input + 0xc) >> 0x20)" (parenthesized_expression "(ulong32)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(st->input + 0xc) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(st->input + 0xc) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(st->input + 0xc)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(st->input + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(st->input + 0xc)" ( (binary_expression "st->input + 0xc" (field_expression "st->input" identifier -> field_identifier) + number_literal) )))) >> number_literal) )))) ;) (expression_statement "x[0xc] = (ulong32)*(undefined8 *)(st->input + 0xc);" (assignment_expression "x[0xc] = (ulong32)*(undefined8 *)(st->input + 0xc)" (subscript_expression "x[0xc]" identifier [ number_literal ]) = (binary_expression "(ulong32)*(undefined8 *)(st->input + 0xc)" (parenthesized_expression "(ulong32)" ( identifier )) * (cast_expression "(undefined8 *)(st->input + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(st->input + 0xc)" ( (binary_expression "st->input + 0xc" (field_expression "st->input" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "x[0xf] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xe) >> 0x20);" (assignment_expression "x[0xf] = (ulong32)((ulong)*(undefined8 *)(st->input + 0xe) >> 0x20)" (subscript_expression "x[0xf]" identifier [ number_literal ]) = (call_expression "(ulong32)((ulong)*(undefined8 *)(st->input + 0xe) >> 0x20)" (parenthesized_expression "(ulong32)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(st->input + 0xe) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(st->input + 0xe) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(st->input + 0xe)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(st->input + 0xe)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(st->input + 0xe)" ( (binary_expression "st->input + 0xe" (field_expression "st->input" identifier -> field_identifier) + number_literal) )))) >> number_literal) )))) ;) (expression_statement "x[0xe] = (ulong32)*(undefined8 *)(st->input + 0xe);" (assignment_expression "x[0xe] = (ulong32)*(undefined8 *)(st->input + 0xe)" (subscript_expression "x[0xe]" identifier [ number_literal ]) = (binary_expression "(ulong32)*(undefined8 *)(st->input + 0xe)" (parenthesized_expression "(ulong32)" ( identifier )) * (cast_expression "(undefined8 *)(st->input + 0xe)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(st->input + 0xe)" ( (binary_expression "st->input + 0xe" (field_expression "st->input" identifier -> field_identifier) + number_literal) ))))) ;) (if_statement "if (0 < local_138) {\n        local_118 = x[7];\n        local_114 = x[10];\n        local_11c = x[0xf];\n        do {\n          uVar11 = x[0xc] ^ x[0] + x[4];\n          uVar22 = x[0xd] ^ x[1] + x[5];\n          uVar14 = x[0xe] ^ x[2] + x[6];\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = x[8] + uVar11;\n          uVar16 = x[4] ^ uVar19;\n          uVar17 = uVar16 << 0xc | uVar16 >> 0x14;\n          uVar29 = x[0] + x[4] + uVar17;\n          uVar11 = uVar11 ^ uVar29;\n          uVar16 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar19 = uVar19 + uVar16;\n          uVar17 = uVar17 ^ uVar19;\n          uVar28 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar11 = uVar22 << 0x10 | uVar22 >> 0x10;\n          uVar22 = x[9] + uVar11;\n          uVar17 = x[5] ^ uVar22;\n          uVar17 = uVar17 << 0xc | uVar17 >> 0x14;\n          uVar26 = x[1] + x[5] + uVar17;\n          uVar11 = uVar11 ^ uVar26;\n          uVar11 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar22 = uVar22 + uVar11;\n          uVar17 = uVar17 ^ uVar22;\n          uVar23 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar17 = uVar14 << 0x10 | uVar14 >> 0x10;\n          local_114 = local_114 + uVar17;\n          uVar14 = x[6] ^ local_114;\n          uVar24 = uVar14 << 0xc | uVar14 >> 0x14;\n          uVar14 = x[2] + x[6] + uVar24;\n          uVar17 = uVar17 ^ uVar14;\n          uVar15 = uVar17 << 8 | uVar17 >> 0x18;\n          local_114 = local_114 + uVar15;\n          uVar29 = uVar29 + uVar23;\n          uVar24 = uVar24 ^ local_114;\n          local_11c = local_11c ^ x[3] + local_118;\n          uVar25 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar26 = uVar26 + uVar25;\n          uVar20 = local_11c << 0x10 | local_11c >> 0x10;\n          uVar17 = x[0xb] + uVar20;\n          uVar16 = uVar16 ^ uVar26;\n          uVar24 = local_118 ^ uVar17;\n          uVar24 = uVar24 << 0xc | uVar24 >> 0x14;\n          uVar32 = x[3] + local_118 + uVar24;\n          uVar20 = uVar20 ^ uVar32;\n          uVar20 = uVar20 << 8 | uVar20 >> 0x18;\n          uVar17 = uVar17 + uVar20;\n          uVar20 = uVar20 ^ uVar29;\n          uVar24 = uVar24 ^ uVar17;\n          uVar24 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar20 = uVar20 << 0x10 | uVar20 >> 0x10;\n          local_114 = local_114 + uVar20;\n          uVar23 = uVar23 ^ local_114;\n          uVar23 = uVar23 << 0xc | uVar23 >> 0x14;\n          x[0] = uVar29 + uVar23;\n          uVar20 = uVar20 ^ x[0];\n          local_11c = uVar20 << 8 | uVar20 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar23 = uVar23 ^ local_114;\n          x[5] = uVar23 << 7 | uVar23 >> 0x19;\n          uVar16 = uVar16 << 0x10 | uVar16 >> 0x10;\n          uVar17 = uVar17 + uVar16;\n          uVar25 = uVar25 ^ uVar17;\n          uVar20 = uVar25 << 0xc | uVar25 >> 0x14;\n          x[1] = uVar26 + uVar20;\n          uVar14 = uVar14 + uVar24;\n          uVar32 = uVar32 + uVar28;\n          uVar16 = uVar16 ^ x[1];\n          uVar11 = uVar11 ^ uVar14;\n          uVar15 = uVar15 ^ uVar32;\n          local_138 = local_138 + -2;\n          x[0xc] = uVar16 << 8 | uVar16 >> 0x18;\n          x[0xb] = uVar17 + x[0xc];\n          uVar20 = uVar20 ^ x[0xb];\n          x[6] = uVar20 << 7 | uVar20 >> 0x19;\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = uVar19 + uVar11;\n          uVar24 = uVar24 ^ uVar19;\n          uVar16 = uVar24 << 0xc | uVar24 >> 0x14;\n          x[2] = uVar14 + uVar16;\n          uVar11 = uVar11 ^ x[2];\n          x[0xd] = uVar11 << 8 | uVar11 >> 0x18;\n          x[8] = uVar19 + x[0xd];\n          uVar16 = uVar16 ^ x[8];\n          local_118 = uVar16 << 7 | uVar16 >> 0x19;\n          uVar11 = uVar15 << 0x10 | uVar15 >> 0x10;\n          uVar22 = uVar22 + uVar11;\n          uVar28 = uVar28 ^ uVar22;\n          uVar16 = uVar28 << 0xc | uVar28 >> 0x14;\n          x[3] = uVar32 + uVar16;\n          uVar11 = uVar11 ^ x[3];\n          x[0xe] = uVar11 << 8 | uVar11 >> 0x18;\n          x[9] = uVar22 + x[0xe];\n          uVar16 = uVar16 ^ x[9];\n          x[4] = uVar16 << 7 | uVar16 >> 0x19;\n          x[7] = local_118;\n          x[10] = local_114;\n          x[0xf] = local_11c;\n        } while (0 < local_138);\n      }" if (parenthesized_expression "(0 < local_138)" ( (binary_expression "0 < local_138" number_literal < identifier) )) (compound_statement "{\n        local_118 = x[7];\n        local_114 = x[10];\n        local_11c = x[0xf];\n        do {\n          uVar11 = x[0xc] ^ x[0] + x[4];\n          uVar22 = x[0xd] ^ x[1] + x[5];\n          uVar14 = x[0xe] ^ x[2] + x[6];\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = x[8] + uVar11;\n          uVar16 = x[4] ^ uVar19;\n          uVar17 = uVar16 << 0xc | uVar16 >> 0x14;\n          uVar29 = x[0] + x[4] + uVar17;\n          uVar11 = uVar11 ^ uVar29;\n          uVar16 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar19 = uVar19 + uVar16;\n          uVar17 = uVar17 ^ uVar19;\n          uVar28 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar11 = uVar22 << 0x10 | uVar22 >> 0x10;\n          uVar22 = x[9] + uVar11;\n          uVar17 = x[5] ^ uVar22;\n          uVar17 = uVar17 << 0xc | uVar17 >> 0x14;\n          uVar26 = x[1] + x[5] + uVar17;\n          uVar11 = uVar11 ^ uVar26;\n          uVar11 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar22 = uVar22 + uVar11;\n          uVar17 = uVar17 ^ uVar22;\n          uVar23 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar17 = uVar14 << 0x10 | uVar14 >> 0x10;\n          local_114 = local_114 + uVar17;\n          uVar14 = x[6] ^ local_114;\n          uVar24 = uVar14 << 0xc | uVar14 >> 0x14;\n          uVar14 = x[2] + x[6] + uVar24;\n          uVar17 = uVar17 ^ uVar14;\n          uVar15 = uVar17 << 8 | uVar17 >> 0x18;\n          local_114 = local_114 + uVar15;\n          uVar29 = uVar29 + uVar23;\n          uVar24 = uVar24 ^ local_114;\n          local_11c = local_11c ^ x[3] + local_118;\n          uVar25 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar26 = uVar26 + uVar25;\n          uVar20 = local_11c << 0x10 | local_11c >> 0x10;\n          uVar17 = x[0xb] + uVar20;\n          uVar16 = uVar16 ^ uVar26;\n          uVar24 = local_118 ^ uVar17;\n          uVar24 = uVar24 << 0xc | uVar24 >> 0x14;\n          uVar32 = x[3] + local_118 + uVar24;\n          uVar20 = uVar20 ^ uVar32;\n          uVar20 = uVar20 << 8 | uVar20 >> 0x18;\n          uVar17 = uVar17 + uVar20;\n          uVar20 = uVar20 ^ uVar29;\n          uVar24 = uVar24 ^ uVar17;\n          uVar24 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar20 = uVar20 << 0x10 | uVar20 >> 0x10;\n          local_114 = local_114 + uVar20;\n          uVar23 = uVar23 ^ local_114;\n          uVar23 = uVar23 << 0xc | uVar23 >> 0x14;\n          x[0] = uVar29 + uVar23;\n          uVar20 = uVar20 ^ x[0];\n          local_11c = uVar20 << 8 | uVar20 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar23 = uVar23 ^ local_114;\n          x[5] = uVar23 << 7 | uVar23 >> 0x19;\n          uVar16 = uVar16 << 0x10 | uVar16 >> 0x10;\n          uVar17 = uVar17 + uVar16;\n          uVar25 = uVar25 ^ uVar17;\n          uVar20 = uVar25 << 0xc | uVar25 >> 0x14;\n          x[1] = uVar26 + uVar20;\n          uVar14 = uVar14 + uVar24;\n          uVar32 = uVar32 + uVar28;\n          uVar16 = uVar16 ^ x[1];\n          uVar11 = uVar11 ^ uVar14;\n          uVar15 = uVar15 ^ uVar32;\n          local_138 = local_138 + -2;\n          x[0xc] = uVar16 << 8 | uVar16 >> 0x18;\n          x[0xb] = uVar17 + x[0xc];\n          uVar20 = uVar20 ^ x[0xb];\n          x[6] = uVar20 << 7 | uVar20 >> 0x19;\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = uVar19 + uVar11;\n          uVar24 = uVar24 ^ uVar19;\n          uVar16 = uVar24 << 0xc | uVar24 >> 0x14;\n          x[2] = uVar14 + uVar16;\n          uVar11 = uVar11 ^ x[2];\n          x[0xd] = uVar11 << 8 | uVar11 >> 0x18;\n          x[8] = uVar19 + x[0xd];\n          uVar16 = uVar16 ^ x[8];\n          local_118 = uVar16 << 7 | uVar16 >> 0x19;\n          uVar11 = uVar15 << 0x10 | uVar15 >> 0x10;\n          uVar22 = uVar22 + uVar11;\n          uVar28 = uVar28 ^ uVar22;\n          uVar16 = uVar28 << 0xc | uVar28 >> 0x14;\n          x[3] = uVar32 + uVar16;\n          uVar11 = uVar11 ^ x[3];\n          x[0xe] = uVar11 << 8 | uVar11 >> 0x18;\n          x[9] = uVar22 + x[0xe];\n          uVar16 = uVar16 ^ x[9];\n          x[4] = uVar16 << 7 | uVar16 >> 0x19;\n          x[7] = local_118;\n          x[10] = local_114;\n          x[0xf] = local_11c;\n        } while (0 < local_138);\n      }" { (expression_statement "local_118 = x[7];" (assignment_expression "local_118 = x[7]" identifier = (subscript_expression "x[7]" identifier [ number_literal ])) ;) (expression_statement "local_114 = x[10];" (assignment_expression "local_114 = x[10]" identifier = (subscript_expression "x[10]" identifier [ number_literal ])) ;) (expression_statement "local_11c = x[0xf];" (assignment_expression "local_11c = x[0xf]" identifier = (subscript_expression "x[0xf]" identifier [ number_literal ])) ;) (do_statement "do {\n          uVar11 = x[0xc] ^ x[0] + x[4];\n          uVar22 = x[0xd] ^ x[1] + x[5];\n          uVar14 = x[0xe] ^ x[2] + x[6];\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = x[8] + uVar11;\n          uVar16 = x[4] ^ uVar19;\n          uVar17 = uVar16 << 0xc | uVar16 >> 0x14;\n          uVar29 = x[0] + x[4] + uVar17;\n          uVar11 = uVar11 ^ uVar29;\n          uVar16 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar19 = uVar19 + uVar16;\n          uVar17 = uVar17 ^ uVar19;\n          uVar28 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar11 = uVar22 << 0x10 | uVar22 >> 0x10;\n          uVar22 = x[9] + uVar11;\n          uVar17 = x[5] ^ uVar22;\n          uVar17 = uVar17 << 0xc | uVar17 >> 0x14;\n          uVar26 = x[1] + x[5] + uVar17;\n          uVar11 = uVar11 ^ uVar26;\n          uVar11 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar22 = uVar22 + uVar11;\n          uVar17 = uVar17 ^ uVar22;\n          uVar23 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar17 = uVar14 << 0x10 | uVar14 >> 0x10;\n          local_114 = local_114 + uVar17;\n          uVar14 = x[6] ^ local_114;\n          uVar24 = uVar14 << 0xc | uVar14 >> 0x14;\n          uVar14 = x[2] + x[6] + uVar24;\n          uVar17 = uVar17 ^ uVar14;\n          uVar15 = uVar17 << 8 | uVar17 >> 0x18;\n          local_114 = local_114 + uVar15;\n          uVar29 = uVar29 + uVar23;\n          uVar24 = uVar24 ^ local_114;\n          local_11c = local_11c ^ x[3] + local_118;\n          uVar25 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar26 = uVar26 + uVar25;\n          uVar20 = local_11c << 0x10 | local_11c >> 0x10;\n          uVar17 = x[0xb] + uVar20;\n          uVar16 = uVar16 ^ uVar26;\n          uVar24 = local_118 ^ uVar17;\n          uVar24 = uVar24 << 0xc | uVar24 >> 0x14;\n          uVar32 = x[3] + local_118 + uVar24;\n          uVar20 = uVar20 ^ uVar32;\n          uVar20 = uVar20 << 8 | uVar20 >> 0x18;\n          uVar17 = uVar17 + uVar20;\n          uVar20 = uVar20 ^ uVar29;\n          uVar24 = uVar24 ^ uVar17;\n          uVar24 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar20 = uVar20 << 0x10 | uVar20 >> 0x10;\n          local_114 = local_114 + uVar20;\n          uVar23 = uVar23 ^ local_114;\n          uVar23 = uVar23 << 0xc | uVar23 >> 0x14;\n          x[0] = uVar29 + uVar23;\n          uVar20 = uVar20 ^ x[0];\n          local_11c = uVar20 << 8 | uVar20 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar23 = uVar23 ^ local_114;\n          x[5] = uVar23 << 7 | uVar23 >> 0x19;\n          uVar16 = uVar16 << 0x10 | uVar16 >> 0x10;\n          uVar17 = uVar17 + uVar16;\n          uVar25 = uVar25 ^ uVar17;\n          uVar20 = uVar25 << 0xc | uVar25 >> 0x14;\n          x[1] = uVar26 + uVar20;\n          uVar14 = uVar14 + uVar24;\n          uVar32 = uVar32 + uVar28;\n          uVar16 = uVar16 ^ x[1];\n          uVar11 = uVar11 ^ uVar14;\n          uVar15 = uVar15 ^ uVar32;\n          local_138 = local_138 + -2;\n          x[0xc] = uVar16 << 8 | uVar16 >> 0x18;\n          x[0xb] = uVar17 + x[0xc];\n          uVar20 = uVar20 ^ x[0xb];\n          x[6] = uVar20 << 7 | uVar20 >> 0x19;\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = uVar19 + uVar11;\n          uVar24 = uVar24 ^ uVar19;\n          uVar16 = uVar24 << 0xc | uVar24 >> 0x14;\n          x[2] = uVar14 + uVar16;\n          uVar11 = uVar11 ^ x[2];\n          x[0xd] = uVar11 << 8 | uVar11 >> 0x18;\n          x[8] = uVar19 + x[0xd];\n          uVar16 = uVar16 ^ x[8];\n          local_118 = uVar16 << 7 | uVar16 >> 0x19;\n          uVar11 = uVar15 << 0x10 | uVar15 >> 0x10;\n          uVar22 = uVar22 + uVar11;\n          uVar28 = uVar28 ^ uVar22;\n          uVar16 = uVar28 << 0xc | uVar28 >> 0x14;\n          x[3] = uVar32 + uVar16;\n          uVar11 = uVar11 ^ x[3];\n          x[0xe] = uVar11 << 8 | uVar11 >> 0x18;\n          x[9] = uVar22 + x[0xe];\n          uVar16 = uVar16 ^ x[9];\n          x[4] = uVar16 << 7 | uVar16 >> 0x19;\n          x[7] = local_118;\n          x[10] = local_114;\n          x[0xf] = local_11c;\n        } while (0 < local_138);" do (compound_statement "{\n          uVar11 = x[0xc] ^ x[0] + x[4];\n          uVar22 = x[0xd] ^ x[1] + x[5];\n          uVar14 = x[0xe] ^ x[2] + x[6];\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = x[8] + uVar11;\n          uVar16 = x[4] ^ uVar19;\n          uVar17 = uVar16 << 0xc | uVar16 >> 0x14;\n          uVar29 = x[0] + x[4] + uVar17;\n          uVar11 = uVar11 ^ uVar29;\n          uVar16 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar19 = uVar19 + uVar16;\n          uVar17 = uVar17 ^ uVar19;\n          uVar28 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar11 = uVar22 << 0x10 | uVar22 >> 0x10;\n          uVar22 = x[9] + uVar11;\n          uVar17 = x[5] ^ uVar22;\n          uVar17 = uVar17 << 0xc | uVar17 >> 0x14;\n          uVar26 = x[1] + x[5] + uVar17;\n          uVar11 = uVar11 ^ uVar26;\n          uVar11 = uVar11 << 8 | uVar11 >> 0x18;\n          uVar22 = uVar22 + uVar11;\n          uVar17 = uVar17 ^ uVar22;\n          uVar23 = uVar17 << 7 | uVar17 >> 0x19;\n          uVar17 = uVar14 << 0x10 | uVar14 >> 0x10;\n          local_114 = local_114 + uVar17;\n          uVar14 = x[6] ^ local_114;\n          uVar24 = uVar14 << 0xc | uVar14 >> 0x14;\n          uVar14 = x[2] + x[6] + uVar24;\n          uVar17 = uVar17 ^ uVar14;\n          uVar15 = uVar17 << 8 | uVar17 >> 0x18;\n          local_114 = local_114 + uVar15;\n          uVar29 = uVar29 + uVar23;\n          uVar24 = uVar24 ^ local_114;\n          local_11c = local_11c ^ x[3] + local_118;\n          uVar25 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar26 = uVar26 + uVar25;\n          uVar20 = local_11c << 0x10 | local_11c >> 0x10;\n          uVar17 = x[0xb] + uVar20;\n          uVar16 = uVar16 ^ uVar26;\n          uVar24 = local_118 ^ uVar17;\n          uVar24 = uVar24 << 0xc | uVar24 >> 0x14;\n          uVar32 = x[3] + local_118 + uVar24;\n          uVar20 = uVar20 ^ uVar32;\n          uVar20 = uVar20 << 8 | uVar20 >> 0x18;\n          uVar17 = uVar17 + uVar20;\n          uVar20 = uVar20 ^ uVar29;\n          uVar24 = uVar24 ^ uVar17;\n          uVar24 = uVar24 << 7 | uVar24 >> 0x19;\n          uVar20 = uVar20 << 0x10 | uVar20 >> 0x10;\n          local_114 = local_114 + uVar20;\n          uVar23 = uVar23 ^ local_114;\n          uVar23 = uVar23 << 0xc | uVar23 >> 0x14;\n          x[0] = uVar29 + uVar23;\n          uVar20 = uVar20 ^ x[0];\n          local_11c = uVar20 << 8 | uVar20 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar23 = uVar23 ^ local_114;\n          x[5] = uVar23 << 7 | uVar23 >> 0x19;\n          uVar16 = uVar16 << 0x10 | uVar16 >> 0x10;\n          uVar17 = uVar17 + uVar16;\n          uVar25 = uVar25 ^ uVar17;\n          uVar20 = uVar25 << 0xc | uVar25 >> 0x14;\n          x[1] = uVar26 + uVar20;\n          uVar14 = uVar14 + uVar24;\n          uVar32 = uVar32 + uVar28;\n          uVar16 = uVar16 ^ x[1];\n          uVar11 = uVar11 ^ uVar14;\n          uVar15 = uVar15 ^ uVar32;\n          local_138 = local_138 + -2;\n          x[0xc] = uVar16 << 8 | uVar16 >> 0x18;\n          x[0xb] = uVar17 + x[0xc];\n          uVar20 = uVar20 ^ x[0xb];\n          x[6] = uVar20 << 7 | uVar20 >> 0x19;\n          uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;\n          uVar19 = uVar19 + uVar11;\n          uVar24 = uVar24 ^ uVar19;\n          uVar16 = uVar24 << 0xc | uVar24 >> 0x14;\n          x[2] = uVar14 + uVar16;\n          uVar11 = uVar11 ^ x[2];\n          x[0xd] = uVar11 << 8 | uVar11 >> 0x18;\n          x[8] = uVar19 + x[0xd];\n          uVar16 = uVar16 ^ x[8];\n          local_118 = uVar16 << 7 | uVar16 >> 0x19;\n          uVar11 = uVar15 << 0x10 | uVar15 >> 0x10;\n          uVar22 = uVar22 + uVar11;\n          uVar28 = uVar28 ^ uVar22;\n          uVar16 = uVar28 << 0xc | uVar28 >> 0x14;\n          x[3] = uVar32 + uVar16;\n          uVar11 = uVar11 ^ x[3];\n          x[0xe] = uVar11 << 8 | uVar11 >> 0x18;\n          x[9] = uVar22 + x[0xe];\n          uVar16 = uVar16 ^ x[9];\n          x[4] = uVar16 << 7 | uVar16 >> 0x19;\n          x[7] = local_118;\n          x[10] = local_114;\n          x[0xf] = local_11c;\n        }" { (expression_statement "uVar11 = x[0xc] ^ x[0] + x[4];" (assignment_expression "uVar11 = x[0xc] ^ x[0] + x[4]" identifier = (binary_expression "x[0xc] ^ x[0] + x[4]" (subscript_expression "x[0xc]" identifier [ number_literal ]) ^ (binary_expression "x[0] + x[4]" (subscript_expression "x[0]" identifier [ number_literal ]) + (subscript_expression "x[4]" identifier [ number_literal ])))) ;) (expression_statement "uVar22 = x[0xd] ^ x[1] + x[5];" (assignment_expression "uVar22 = x[0xd] ^ x[1] + x[5]" identifier = (binary_expression "x[0xd] ^ x[1] + x[5]" (subscript_expression "x[0xd]" identifier [ number_literal ]) ^ (binary_expression "x[1] + x[5]" (subscript_expression "x[1]" identifier [ number_literal ]) + (subscript_expression "x[5]" identifier [ number_literal ])))) ;) (expression_statement "uVar14 = x[0xe] ^ x[2] + x[6];" (assignment_expression "uVar14 = x[0xe] ^ x[2] + x[6]" identifier = (binary_expression "x[0xe] ^ x[2] + x[6]" (subscript_expression "x[0xe]" identifier [ number_literal ]) ^ (binary_expression "x[2] + x[6]" (subscript_expression "x[2]" identifier [ number_literal ]) + (subscript_expression "x[6]" identifier [ number_literal ])))) ;) (expression_statement "uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;" (assignment_expression "uVar11 = uVar11 << 0x10 | uVar11 >> 0x10" identifier = (binary_expression "uVar11 << 0x10 | uVar11 >> 0x10" (binary_expression "uVar11 << 0x10" identifier << number_literal) | (binary_expression "uVar11 >> 0x10" identifier >> number_literal))) ;) (expression_statement "uVar19 = x[8] + uVar11;" (assignment_expression "uVar19 = x[8] + uVar11" identifier = (binary_expression "x[8] + uVar11" (subscript_expression "x[8]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "uVar16 = x[4] ^ uVar19;" (assignment_expression "uVar16 = x[4] ^ uVar19" identifier = (binary_expression "x[4] ^ uVar19" (subscript_expression "x[4]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "uVar17 = uVar16 << 0xc | uVar16 >> 0x14;" (assignment_expression "uVar17 = uVar16 << 0xc | uVar16 >> 0x14" identifier = (binary_expression "uVar16 << 0xc | uVar16 >> 0x14" (binary_expression "uVar16 << 0xc" identifier << number_literal) | (binary_expression "uVar16 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uVar29 = x[0] + x[4] + uVar17;" (assignment_expression "uVar29 = x[0] + x[4] + uVar17" identifier = (binary_expression "x[0] + x[4] + uVar17" (binary_expression "x[0] + x[4]" (subscript_expression "x[0]" identifier [ number_literal ]) + (subscript_expression "x[4]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar11 = uVar11 ^ uVar29;" (assignment_expression "uVar11 = uVar11 ^ uVar29" identifier = (binary_expression "uVar11 ^ uVar29" identifier ^ identifier)) ;) (expression_statement "uVar16 = uVar11 << 8 | uVar11 >> 0x18;" (assignment_expression "uVar16 = uVar11 << 8 | uVar11 >> 0x18" identifier = (binary_expression "uVar11 << 8 | uVar11 >> 0x18" (binary_expression "uVar11 << 8" identifier << number_literal) | (binary_expression "uVar11 >> 0x18" identifier >> number_literal))) ;) (expression_statement "uVar19 = uVar19 + uVar16;" (assignment_expression "uVar19 = uVar19 + uVar16" identifier = (binary_expression "uVar19 + uVar16" identifier + identifier)) ;) (expression_statement "uVar17 = uVar17 ^ uVar19;" (assignment_expression "uVar17 = uVar17 ^ uVar19" identifier = (binary_expression "uVar17 ^ uVar19" identifier ^ identifier)) ;) (expression_statement "uVar28 = uVar17 << 7 | uVar17 >> 0x19;" (assignment_expression "uVar28 = uVar17 << 7 | uVar17 >> 0x19" identifier = (binary_expression "uVar17 << 7 | uVar17 >> 0x19" (binary_expression "uVar17 << 7" identifier << number_literal) | (binary_expression "uVar17 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar11 = uVar22 << 0x10 | uVar22 >> 0x10;" (assignment_expression "uVar11 = uVar22 << 0x10 | uVar22 >> 0x10" identifier = (binary_expression "uVar22 << 0x10 | uVar22 >> 0x10" (binary_expression "uVar22 << 0x10" identifier << number_literal) | (binary_expression "uVar22 >> 0x10" identifier >> number_literal))) ;) (expression_statement "uVar22 = x[9] + uVar11;" (assignment_expression "uVar22 = x[9] + uVar11" identifier = (binary_expression "x[9] + uVar11" (subscript_expression "x[9]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "uVar17 = x[5] ^ uVar22;" (assignment_expression "uVar17 = x[5] ^ uVar22" identifier = (binary_expression "x[5] ^ uVar22" (subscript_expression "x[5]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "uVar17 = uVar17 << 0xc | uVar17 >> 0x14;" (assignment_expression "uVar17 = uVar17 << 0xc | uVar17 >> 0x14" identifier = (binary_expression "uVar17 << 0xc | uVar17 >> 0x14" (binary_expression "uVar17 << 0xc" identifier << number_literal) | (binary_expression "uVar17 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uVar26 = x[1] + x[5] + uVar17;" (assignment_expression "uVar26 = x[1] + x[5] + uVar17" identifier = (binary_expression "x[1] + x[5] + uVar17" (binary_expression "x[1] + x[5]" (subscript_expression "x[1]" identifier [ number_literal ]) + (subscript_expression "x[5]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar11 = uVar11 ^ uVar26;" (assignment_expression "uVar11 = uVar11 ^ uVar26" identifier = (binary_expression "uVar11 ^ uVar26" identifier ^ identifier)) ;) (expression_statement "uVar11 = uVar11 << 8 | uVar11 >> 0x18;" (assignment_expression "uVar11 = uVar11 << 8 | uVar11 >> 0x18" identifier = (binary_expression "uVar11 << 8 | uVar11 >> 0x18" (binary_expression "uVar11 << 8" identifier << number_literal) | (binary_expression "uVar11 >> 0x18" identifier >> number_literal))) ;) (expression_statement "uVar22 = uVar22 + uVar11;" (assignment_expression "uVar22 = uVar22 + uVar11" identifier = (binary_expression "uVar22 + uVar11" identifier + identifier)) ;) (expression_statement "uVar17 = uVar17 ^ uVar22;" (assignment_expression "uVar17 = uVar17 ^ uVar22" identifier = (binary_expression "uVar17 ^ uVar22" identifier ^ identifier)) ;) (expression_statement "uVar23 = uVar17 << 7 | uVar17 >> 0x19;" (assignment_expression "uVar23 = uVar17 << 7 | uVar17 >> 0x19" identifier = (binary_expression "uVar17 << 7 | uVar17 >> 0x19" (binary_expression "uVar17 << 7" identifier << number_literal) | (binary_expression "uVar17 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar17 = uVar14 << 0x10 | uVar14 >> 0x10;" (assignment_expression "uVar17 = uVar14 << 0x10 | uVar14 >> 0x10" identifier = (binary_expression "uVar14 << 0x10 | uVar14 >> 0x10" (binary_expression "uVar14 << 0x10" identifier << number_literal) | (binary_expression "uVar14 >> 0x10" identifier >> number_literal))) ;) (expression_statement "local_114 = local_114 + uVar17;" (assignment_expression "local_114 = local_114 + uVar17" identifier = (binary_expression "local_114 + uVar17" identifier + identifier)) ;) (expression_statement "uVar14 = x[6] ^ local_114;" (assignment_expression "uVar14 = x[6] ^ local_114" identifier = (binary_expression "x[6] ^ local_114" (subscript_expression "x[6]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "uVar24 = uVar14 << 0xc | uVar14 >> 0x14;" (assignment_expression "uVar24 = uVar14 << 0xc | uVar14 >> 0x14" identifier = (binary_expression "uVar14 << 0xc | uVar14 >> 0x14" (binary_expression "uVar14 << 0xc" identifier << number_literal) | (binary_expression "uVar14 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uVar14 = x[2] + x[6] + uVar24;" (assignment_expression "uVar14 = x[2] + x[6] + uVar24" identifier = (binary_expression "x[2] + x[6] + uVar24" (binary_expression "x[2] + x[6]" (subscript_expression "x[2]" identifier [ number_literal ]) + (subscript_expression "x[6]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar17 = uVar17 ^ uVar14;" (assignment_expression "uVar17 = uVar17 ^ uVar14" identifier = (binary_expression "uVar17 ^ uVar14" identifier ^ identifier)) ;) (expression_statement "uVar15 = uVar17 << 8 | uVar17 >> 0x18;" (assignment_expression "uVar15 = uVar17 << 8 | uVar17 >> 0x18" identifier = (binary_expression "uVar17 << 8 | uVar17 >> 0x18" (binary_expression "uVar17 << 8" identifier << number_literal) | (binary_expression "uVar17 >> 0x18" identifier >> number_literal))) ;) (expression_statement "local_114 = local_114 + uVar15;" (assignment_expression "local_114 = local_114 + uVar15" identifier = (binary_expression "local_114 + uVar15" identifier + identifier)) ;) (expression_statement "uVar29 = uVar29 + uVar23;" (assignment_expression "uVar29 = uVar29 + uVar23" identifier = (binary_expression "uVar29 + uVar23" identifier + identifier)) ;) (expression_statement "uVar24 = uVar24 ^ local_114;" (assignment_expression "uVar24 = uVar24 ^ local_114" identifier = (binary_expression "uVar24 ^ local_114" identifier ^ identifier)) ;) (expression_statement "local_11c = local_11c ^ x[3] + local_118;" (assignment_expression "local_11c = local_11c ^ x[3] + local_118" identifier = (binary_expression "local_11c ^ x[3] + local_118" identifier ^ (binary_expression "x[3] + local_118" (subscript_expression "x[3]" identifier [ number_literal ]) + identifier))) ;) (expression_statement "uVar25 = uVar24 << 7 | uVar24 >> 0x19;" (assignment_expression "uVar25 = uVar24 << 7 | uVar24 >> 0x19" identifier = (binary_expression "uVar24 << 7 | uVar24 >> 0x19" (binary_expression "uVar24 << 7" identifier << number_literal) | (binary_expression "uVar24 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar26 = uVar26 + uVar25;" (assignment_expression "uVar26 = uVar26 + uVar25" identifier = (binary_expression "uVar26 + uVar25" identifier + identifier)) ;) (expression_statement "uVar20 = local_11c << 0x10 | local_11c >> 0x10;" (assignment_expression "uVar20 = local_11c << 0x10 | local_11c >> 0x10" identifier = (binary_expression "local_11c << 0x10 | local_11c >> 0x10" (binary_expression "local_11c << 0x10" identifier << number_literal) | (binary_expression "local_11c >> 0x10" identifier >> number_literal))) ;) (expression_statement "uVar17 = x[0xb] + uVar20;" (assignment_expression "uVar17 = x[0xb] + uVar20" identifier = (binary_expression "x[0xb] + uVar20" (subscript_expression "x[0xb]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "uVar16 = uVar16 ^ uVar26;" (assignment_expression "uVar16 = uVar16 ^ uVar26" identifier = (binary_expression "uVar16 ^ uVar26" identifier ^ identifier)) ;) (expression_statement "uVar24 = local_118 ^ uVar17;" (assignment_expression "uVar24 = local_118 ^ uVar17" identifier = (binary_expression "local_118 ^ uVar17" identifier ^ identifier)) ;) (expression_statement "uVar24 = uVar24 << 0xc | uVar24 >> 0x14;" (assignment_expression "uVar24 = uVar24 << 0xc | uVar24 >> 0x14" identifier = (binary_expression "uVar24 << 0xc | uVar24 >> 0x14" (binary_expression "uVar24 << 0xc" identifier << number_literal) | (binary_expression "uVar24 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uVar32 = x[3] + local_118 + uVar24;" (assignment_expression "uVar32 = x[3] + local_118 + uVar24" identifier = (binary_expression "x[3] + local_118 + uVar24" (binary_expression "x[3] + local_118" (subscript_expression "x[3]" identifier [ number_literal ]) + identifier) + identifier)) ;) (expression_statement "uVar20 = uVar20 ^ uVar32;" (assignment_expression "uVar20 = uVar20 ^ uVar32" identifier = (binary_expression "uVar20 ^ uVar32" identifier ^ identifier)) ;) (expression_statement "uVar20 = uVar20 << 8 | uVar20 >> 0x18;" (assignment_expression "uVar20 = uVar20 << 8 | uVar20 >> 0x18" identifier = (binary_expression "uVar20 << 8 | uVar20 >> 0x18" (binary_expression "uVar20 << 8" identifier << number_literal) | (binary_expression "uVar20 >> 0x18" identifier >> number_literal))) ;) (expression_statement "uVar17 = uVar17 + uVar20;" (assignment_expression "uVar17 = uVar17 + uVar20" identifier = (binary_expression "uVar17 + uVar20" identifier + identifier)) ;) (expression_statement "uVar20 = uVar20 ^ uVar29;" (assignment_expression "uVar20 = uVar20 ^ uVar29" identifier = (binary_expression "uVar20 ^ uVar29" identifier ^ identifier)) ;) (expression_statement "uVar24 = uVar24 ^ uVar17;" (assignment_expression "uVar24 = uVar24 ^ uVar17" identifier = (binary_expression "uVar24 ^ uVar17" identifier ^ identifier)) ;) (expression_statement "uVar24 = uVar24 << 7 | uVar24 >> 0x19;" (assignment_expression "uVar24 = uVar24 << 7 | uVar24 >> 0x19" identifier = (binary_expression "uVar24 << 7 | uVar24 >> 0x19" (binary_expression "uVar24 << 7" identifier << number_literal) | (binary_expression "uVar24 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar20 = uVar20 << 0x10 | uVar20 >> 0x10;" (assignment_expression "uVar20 = uVar20 << 0x10 | uVar20 >> 0x10" identifier = (binary_expression "uVar20 << 0x10 | uVar20 >> 0x10" (binary_expression "uVar20 << 0x10" identifier << number_literal) | (binary_expression "uVar20 >> 0x10" identifier >> number_literal))) ;) (expression_statement "local_114 = local_114 + uVar20;" (assignment_expression "local_114 = local_114 + uVar20" identifier = (binary_expression "local_114 + uVar20" identifier + identifier)) ;) (expression_statement "uVar23 = uVar23 ^ local_114;" (assignment_expression "uVar23 = uVar23 ^ local_114" identifier = (binary_expression "uVar23 ^ local_114" identifier ^ identifier)) ;) (expression_statement "uVar23 = uVar23 << 0xc | uVar23 >> 0x14;" (assignment_expression "uVar23 = uVar23 << 0xc | uVar23 >> 0x14" identifier = (binary_expression "uVar23 << 0xc | uVar23 >> 0x14" (binary_expression "uVar23 << 0xc" identifier << number_literal) | (binary_expression "uVar23 >> 0x14" identifier >> number_literal))) ;) (expression_statement "x[0] = uVar29 + uVar23;" (assignment_expression "x[0] = uVar29 + uVar23" (subscript_expression "x[0]" identifier [ number_literal ]) = (binary_expression "uVar29 + uVar23" identifier + identifier)) ;) (expression_statement "uVar20 = uVar20 ^ x[0];" (assignment_expression "uVar20 = uVar20 ^ x[0]" identifier = (binary_expression "uVar20 ^ x[0]" identifier ^ (subscript_expression "x[0]" identifier [ number_literal ]))) ;) (expression_statement "local_11c = uVar20 << 8 | uVar20 >> 0x18;" (assignment_expression "local_11c = uVar20 << 8 | uVar20 >> 0x18" identifier = (binary_expression "uVar20 << 8 | uVar20 >> 0x18" (binary_expression "uVar20 << 8" identifier << number_literal) | (binary_expression "uVar20 >> 0x18" identifier >> number_literal))) ;) (expression_statement "local_114 = local_114 + local_11c;" (assignment_expression "local_114 = local_114 + local_11c" identifier = (binary_expression "local_114 + local_11c" identifier + identifier)) ;) (expression_statement "uVar23 = uVar23 ^ local_114;" (assignment_expression "uVar23 = uVar23 ^ local_114" identifier = (binary_expression "uVar23 ^ local_114" identifier ^ identifier)) ;) (expression_statement "x[5] = uVar23 << 7 | uVar23 >> 0x19;" (assignment_expression "x[5] = uVar23 << 7 | uVar23 >> 0x19" (subscript_expression "x[5]" identifier [ number_literal ]) = (binary_expression "uVar23 << 7 | uVar23 >> 0x19" (binary_expression "uVar23 << 7" identifier << number_literal) | (binary_expression "uVar23 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar16 = uVar16 << 0x10 | uVar16 >> 0x10;" (assignment_expression "uVar16 = uVar16 << 0x10 | uVar16 >> 0x10" identifier = (binary_expression "uVar16 << 0x10 | uVar16 >> 0x10" (binary_expression "uVar16 << 0x10" identifier << number_literal) | (binary_expression "uVar16 >> 0x10" identifier >> number_literal))) ;) (expression_statement "uVar17 = uVar17 + uVar16;" (assignment_expression "uVar17 = uVar17 + uVar16" identifier = (binary_expression "uVar17 + uVar16" identifier + identifier)) ;) (expression_statement "uVar25 = uVar25 ^ uVar17;" (assignment_expression "uVar25 = uVar25 ^ uVar17" identifier = (binary_expression "uVar25 ^ uVar17" identifier ^ identifier)) ;) (expression_statement "uVar20 = uVar25 << 0xc | uVar25 >> 0x14;" (assignment_expression "uVar20 = uVar25 << 0xc | uVar25 >> 0x14" identifier = (binary_expression "uVar25 << 0xc | uVar25 >> 0x14" (binary_expression "uVar25 << 0xc" identifier << number_literal) | (binary_expression "uVar25 >> 0x14" identifier >> number_literal))) ;) (expression_statement "x[1] = uVar26 + uVar20;" (assignment_expression "x[1] = uVar26 + uVar20" (subscript_expression "x[1]" identifier [ number_literal ]) = (binary_expression "uVar26 + uVar20" identifier + identifier)) ;) (expression_statement "uVar14 = uVar14 + uVar24;" (assignment_expression "uVar14 = uVar14 + uVar24" identifier = (binary_expression "uVar14 + uVar24" identifier + identifier)) ;) (expression_statement "uVar32 = uVar32 + uVar28;" (assignment_expression "uVar32 = uVar32 + uVar28" identifier = (binary_expression "uVar32 + uVar28" identifier + identifier)) ;) (expression_statement "uVar16 = uVar16 ^ x[1];" (assignment_expression "uVar16 = uVar16 ^ x[1]" identifier = (binary_expression "uVar16 ^ x[1]" identifier ^ (subscript_expression "x[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar11 = uVar11 ^ uVar14;" (assignment_expression "uVar11 = uVar11 ^ uVar14" identifier = (binary_expression "uVar11 ^ uVar14" identifier ^ identifier)) ;) (expression_statement "uVar15 = uVar15 ^ uVar32;" (assignment_expression "uVar15 = uVar15 ^ uVar32" identifier = (binary_expression "uVar15 ^ uVar32" identifier ^ identifier)) ;) (expression_statement "local_138 = local_138 + -2;" (assignment_expression "local_138 = local_138 + -2" identifier = (binary_expression "local_138 + -2" identifier + number_literal)) ;) (expression_statement "x[0xc] = uVar16 << 8 | uVar16 >> 0x18;" (assignment_expression "x[0xc] = uVar16 << 8 | uVar16 >> 0x18" (subscript_expression "x[0xc]" identifier [ number_literal ]) = (binary_expression "uVar16 << 8 | uVar16 >> 0x18" (binary_expression "uVar16 << 8" identifier << number_literal) | (binary_expression "uVar16 >> 0x18" identifier >> number_literal))) ;) (expression_statement "x[0xb] = uVar17 + x[0xc];" (assignment_expression "x[0xb] = uVar17 + x[0xc]" (subscript_expression "x[0xb]" identifier [ number_literal ]) = (binary_expression "uVar17 + x[0xc]" identifier + (subscript_expression "x[0xc]" identifier [ number_literal ]))) ;) (expression_statement "uVar20 = uVar20 ^ x[0xb];" (assignment_expression "uVar20 = uVar20 ^ x[0xb]" identifier = (binary_expression "uVar20 ^ x[0xb]" identifier ^ (subscript_expression "x[0xb]" identifier [ number_literal ]))) ;) (expression_statement "x[6] = uVar20 << 7 | uVar20 >> 0x19;" (assignment_expression "x[6] = uVar20 << 7 | uVar20 >> 0x19" (subscript_expression "x[6]" identifier [ number_literal ]) = (binary_expression "uVar20 << 7 | uVar20 >> 0x19" (binary_expression "uVar20 << 7" identifier << number_literal) | (binary_expression "uVar20 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar11 = uVar11 << 0x10 | uVar11 >> 0x10;" (assignment_expression "uVar11 = uVar11 << 0x10 | uVar11 >> 0x10" identifier = (binary_expression "uVar11 << 0x10 | uVar11 >> 0x10" (binary_expression "uVar11 << 0x10" identifier << number_literal) | (binary_expression "uVar11 >> 0x10" identifier >> number_literal))) ;) (expression_statement "uVar19 = uVar19 + uVar11;" (assignment_expression "uVar19 = uVar19 + uVar11" identifier = (binary_expression "uVar19 + uVar11" identifier + identifier)) ;) (expression_statement "uVar24 = uVar24 ^ uVar19;" (assignment_expression "uVar24 = uVar24 ^ uVar19" identifier = (binary_expression "uVar24 ^ uVar19" identifier ^ identifier)) ;) (expression_statement "uVar16 = uVar24 << 0xc | uVar24 >> 0x14;" (assignment_expression "uVar16 = uVar24 << 0xc | uVar24 >> 0x14" identifier = (binary_expression "uVar24 << 0xc | uVar24 >> 0x14" (binary_expression "uVar24 << 0xc" identifier << number_literal) | (binary_expression "uVar24 >> 0x14" identifier >> number_literal))) ;) (expression_statement "x[2] = uVar14 + uVar16;" (assignment_expression "x[2] = uVar14 + uVar16" (subscript_expression "x[2]" identifier [ number_literal ]) = (binary_expression "uVar14 + uVar16" identifier + identifier)) ;) (expression_statement "uVar11 = uVar11 ^ x[2];" (assignment_expression "uVar11 = uVar11 ^ x[2]" identifier = (binary_expression "uVar11 ^ x[2]" identifier ^ (subscript_expression "x[2]" identifier [ number_literal ]))) ;) (expression_statement "x[0xd] = uVar11 << 8 | uVar11 >> 0x18;" (assignment_expression "x[0xd] = uVar11 << 8 | uVar11 >> 0x18" (subscript_expression "x[0xd]" identifier [ number_literal ]) = (binary_expression "uVar11 << 8 | uVar11 >> 0x18" (binary_expression "uVar11 << 8" identifier << number_literal) | (binary_expression "uVar11 >> 0x18" identifier >> number_literal))) ;) (expression_statement "x[8] = uVar19 + x[0xd];" (assignment_expression "x[8] = uVar19 + x[0xd]" (subscript_expression "x[8]" identifier [ number_literal ]) = (binary_expression "uVar19 + x[0xd]" identifier + (subscript_expression "x[0xd]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = uVar16 ^ x[8];" (assignment_expression "uVar16 = uVar16 ^ x[8]" identifier = (binary_expression "uVar16 ^ x[8]" identifier ^ (subscript_expression "x[8]" identifier [ number_literal ]))) ;) (expression_statement "local_118 = uVar16 << 7 | uVar16 >> 0x19;" (assignment_expression "local_118 = uVar16 << 7 | uVar16 >> 0x19" identifier = (binary_expression "uVar16 << 7 | uVar16 >> 0x19" (binary_expression "uVar16 << 7" identifier << number_literal) | (binary_expression "uVar16 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar11 = uVar15 << 0x10 | uVar15 >> 0x10;" (assignment_expression "uVar11 = uVar15 << 0x10 | uVar15 >> 0x10" identifier = (binary_expression "uVar15 << 0x10 | uVar15 >> 0x10" (binary_expression "uVar15 << 0x10" identifier << number_literal) | (binary_expression "uVar15 >> 0x10" identifier >> number_literal))) ;) (expression_statement "uVar22 = uVar22 + uVar11;" (assignment_expression "uVar22 = uVar22 + uVar11" identifier = (binary_expression "uVar22 + uVar11" identifier + identifier)) ;) (expression_statement "uVar28 = uVar28 ^ uVar22;" (assignment_expression "uVar28 = uVar28 ^ uVar22" identifier = (binary_expression "uVar28 ^ uVar22" identifier ^ identifier)) ;) (expression_statement "uVar16 = uVar28 << 0xc | uVar28 >> 0x14;" (assignment_expression "uVar16 = uVar28 << 0xc | uVar28 >> 0x14" identifier = (binary_expression "uVar28 << 0xc | uVar28 >> 0x14" (binary_expression "uVar28 << 0xc" identifier << number_literal) | (binary_expression "uVar28 >> 0x14" identifier >> number_literal))) ;) (expression_statement "x[3] = uVar32 + uVar16;" (assignment_expression "x[3] = uVar32 + uVar16" (subscript_expression "x[3]" identifier [ number_literal ]) = (binary_expression "uVar32 + uVar16" identifier + identifier)) ;) (expression_statement "uVar11 = uVar11 ^ x[3];" (assignment_expression "uVar11 = uVar11 ^ x[3]" identifier = (binary_expression "uVar11 ^ x[3]" identifier ^ (subscript_expression "x[3]" identifier [ number_literal ]))) ;) (expression_statement "x[0xe] = uVar11 << 8 | uVar11 >> 0x18;" (assignment_expression "x[0xe] = uVar11 << 8 | uVar11 >> 0x18" (subscript_expression "x[0xe]" identifier [ number_literal ]) = (binary_expression "uVar11 << 8 | uVar11 >> 0x18" (binary_expression "uVar11 << 8" identifier << number_literal) | (binary_expression "uVar11 >> 0x18" identifier >> number_literal))) ;) (expression_statement "x[9] = uVar22 + x[0xe];" (assignment_expression "x[9] = uVar22 + x[0xe]" (subscript_expression "x[9]" identifier [ number_literal ]) = (binary_expression "uVar22 + x[0xe]" identifier + (subscript_expression "x[0xe]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = uVar16 ^ x[9];" (assignment_expression "uVar16 = uVar16 ^ x[9]" identifier = (binary_expression "uVar16 ^ x[9]" identifier ^ (subscript_expression "x[9]" identifier [ number_literal ]))) ;) (expression_statement "x[4] = uVar16 << 7 | uVar16 >> 0x19;" (assignment_expression "x[4] = uVar16 << 7 | uVar16 >> 0x19" (subscript_expression "x[4]" identifier [ number_literal ]) = (binary_expression "uVar16 << 7 | uVar16 >> 0x19" (binary_expression "uVar16 << 7" identifier << number_literal) | (binary_expression "uVar16 >> 0x19" identifier >> number_literal))) ;) (expression_statement "x[7] = local_118;" (assignment_expression "x[7] = local_118" (subscript_expression "x[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "x[10] = local_114;" (assignment_expression "x[10] = local_114" (subscript_expression "x[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "x[0xf] = local_11c;" (assignment_expression "x[0xf] = local_11c" (subscript_expression "x[0xf]" identifier [ number_literal ]) = identifier) ;) }) while (parenthesized_expression "(0 < local_138)" ( (binary_expression "0 < local_138" number_literal < identifier) )) ;) })) (expression_statement "buf._0_4_ = x[0] + st->input[0];" (assignment_expression "buf._0_4_ = x[0] + st->input[0]" (field_expression "buf._0_4_" identifier . field_identifier) = (binary_expression "x[0] + st->input[0]" (subscript_expression "x[0]" identifier [ number_literal ]) + (subscript_expression "st->input[0]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "uVar9 = buf._0_4_;" (assignment_expression "uVar9 = buf._0_4_" identifier = (field_expression "buf._0_4_" identifier . field_identifier)) ;) (expression_statement "buf._8_4_ = st->input[2] + x[2];" (assignment_expression "buf._8_4_ = st->input[2] + x[2]" (field_expression "buf._8_4_" identifier . field_identifier) = (binary_expression "st->input[2] + x[2]" (subscript_expression "st->input[2]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) + (subscript_expression "x[2]" identifier [ number_literal ]))) ;) (expression_statement "buf._12_4_ = st->input[3] + x[3];" (assignment_expression "buf._12_4_ = st->input[3] + x[3]" (field_expression "buf._12_4_" identifier . field_identifier) = (binary_expression "st->input[3] + x[3]" (subscript_expression "st->input[3]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) + (subscript_expression "x[3]" identifier [ number_literal ]))) ;) (expression_statement "buf._4_4_ = st->input[1] + x[1];" (assignment_expression "buf._4_4_ = st->input[1] + x[1]" (field_expression "buf._4_4_" identifier . field_identifier) = (binary_expression "st->input[1] + x[1]" (subscript_expression "st->input[1]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) + (subscript_expression "x[1]" identifier [ number_literal ]))) ;) (expression_statement "buf._16_4_ = st->input[4] + x[4];" (assignment_expression "buf._16_4_ = st->input[4] + x[4]" (field_expression "buf._16_4_" identifier . field_identifier) = (binary_expression "st->input[4] + x[4]" (subscript_expression "st->input[4]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) + (subscript_expression "x[4]" identifier [ number_literal ]))) ;) (expression_statement "buf._20_4_ = st->input[5] + x[5];" (assignment_expression "buf._20_4_ = st->input[5] + x[5]" (field_expression "buf._20_4_" identifier . field_identifier) = (binary_expression "st->input[5] + x[5]" (subscript_expression "st->input[5]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) + (subscript_expression "x[5]" identifier [ number_literal ]))) ;) (expression_statement "buf._24_4_ = st->input[6] + x[6];" (assignment_expression "buf._24_4_ = st->input[6] + x[6]" (field_expression "buf._24_4_" identifier . field_identifier) = (binary_expression "st->input[6] + x[6]" (subscript_expression "st->input[6]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) + (subscript_expression "x[6]" identifier [ number_literal ]))) ;) (expression_statement "buf._28_4_ = st->input[7] + x[7];" (assignment_expression "buf._28_4_ = st->input[7] + x[7]" (field_expression "buf._28_4_" identifier . field_identifier) = (binary_expression "st->input[7] + x[7]" (subscript_expression "st->input[7]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) + (subscript_expression "x[7]" identifier [ number_literal ]))) ;) (expression_statement "buf._32_4_ = st->input[8] + x[8];" (assignment_expression "buf._32_4_ = st->input[8] + x[8]" (field_expression "buf._32_4_" identifier . field_identifier) = (binary_expression "st->input[8] + x[8]" (subscript_expression "st->input[8]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) + (subscript_expression "x[8]" identifier [ number_literal ]))) ;) (expression_statement "buf._36_4_ = st->input[9] + x[9];" (assignment_expression "buf._36_4_ = st->input[9] + x[9]" (field_expression "buf._36_4_" identifier . field_identifier) = (binary_expression "st->input[9] + x[9]" (subscript_expression "st->input[9]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) + (subscript_expression "x[9]" identifier [ number_literal ]))) ;) (expression_statement "buf._40_4_ = st->input[10] + x[10];" (assignment_expression "buf._40_4_ = st->input[10] + x[10]" (field_expression "buf._40_4_" identifier . field_identifier) = (binary_expression "st->input[10] + x[10]" (subscript_expression "st->input[10]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) + (subscript_expression "x[10]" identifier [ number_literal ]))) ;) (expression_statement "uVar27 = st->input[0xc] + 1;" (assignment_expression "uVar27 = st->input[0xc] + 1" identifier = (binary_expression "st->input[0xc] + 1" (subscript_expression "st->input[0xc]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) + number_literal)) ;) (expression_statement "buf._44_4_ = st->input[0xb] + x[0xb];" (assignment_expression "buf._44_4_ = st->input[0xb] + x[0xb]" (field_expression "buf._44_4_" identifier . field_identifier) = (binary_expression "st->input[0xb] + x[0xb]" (subscript_expression "st->input[0xb]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) + (subscript_expression "x[0xb]" identifier [ number_literal ]))) ;) (expression_statement "buf._48_4_ = x[0xc] + st->input[0xc];" (assignment_expression "buf._48_4_ = x[0xc] + st->input[0xc]" (field_expression "buf._48_4_" identifier . field_identifier) = (binary_expression "x[0xc] + st->input[0xc]" (subscript_expression "x[0xc]" identifier [ number_literal ]) + (subscript_expression "st->input[0xc]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "buf._52_4_ = x[0xd] + st->input[0xd];" (assignment_expression "buf._52_4_ = x[0xd] + st->input[0xd]" (field_expression "buf._52_4_" identifier . field_identifier) = (binary_expression "x[0xd] + st->input[0xd]" (subscript_expression "x[0xd]" identifier [ number_literal ]) + (subscript_expression "st->input[0xd]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "buf._56_4_ = st->input[0xe] + x[0xe];" (assignment_expression "buf._56_4_ = st->input[0xe] + x[0xe]" (field_expression "buf._56_4_" identifier . field_identifier) = (binary_expression "st->input[0xe] + x[0xe]" (subscript_expression "st->input[0xe]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) + (subscript_expression "x[0xe]" identifier [ number_literal ]))) ;) (expression_statement "buf._60_4_ = x[0xf] + st->input[0xf];" (assignment_expression "buf._60_4_ = x[0xf] + st->input[0xf]" (field_expression "buf._60_4_" identifier . field_identifier) = (binary_expression "x[0xf] + st->input[0xf]" (subscript_expression "x[0xf]" identifier [ number_literal ]) + (subscript_expression "st->input[0xf]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]))) ;) (if_statement "if (local_f0 == 8) {\n        st->input[0xc] = uVar27;\n        if (uVar27 == 0) {\n          uVar27 = st->input[0xd] + 1;\n          st->input[0xd] = uVar27;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        st->input[0xc] = uVar27;\njoined_r0x0018a0dd:\n        if (uVar27 == 0) {\n          iVar10 = 0x13;\n          goto LAB_0018a413;\n        }\n      }" if (parenthesized_expression "(local_f0 == 8)" ( (binary_expression "local_f0 == 8" identifier == number_literal) )) (compound_statement "{\n        st->input[0xc] = uVar27;\n        if (uVar27 == 0) {\n          uVar27 = st->input[0xd] + 1;\n          st->input[0xd] = uVar27;\n          goto joined_r0x0018a0dd;\n        }\n      }" { (expression_statement "st->input[0xc] = uVar27;" (assignment_expression "st->input[0xc] = uVar27" (subscript_expression "st->input[0xc]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (if_statement "if (uVar27 == 0) {\n          uVar27 = st->input[0xd] + 1;\n          st->input[0xd] = uVar27;\n          goto joined_r0x0018a0dd;\n        }" if (parenthesized_expression "(uVar27 == 0)" ( (binary_expression "uVar27 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar27 = st->input[0xd] + 1;\n          st->input[0xd] = uVar27;\n          goto joined_r0x0018a0dd;\n        }" { (expression_statement "uVar27 = st->input[0xd] + 1;" (assignment_expression "uVar27 = st->input[0xd] + 1" identifier = (binary_expression "st->input[0xd] + 1" (subscript_expression "st->input[0xd]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) + number_literal)) ;) (expression_statement "st->input[0xd] = uVar27;" (assignment_expression "st->input[0xd] = uVar27" (subscript_expression "st->input[0xd]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (goto_statement "goto joined_r0x0018a0dd;" goto statement_identifier ;) })) }) (else_clause "else {\n        st->input[0xc] = uVar27;\njoined_r0x0018a0dd:\n        if (uVar27 == 0) {\n          iVar10 = 0x13;\n          goto LAB_0018a413;\n        }\n      }" else (compound_statement "{\n        st->input[0xc] = uVar27;\njoined_r0x0018a0dd:\n        if (uVar27 == 0) {\n          iVar10 = 0x13;\n          goto LAB_0018a413;\n        }\n      }" { (expression_statement "st->input[0xc] = uVar27;" (assignment_expression "st->input[0xc] = uVar27" (subscript_expression "st->input[0xc]" (field_expression "st->input" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (labeled_statement "joined_r0x0018a0dd:\n        if (uVar27 == 0) {\n          iVar10 = 0x13;\n          goto LAB_0018a413;\n        }" statement_identifier : (if_statement "if (uVar27 == 0) {\n          iVar10 = 0x13;\n          goto LAB_0018a413;\n        }" if (parenthesized_expression "(uVar27 == 0)" ( (binary_expression "uVar27 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar10 = 0x13;\n          goto LAB_0018a413;\n        }" { (expression_statement "iVar10 = 0x13;" (assignment_expression "iVar10 = 0x13" identifier = number_literal) ;) (goto_statement "goto LAB_0018a413;" goto statement_identifier ;) }))) }))) (if_statement "if (local_100 < 0x41) goto LAB_0018a0ed;" if (parenthesized_expression "(local_100 < 0x41)" ( (binary_expression "local_100 < 0x41" identifier < number_literal) )) (goto_statement "goto LAB_0018a0ed;" goto statement_identifier ;)) (expression_statement "lVar13 = 0;" (assignment_expression "lVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n        pbVar31[lVar13] = pbVar12[lVar13] ^ buf[lVar13];\n        pbVar31[lVar13 + 1] = pbVar12[lVar13 + 1] ^ buf[lVar13 + 1];\n        pbVar31[lVar13 + 2] = pbVar12[lVar13 + 2] ^ buf[lVar13 + 2];\n        pbVar31[lVar13 + 3] = pbVar12[lVar13 + 3] ^ buf[lVar13 + 3];\n        pbVar31[lVar13 + 4] = pbVar12[lVar13 + 4] ^ buf[lVar13 + 4];\n        pbVar31[lVar13 + 5] = pbVar12[lVar13 + 5] ^ buf[lVar13 + 5];\n        pbVar31[lVar13 + 6] = pbVar12[lVar13 + 6] ^ buf[lVar13 + 6];\n        pbVar31[lVar13 + 7] = pbVar12[lVar13 + 7] ^ buf[lVar13 + 7];\n        lVar13 = lVar13 + 8;\n      } while (lVar13 != 0x40);" do (compound_statement "{\n        pbVar31[lVar13] = pbVar12[lVar13] ^ buf[lVar13];\n        pbVar31[lVar13 + 1] = pbVar12[lVar13 + 1] ^ buf[lVar13 + 1];\n        pbVar31[lVar13 + 2] = pbVar12[lVar13 + 2] ^ buf[lVar13 + 2];\n        pbVar31[lVar13 + 3] = pbVar12[lVar13 + 3] ^ buf[lVar13 + 3];\n        pbVar31[lVar13 + 4] = pbVar12[lVar13 + 4] ^ buf[lVar13 + 4];\n        pbVar31[lVar13 + 5] = pbVar12[lVar13 + 5] ^ buf[lVar13 + 5];\n        pbVar31[lVar13 + 6] = pbVar12[lVar13 + 6] ^ buf[lVar13 + 6];\n        pbVar31[lVar13 + 7] = pbVar12[lVar13 + 7] ^ buf[lVar13 + 7];\n        lVar13 = lVar13 + 8;\n      }" { (expression_statement "pbVar31[lVar13] = pbVar12[lVar13] ^ buf[lVar13];" (assignment_expression "pbVar31[lVar13] = pbVar12[lVar13] ^ buf[lVar13]" (subscript_expression "pbVar31[lVar13]" identifier [ identifier ]) = (binary_expression "pbVar12[lVar13] ^ buf[lVar13]" (subscript_expression "pbVar12[lVar13]" identifier [ identifier ]) ^ (subscript_expression "buf[lVar13]" identifier [ identifier ]))) ;) (expression_statement "pbVar31[lVar13 + 1] = pbVar12[lVar13 + 1] ^ buf[lVar13 + 1];" (assignment_expression "pbVar31[lVar13 + 1] = pbVar12[lVar13 + 1] ^ buf[lVar13 + 1]" (subscript_expression "pbVar31[lVar13 + 1]" identifier [ (binary_expression "lVar13 + 1" identifier + number_literal) ]) = (binary_expression "pbVar12[lVar13 + 1] ^ buf[lVar13 + 1]" (subscript_expression "pbVar12[lVar13 + 1]" identifier [ (binary_expression "lVar13 + 1" identifier + number_literal) ]) ^ (subscript_expression "buf[lVar13 + 1]" identifier [ (binary_expression "lVar13 + 1" identifier + number_literal) ]))) ;) (expression_statement "pbVar31[lVar13 + 2] = pbVar12[lVar13 + 2] ^ buf[lVar13 + 2];" (assignment_expression "pbVar31[lVar13 + 2] = pbVar12[lVar13 + 2] ^ buf[lVar13 + 2]" (subscript_expression "pbVar31[lVar13 + 2]" identifier [ (binary_expression "lVar13 + 2" identifier + number_literal) ]) = (binary_expression "pbVar12[lVar13 + 2] ^ buf[lVar13 + 2]" (subscript_expression "pbVar12[lVar13 + 2]" identifier [ (binary_expression "lVar13 + 2" identifier + number_literal) ]) ^ (subscript_expression "buf[lVar13 + 2]" identifier [ (binary_expression "lVar13 + 2" identifier + number_literal) ]))) ;) (expression_statement "pbVar31[lVar13 + 3] = pbVar12[lVar13 + 3] ^ buf[lVar13 + 3];" (assignment_expression "pbVar31[lVar13 + 3] = pbVar12[lVar13 + 3] ^ buf[lVar13 + 3]" (subscript_expression "pbVar31[lVar13 + 3]" identifier [ (binary_expression "lVar13 + 3" identifier + number_literal) ]) = (binary_expression "pbVar12[lVar13 + 3] ^ buf[lVar13 + 3]" (subscript_expression "pbVar12[lVar13 + 3]" identifier [ (binary_expression "lVar13 + 3" identifier + number_literal) ]) ^ (subscript_expression "buf[lVar13 + 3]" identifier [ (binary_expression "lVar13 + 3" identifier + number_literal) ]))) ;) (expression_statement "pbVar31[lVar13 + 4] = pbVar12[lVar13 + 4] ^ buf[lVar13 + 4];" (assignment_expression "pbVar31[lVar13 + 4] = pbVar12[lVar13 + 4] ^ buf[lVar13 + 4]" (subscript_expression "pbVar31[lVar13 + 4]" identifier [ (binary_expression "lVar13 + 4" identifier + number_literal) ]) = (binary_expression "pbVar12[lVar13 + 4] ^ buf[lVar13 + 4]" (subscript_expression "pbVar12[lVar13 + 4]" identifier [ (binary_expression "lVar13 + 4" identifier + number_literal) ]) ^ (subscript_expression "buf[lVar13 + 4]" identifier [ (binary_expression "lVar13 + 4" identifier + number_literal) ]))) ;) (expression_statement "pbVar31[lVar13 + 5] = pbVar12[lVar13 + 5] ^ buf[lVar13 + 5];" (assignment_expression "pbVar31[lVar13 + 5] = pbVar12[lVar13 + 5] ^ buf[lVar13 + 5]" (subscript_expression "pbVar31[lVar13 + 5]" identifier [ (binary_expression "lVar13 + 5" identifier + number_literal) ]) = (binary_expression "pbVar12[lVar13 + 5] ^ buf[lVar13 + 5]" (subscript_expression "pbVar12[lVar13 + 5]" identifier [ (binary_expression "lVar13 + 5" identifier + number_literal) ]) ^ (subscript_expression "buf[lVar13 + 5]" identifier [ (binary_expression "lVar13 + 5" identifier + number_literal) ]))) ;) (expression_statement "pbVar31[lVar13 + 6] = pbVar12[lVar13 + 6] ^ buf[lVar13 + 6];" (assignment_expression "pbVar31[lVar13 + 6] = pbVar12[lVar13 + 6] ^ buf[lVar13 + 6]" (subscript_expression "pbVar31[lVar13 + 6]" identifier [ (binary_expression "lVar13 + 6" identifier + number_literal) ]) = (binary_expression "pbVar12[lVar13 + 6] ^ buf[lVar13 + 6]" (subscript_expression "pbVar12[lVar13 + 6]" identifier [ (binary_expression "lVar13 + 6" identifier + number_literal) ]) ^ (subscript_expression "buf[lVar13 + 6]" identifier [ (binary_expression "lVar13 + 6" identifier + number_literal) ]))) ;) (expression_statement "pbVar31[lVar13 + 7] = pbVar12[lVar13 + 7] ^ buf[lVar13 + 7];" (assignment_expression "pbVar31[lVar13 + 7] = pbVar12[lVar13 + 7] ^ buf[lVar13 + 7]" (subscript_expression "pbVar31[lVar13 + 7]" identifier [ (binary_expression "lVar13 + 7" identifier + number_literal) ]) = (binary_expression "pbVar12[lVar13 + 7] ^ buf[lVar13 + 7]" (subscript_expression "pbVar12[lVar13 + 7]" identifier [ (binary_expression "lVar13 + 7" identifier + number_literal) ]) ^ (subscript_expression "buf[lVar13 + 7]" identifier [ (binary_expression "lVar13 + 7" identifier + number_literal) ]))) ;) (expression_statement "lVar13 = lVar13 + 8;" (assignment_expression "lVar13 = lVar13 + 8" identifier = (binary_expression "lVar13 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar13 != 0x40)" ( (binary_expression "lVar13 != 0x40" identifier != number_literal) )) ;) (expression_statement "local_100 = local_100 - 0x40;" (assignment_expression "local_100 = local_100 - 0x40" identifier = (binary_expression "local_100 - 0x40" identifier - number_literal)) ;) (expression_statement "local_f0 = st->ivlen;" (assignment_expression "local_f0 = st->ivlen" identifier = (field_expression "st->ivlen" identifier -> field_identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0018a411;" goto statement_identifier ;) (labeled_statement "LAB_0018a0ed:\n  uVar18 = 0;" statement_identifier : (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;)) (expression_statement "uVar22 = (uint)local_100 & 7;" (assignment_expression "uVar22 = (uint)local_100 & 7" identifier = (binary_expression "(uint)local_100 & 7" (cast_expression "(uint)local_100" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((local_100 & 7) == 0) goto LAB_0018a1e3;" if (parenthesized_expression "((local_100 & 7) == 0)" ( (binary_expression "(local_100 & 7) == 0" (parenthesized_expression "(local_100 & 7)" ( (binary_expression "local_100 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0018a1e3;" goto statement_identifier ;)) (if_statement "if (uVar22 != 1) {\n    if (uVar22 != 2) {\n      if (uVar22 != 3) {\n        if (uVar22 != 4) {\n          if (uVar22 != 5) {\n            if (uVar22 != 6) {\n              *pbVar31 = *pbVar12 ^ buf[0];\n            }\n            uVar18 = (ulong)(uVar22 != 6);\n            pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n            uVar18 = uVar18 + 1;\n          }\n          pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n          uVar18 = uVar18 + 1;\n        }\n        pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n        uVar18 = uVar18 + 1;\n      }\n      pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n      uVar18 = uVar18 + 1;\n    }\n    pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n    uVar18 = uVar18 + 1;\n  }" if (parenthesized_expression "(uVar22 != 1)" ( (binary_expression "uVar22 != 1" identifier != number_literal) )) (compound_statement "{\n    if (uVar22 != 2) {\n      if (uVar22 != 3) {\n        if (uVar22 != 4) {\n          if (uVar22 != 5) {\n            if (uVar22 != 6) {\n              *pbVar31 = *pbVar12 ^ buf[0];\n            }\n            uVar18 = (ulong)(uVar22 != 6);\n            pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n            uVar18 = uVar18 + 1;\n          }\n          pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n          uVar18 = uVar18 + 1;\n        }\n        pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n        uVar18 = uVar18 + 1;\n      }\n      pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n      uVar18 = uVar18 + 1;\n    }\n    pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n    uVar18 = uVar18 + 1;\n  }" { (if_statement "if (uVar22 != 2) {\n      if (uVar22 != 3) {\n        if (uVar22 != 4) {\n          if (uVar22 != 5) {\n            if (uVar22 != 6) {\n              *pbVar31 = *pbVar12 ^ buf[0];\n            }\n            uVar18 = (ulong)(uVar22 != 6);\n            pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n            uVar18 = uVar18 + 1;\n          }\n          pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n          uVar18 = uVar18 + 1;\n        }\n        pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n        uVar18 = uVar18 + 1;\n      }\n      pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n      uVar18 = uVar18 + 1;\n    }" if (parenthesized_expression "(uVar22 != 2)" ( (binary_expression "uVar22 != 2" identifier != number_literal) )) (compound_statement "{\n      if (uVar22 != 3) {\n        if (uVar22 != 4) {\n          if (uVar22 != 5) {\n            if (uVar22 != 6) {\n              *pbVar31 = *pbVar12 ^ buf[0];\n            }\n            uVar18 = (ulong)(uVar22 != 6);\n            pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n            uVar18 = uVar18 + 1;\n          }\n          pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n          uVar18 = uVar18 + 1;\n        }\n        pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n        uVar18 = uVar18 + 1;\n      }\n      pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n      uVar18 = uVar18 + 1;\n    }" { (if_statement "if (uVar22 != 3) {\n        if (uVar22 != 4) {\n          if (uVar22 != 5) {\n            if (uVar22 != 6) {\n              *pbVar31 = *pbVar12 ^ buf[0];\n            }\n            uVar18 = (ulong)(uVar22 != 6);\n            pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n            uVar18 = uVar18 + 1;\n          }\n          pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n          uVar18 = uVar18 + 1;\n        }\n        pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n        uVar18 = uVar18 + 1;\n      }" if (parenthesized_expression "(uVar22 != 3)" ( (binary_expression "uVar22 != 3" identifier != number_literal) )) (compound_statement "{\n        if (uVar22 != 4) {\n          if (uVar22 != 5) {\n            if (uVar22 != 6) {\n              *pbVar31 = *pbVar12 ^ buf[0];\n            }\n            uVar18 = (ulong)(uVar22 != 6);\n            pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n            uVar18 = uVar18 + 1;\n          }\n          pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n          uVar18 = uVar18 + 1;\n        }\n        pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n        uVar18 = uVar18 + 1;\n      }" { (if_statement "if (uVar22 != 4) {\n          if (uVar22 != 5) {\n            if (uVar22 != 6) {\n              *pbVar31 = *pbVar12 ^ buf[0];\n            }\n            uVar18 = (ulong)(uVar22 != 6);\n            pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n            uVar18 = uVar18 + 1;\n          }\n          pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n          uVar18 = uVar18 + 1;\n        }" if (parenthesized_expression "(uVar22 != 4)" ( (binary_expression "uVar22 != 4" identifier != number_literal) )) (compound_statement "{\n          if (uVar22 != 5) {\n            if (uVar22 != 6) {\n              *pbVar31 = *pbVar12 ^ buf[0];\n            }\n            uVar18 = (ulong)(uVar22 != 6);\n            pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n            uVar18 = uVar18 + 1;\n          }\n          pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n          uVar18 = uVar18 + 1;\n        }" { (if_statement "if (uVar22 != 5) {\n            if (uVar22 != 6) {\n              *pbVar31 = *pbVar12 ^ buf[0];\n            }\n            uVar18 = (ulong)(uVar22 != 6);\n            pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n            uVar18 = uVar18 + 1;\n          }" if (parenthesized_expression "(uVar22 != 5)" ( (binary_expression "uVar22 != 5" identifier != number_literal) )) (compound_statement "{\n            if (uVar22 != 6) {\n              *pbVar31 = *pbVar12 ^ buf[0];\n            }\n            uVar18 = (ulong)(uVar22 != 6);\n            pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n            uVar18 = uVar18 + 1;\n          }" { (if_statement "if (uVar22 != 6) {\n              *pbVar31 = *pbVar12 ^ buf[0];\n            }" if (parenthesized_expression "(uVar22 != 6)" ( (binary_expression "uVar22 != 6" identifier != number_literal) )) (compound_statement "{\n              *pbVar31 = *pbVar12 ^ buf[0];\n            }" { (expression_statement "*pbVar31 = *pbVar12 ^ buf[0];" (assignment_expression "*pbVar31 = *pbVar12 ^ buf[0]" (pointer_expression "*pbVar31" * identifier) = (binary_expression "*pbVar12 ^ buf[0]" (pointer_expression "*pbVar12" * identifier) ^ (subscript_expression "buf[0]" identifier [ number_literal ]))) ;) })) (expression_statement "uVar18 = (ulong)(uVar22 != 6);" (assignment_expression "uVar18 = (ulong)(uVar22 != 6)" identifier = (call_expression "(ulong)(uVar22 != 6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar22 != 6)" ( (binary_expression "uVar22 != 6" identifier != number_literal) )))) ;) (expression_statement "pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];" (assignment_expression "pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18]" (subscript_expression "pbVar31[uVar18]" identifier [ identifier ]) = (binary_expression "pbVar12[uVar18] ^ buf[uVar18]" (subscript_expression "pbVar12[uVar18]" identifier [ identifier ]) ^ (subscript_expression "buf[uVar18]" identifier [ identifier ]))) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];" (assignment_expression "pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18]" (subscript_expression "pbVar31[uVar18]" identifier [ identifier ]) = (binary_expression "pbVar12[uVar18] ^ buf[uVar18]" (subscript_expression "pbVar12[uVar18]" identifier [ identifier ]) ^ (subscript_expression "buf[uVar18]" identifier [ identifier ]))) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];" (assignment_expression "pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18]" (subscript_expression "pbVar31[uVar18]" identifier [ identifier ]) = (binary_expression "pbVar12[uVar18] ^ buf[uVar18]" (subscript_expression "pbVar12[uVar18]" identifier [ identifier ]) ^ (subscript_expression "buf[uVar18]" identifier [ identifier ]))) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];" (assignment_expression "pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18]" (subscript_expression "pbVar31[uVar18]" identifier [ identifier ]) = (binary_expression "pbVar12[uVar18] ^ buf[uVar18]" (subscript_expression "pbVar12[uVar18]" identifier [ identifier ]) ^ (subscript_expression "buf[uVar18]" identifier [ identifier ]))) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];" (assignment_expression "pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18]" (subscript_expression "pbVar31[uVar18]" identifier [ identifier ]) = (binary_expression "pbVar12[uVar18] ^ buf[uVar18]" (subscript_expression "pbVar12[uVar18]" identifier [ identifier ]) ^ (subscript_expression "buf[uVar18]" identifier [ identifier ]))) ;) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];" (assignment_expression "pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18]" (subscript_expression "pbVar31[uVar18]" identifier [ identifier ]) = (binary_expression "pbVar12[uVar18] ^ buf[uVar18]" (subscript_expression "pbVar12[uVar18]" identifier [ identifier ]) ^ (subscript_expression "buf[uVar18]" identifier [ identifier ]))) ;) (for_statement "for (uVar18 = uVar18 + 1; local_100 != uVar18; uVar18 = uVar18 + 8) {\nLAB_0018a1e3:\n    pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n    pbVar31[uVar18 + 1] = pbVar12[uVar18 + 1] ^ buf[uVar18 + 1];\n    pbVar31[uVar18 + 2] = pbVar12[uVar18 + 2] ^ buf[uVar18 + 2];\n    pbVar31[uVar18 + 3] = pbVar12[uVar18 + 3] ^ buf[uVar18 + 3];\n    pbVar31[uVar18 + 4] = pbVar12[uVar18 + 4] ^ buf[uVar18 + 4];\n    pbVar31[uVar18 + 5] = pbVar12[uVar18 + 5] ^ buf[uVar18 + 5];\n    pbVar31[uVar18 + 6] = pbVar12[uVar18 + 6] ^ buf[uVar18 + 6];\n    pbVar31[uVar18 + 7] = pbVar12[uVar18 + 7] ^ buf[uVar18 + 7];\n  }" for ( (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ; (binary_expression "local_100 != uVar18" identifier != identifier) ; (assignment_expression "uVar18 = uVar18 + 8" identifier = (binary_expression "uVar18 + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_0018a1e3:\n    pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];\n    pbVar31[uVar18 + 1] = pbVar12[uVar18 + 1] ^ buf[uVar18 + 1];\n    pbVar31[uVar18 + 2] = pbVar12[uVar18 + 2] ^ buf[uVar18 + 2];\n    pbVar31[uVar18 + 3] = pbVar12[uVar18 + 3] ^ buf[uVar18 + 3];\n    pbVar31[uVar18 + 4] = pbVar12[uVar18 + 4] ^ buf[uVar18 + 4];\n    pbVar31[uVar18 + 5] = pbVar12[uVar18 + 5] ^ buf[uVar18 + 5];\n    pbVar31[uVar18 + 6] = pbVar12[uVar18 + 6] ^ buf[uVar18 + 6];\n    pbVar31[uVar18 + 7] = pbVar12[uVar18 + 7] ^ buf[uVar18 + 7];\n  }" { (labeled_statement "LAB_0018a1e3:\n    pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];" statement_identifier : (expression_statement "pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18];" (assignment_expression "pbVar31[uVar18] = pbVar12[uVar18] ^ buf[uVar18]" (subscript_expression "pbVar31[uVar18]" identifier [ identifier ]) = (binary_expression "pbVar12[uVar18] ^ buf[uVar18]" (subscript_expression "pbVar12[uVar18]" identifier [ identifier ]) ^ (subscript_expression "buf[uVar18]" identifier [ identifier ]))) ;)) (expression_statement "pbVar31[uVar18 + 1] = pbVar12[uVar18 + 1] ^ buf[uVar18 + 1];" (assignment_expression "pbVar31[uVar18 + 1] = pbVar12[uVar18 + 1] ^ buf[uVar18 + 1]" (subscript_expression "pbVar31[uVar18 + 1]" identifier [ (binary_expression "uVar18 + 1" identifier + number_literal) ]) = (binary_expression "pbVar12[uVar18 + 1] ^ buf[uVar18 + 1]" (subscript_expression "pbVar12[uVar18 + 1]" identifier [ (binary_expression "uVar18 + 1" identifier + number_literal) ]) ^ (subscript_expression "buf[uVar18 + 1]" identifier [ (binary_expression "uVar18 + 1" identifier + number_literal) ]))) ;) (expression_statement "pbVar31[uVar18 + 2] = pbVar12[uVar18 + 2] ^ buf[uVar18 + 2];" (assignment_expression "pbVar31[uVar18 + 2] = pbVar12[uVar18 + 2] ^ buf[uVar18 + 2]" (subscript_expression "pbVar31[uVar18 + 2]" identifier [ (binary_expression "uVar18 + 2" identifier + number_literal) ]) = (binary_expression "pbVar12[uVar18 + 2] ^ buf[uVar18 + 2]" (subscript_expression "pbVar12[uVar18 + 2]" identifier [ (binary_expression "uVar18 + 2" identifier + number_literal) ]) ^ (subscript_expression "buf[uVar18 + 2]" identifier [ (binary_expression "uVar18 + 2" identifier + number_literal) ]))) ;) (expression_statement "pbVar31[uVar18 + 3] = pbVar12[uVar18 + 3] ^ buf[uVar18 + 3];" (assignment_expression "pbVar31[uVar18 + 3] = pbVar12[uVar18 + 3] ^ buf[uVar18 + 3]" (subscript_expression "pbVar31[uVar18 + 3]" identifier [ (binary_expression "uVar18 + 3" identifier + number_literal) ]) = (binary_expression "pbVar12[uVar18 + 3] ^ buf[uVar18 + 3]" (subscript_expression "pbVar12[uVar18 + 3]" identifier [ (binary_expression "uVar18 + 3" identifier + number_literal) ]) ^ (subscript_expression "buf[uVar18 + 3]" identifier [ (binary_expression "uVar18 + 3" identifier + number_literal) ]))) ;) (expression_statement "pbVar31[uVar18 + 4] = pbVar12[uVar18 + 4] ^ buf[uVar18 + 4];" (assignment_expression "pbVar31[uVar18 + 4] = pbVar12[uVar18 + 4] ^ buf[uVar18 + 4]" (subscript_expression "pbVar31[uVar18 + 4]" identifier [ (binary_expression "uVar18 + 4" identifier + number_literal) ]) = (binary_expression "pbVar12[uVar18 + 4] ^ buf[uVar18 + 4]" (subscript_expression "pbVar12[uVar18 + 4]" identifier [ (binary_expression "uVar18 + 4" identifier + number_literal) ]) ^ (subscript_expression "buf[uVar18 + 4]" identifier [ (binary_expression "uVar18 + 4" identifier + number_literal) ]))) ;) (expression_statement "pbVar31[uVar18 + 5] = pbVar12[uVar18 + 5] ^ buf[uVar18 + 5];" (assignment_expression "pbVar31[uVar18 + 5] = pbVar12[uVar18 + 5] ^ buf[uVar18 + 5]" (subscript_expression "pbVar31[uVar18 + 5]" identifier [ (binary_expression "uVar18 + 5" identifier + number_literal) ]) = (binary_expression "pbVar12[uVar18 + 5] ^ buf[uVar18 + 5]" (subscript_expression "pbVar12[uVar18 + 5]" identifier [ (binary_expression "uVar18 + 5" identifier + number_literal) ]) ^ (subscript_expression "buf[uVar18 + 5]" identifier [ (binary_expression "uVar18 + 5" identifier + number_literal) ]))) ;) (expression_statement "pbVar31[uVar18 + 6] = pbVar12[uVar18 + 6] ^ buf[uVar18 + 6];" (assignment_expression "pbVar31[uVar18 + 6] = pbVar12[uVar18 + 6] ^ buf[uVar18 + 6]" (subscript_expression "pbVar31[uVar18 + 6]" identifier [ (binary_expression "uVar18 + 6" identifier + number_literal) ]) = (binary_expression "pbVar12[uVar18 + 6] ^ buf[uVar18 + 6]" (subscript_expression "pbVar12[uVar18 + 6]" identifier [ (binary_expression "uVar18 + 6" identifier + number_literal) ]) ^ (subscript_expression "buf[uVar18 + 6]" identifier [ (binary_expression "uVar18 + 6" identifier + number_literal) ]))) ;) (expression_statement "pbVar31[uVar18 + 7] = pbVar12[uVar18 + 7] ^ buf[uVar18 + 7];" (assignment_expression "pbVar31[uVar18 + 7] = pbVar12[uVar18 + 7] ^ buf[uVar18 + 7]" (subscript_expression "pbVar31[uVar18 + 7]" identifier [ (binary_expression "uVar18 + 7" identifier + number_literal) ]) = (binary_expression "pbVar12[uVar18 + 7] ^ buf[uVar18 + 7]" (subscript_expression "pbVar12[uVar18 + 7]" identifier [ (binary_expression "uVar18 + 7" identifier + number_literal) ]) ^ (subscript_expression "buf[uVar18 + 7]" identifier [ (binary_expression "uVar18 + 7" identifier + number_literal) ]))) ;) })) (expression_statement "st->ksleft = 0x40 - local_100;" (assignment_expression "st->ksleft = 0x40 - local_100" (field_expression "st->ksleft" identifier -> field_identifier) = (binary_expression "0x40 - local_100" number_literal - identifier)) ;) (expression_statement "buf._0_4_ = uVar9;" (assignment_expression "buf._0_4_ = uVar9" (field_expression "buf._0_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (local_100 != 0x40) {\n    uVar22 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }\n              st->kstream[local_100] = buf[local_100];\n              local_100 = local_100 + 1;\n            }\n            st->kstream[local_100] = buf[local_100];\n            local_100 = local_100 + 1;\n          }\n          st->kstream[local_100] = buf[local_100];\n          local_100 = local_100 + 1;\n        }\n        st->kstream[local_100] = buf[local_100];\n        local_100 = local_100 + 1;\n      }\n      st->kstream[local_100] = buf[local_100];\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = buf[local_100 + 1];\n      uVar2 = buf[local_100 + 2];\n      uVar3 = buf[local_100 + 3];\n      uVar4 = buf[local_100 + 4];\n      uVar5 = buf[local_100 + 5];\n      st->kstream[local_100] = buf[local_100];\n      uVar6 = buf[local_100 + 6];\n      uVar7 = buf[local_100 + 7];\n      st->kstream[local_100 + 1] = uVar1;\n      st->kstream[local_100 + 2] = uVar2;\n      st->kstream[local_100 + 3] = uVar3;\n      st->kstream[local_100 + 4] = uVar4;\n      st->kstream[local_100 + 5] = uVar5;\n      st->kstream[local_100 + 6] = uVar6;\n      st->kstream[local_100 + 7] = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }" if (parenthesized_expression "(local_100 != 0x40)" ( (binary_expression "local_100 != 0x40" identifier != number_literal) )) (compound_statement "{\n    uVar22 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }\n              st->kstream[local_100] = buf[local_100];\n              local_100 = local_100 + 1;\n            }\n            st->kstream[local_100] = buf[local_100];\n            local_100 = local_100 + 1;\n          }\n          st->kstream[local_100] = buf[local_100];\n          local_100 = local_100 + 1;\n        }\n        st->kstream[local_100] = buf[local_100];\n        local_100 = local_100 + 1;\n      }\n      st->kstream[local_100] = buf[local_100];\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = buf[local_100 + 1];\n      uVar2 = buf[local_100 + 2];\n      uVar3 = buf[local_100 + 3];\n      uVar4 = buf[local_100 + 4];\n      uVar5 = buf[local_100 + 5];\n      st->kstream[local_100] = buf[local_100];\n      uVar6 = buf[local_100 + 6];\n      uVar7 = buf[local_100 + 7];\n      st->kstream[local_100 + 1] = uVar1;\n      st->kstream[local_100 + 2] = uVar2;\n      st->kstream[local_100 + 3] = uVar3;\n      st->kstream[local_100 + 4] = uVar4;\n      st->kstream[local_100 + 5] = uVar5;\n      st->kstream[local_100 + 6] = uVar6;\n      st->kstream[local_100 + 7] = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }" { (expression_statement "uVar22 = (uint)-local_100 & 7;" (assignment_expression "uVar22 = (uint)-local_100 & 7" identifier = (binary_expression "(uint)-local_100 & 7" (binary_expression "(uint)-local_100" (parenthesized_expression "(uint)" ( identifier )) - identifier) & number_literal)) ;) (if_statement "if ((-local_100 & 7) != 0) {\n      if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }\n              st->kstream[local_100] = buf[local_100];\n              local_100 = local_100 + 1;\n            }\n            st->kstream[local_100] = buf[local_100];\n            local_100 = local_100 + 1;\n          }\n          st->kstream[local_100] = buf[local_100];\n          local_100 = local_100 + 1;\n        }\n        st->kstream[local_100] = buf[local_100];\n        local_100 = local_100 + 1;\n      }\n      st->kstream[local_100] = buf[local_100];\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }" if (parenthesized_expression "((-local_100 & 7) != 0)" ( (binary_expression "(-local_100 & 7) != 0" (parenthesized_expression "(-local_100 & 7)" ( (binary_expression "-local_100 & 7" (unary_expression "-local_100" - identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }\n              st->kstream[local_100] = buf[local_100];\n              local_100 = local_100 + 1;\n            }\n            st->kstream[local_100] = buf[local_100];\n            local_100 = local_100 + 1;\n          }\n          st->kstream[local_100] = buf[local_100];\n          local_100 = local_100 + 1;\n        }\n        st->kstream[local_100] = buf[local_100];\n        local_100 = local_100 + 1;\n      }\n      st->kstream[local_100] = buf[local_100];\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }" { (if_statement "if (uVar22 != 1) {\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }\n              st->kstream[local_100] = buf[local_100];\n              local_100 = local_100 + 1;\n            }\n            st->kstream[local_100] = buf[local_100];\n            local_100 = local_100 + 1;\n          }\n          st->kstream[local_100] = buf[local_100];\n          local_100 = local_100 + 1;\n        }\n        st->kstream[local_100] = buf[local_100];\n        local_100 = local_100 + 1;\n      }" if (parenthesized_expression "(uVar22 != 1)" ( (binary_expression "uVar22 != 1" identifier != number_literal) )) (compound_statement "{\n        if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }\n              st->kstream[local_100] = buf[local_100];\n              local_100 = local_100 + 1;\n            }\n            st->kstream[local_100] = buf[local_100];\n            local_100 = local_100 + 1;\n          }\n          st->kstream[local_100] = buf[local_100];\n          local_100 = local_100 + 1;\n        }\n        st->kstream[local_100] = buf[local_100];\n        local_100 = local_100 + 1;\n      }" { (if_statement "if (uVar22 != 2) {\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }\n              st->kstream[local_100] = buf[local_100];\n              local_100 = local_100 + 1;\n            }\n            st->kstream[local_100] = buf[local_100];\n            local_100 = local_100 + 1;\n          }\n          st->kstream[local_100] = buf[local_100];\n          local_100 = local_100 + 1;\n        }" if (parenthesized_expression "(uVar22 != 2)" ( (binary_expression "uVar22 != 2" identifier != number_literal) )) (compound_statement "{\n          if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }\n              st->kstream[local_100] = buf[local_100];\n              local_100 = local_100 + 1;\n            }\n            st->kstream[local_100] = buf[local_100];\n            local_100 = local_100 + 1;\n          }\n          st->kstream[local_100] = buf[local_100];\n          local_100 = local_100 + 1;\n        }" { (if_statement "if (uVar22 != 3) {\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }\n              st->kstream[local_100] = buf[local_100];\n              local_100 = local_100 + 1;\n            }\n            st->kstream[local_100] = buf[local_100];\n            local_100 = local_100 + 1;\n          }" if (parenthesized_expression "(uVar22 != 3)" ( (binary_expression "uVar22 != 3" identifier != number_literal) )) (compound_statement "{\n            if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }\n              st->kstream[local_100] = buf[local_100];\n              local_100 = local_100 + 1;\n            }\n            st->kstream[local_100] = buf[local_100];\n            local_100 = local_100 + 1;\n          }" { (if_statement "if (uVar22 != 4) {\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }\n              st->kstream[local_100] = buf[local_100];\n              local_100 = local_100 + 1;\n            }" if (parenthesized_expression "(uVar22 != 4)" ( (binary_expression "uVar22 != 4" identifier != number_literal) )) (compound_statement "{\n              if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }\n              st->kstream[local_100] = buf[local_100];\n              local_100 = local_100 + 1;\n            }" { (if_statement "if (uVar22 != 5) {\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }" if (parenthesized_expression "(uVar22 != 5)" ( (binary_expression "uVar22 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }\n                st->kstream[local_100] = buf[local_100];\n                local_100 = local_100 + 1;\n              }" { (if_statement "if (uVar22 != 6) {\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }" if (parenthesized_expression "(uVar22 != 6)" ( (binary_expression "uVar22 != 6" identifier != number_literal) )) (compound_statement "{\n                  st->kstream[local_100] = buf[local_100];\n                  local_100 = local_100 + 1;\n                }" { (expression_statement "st->kstream[local_100] = buf[local_100];" (assignment_expression "st->kstream[local_100] = buf[local_100]" (subscript_expression "st->kstream[local_100]" (field_expression "st->kstream" identifier -> field_identifier) [ identifier ]) = (subscript_expression "buf[local_100]" identifier [ identifier ])) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "st->kstream[local_100] = buf[local_100];" (assignment_expression "st->kstream[local_100] = buf[local_100]" (subscript_expression "st->kstream[local_100]" (field_expression "st->kstream" identifier -> field_identifier) [ identifier ]) = (subscript_expression "buf[local_100]" identifier [ identifier ])) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "st->kstream[local_100] = buf[local_100];" (assignment_expression "st->kstream[local_100] = buf[local_100]" (subscript_expression "st->kstream[local_100]" (field_expression "st->kstream" identifier -> field_identifier) [ identifier ]) = (subscript_expression "buf[local_100]" identifier [ identifier ])) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "st->kstream[local_100] = buf[local_100];" (assignment_expression "st->kstream[local_100] = buf[local_100]" (subscript_expression "st->kstream[local_100]" (field_expression "st->kstream" identifier -> field_identifier) [ identifier ]) = (subscript_expression "buf[local_100]" identifier [ identifier ])) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "st->kstream[local_100] = buf[local_100];" (assignment_expression "st->kstream[local_100] = buf[local_100]" (subscript_expression "st->kstream[local_100]" (field_expression "st->kstream" identifier -> field_identifier) [ identifier ]) = (subscript_expression "buf[local_100]" identifier [ identifier ])) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "st->kstream[local_100] = buf[local_100];" (assignment_expression "st->kstream[local_100] = buf[local_100]" (subscript_expression "st->kstream[local_100]" (field_expression "st->kstream" identifier -> field_identifier) [ identifier ]) = (subscript_expression "buf[local_100]" identifier [ identifier ])) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "st->kstream[local_100] = buf[local_100];" (assignment_expression "st->kstream[local_100] = buf[local_100]" (subscript_expression "st->kstream[local_100]" (field_expression "st->kstream" identifier -> field_identifier) [ identifier ]) = (subscript_expression "buf[local_100]" identifier [ identifier ])) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) (if_statement "if (local_100 == 0x40) goto LAB_0018a411;" if (parenthesized_expression "(local_100 == 0x40)" ( (binary_expression "local_100 == 0x40" identifier == number_literal) )) (goto_statement "goto LAB_0018a411;" goto statement_identifier ;)) })) (do_statement "do {\n      uVar1 = buf[local_100 + 1];\n      uVar2 = buf[local_100 + 2];\n      uVar3 = buf[local_100 + 3];\n      uVar4 = buf[local_100 + 4];\n      uVar5 = buf[local_100 + 5];\n      st->kstream[local_100] = buf[local_100];\n      uVar6 = buf[local_100 + 6];\n      uVar7 = buf[local_100 + 7];\n      st->kstream[local_100 + 1] = uVar1;\n      st->kstream[local_100 + 2] = uVar2;\n      st->kstream[local_100 + 3] = uVar3;\n      st->kstream[local_100 + 4] = uVar4;\n      st->kstream[local_100 + 5] = uVar5;\n      st->kstream[local_100 + 6] = uVar6;\n      st->kstream[local_100 + 7] = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);" do (compound_statement "{\n      uVar1 = buf[local_100 + 1];\n      uVar2 = buf[local_100 + 2];\n      uVar3 = buf[local_100 + 3];\n      uVar4 = buf[local_100 + 4];\n      uVar5 = buf[local_100 + 5];\n      st->kstream[local_100] = buf[local_100];\n      uVar6 = buf[local_100 + 6];\n      uVar7 = buf[local_100 + 7];\n      st->kstream[local_100 + 1] = uVar1;\n      st->kstream[local_100 + 2] = uVar2;\n      st->kstream[local_100 + 3] = uVar3;\n      st->kstream[local_100 + 4] = uVar4;\n      st->kstream[local_100 + 5] = uVar5;\n      st->kstream[local_100 + 6] = uVar6;\n      st->kstream[local_100 + 7] = uVar7;\n      local_100 = local_100 + 8;\n    }" { (expression_statement "uVar1 = buf[local_100 + 1];" (assignment_expression "uVar1 = buf[local_100 + 1]" identifier = (subscript_expression "buf[local_100 + 1]" identifier [ (binary_expression "local_100 + 1" identifier + number_literal) ])) ;) (expression_statement "uVar2 = buf[local_100 + 2];" (assignment_expression "uVar2 = buf[local_100 + 2]" identifier = (subscript_expression "buf[local_100 + 2]" identifier [ (binary_expression "local_100 + 2" identifier + number_literal) ])) ;) (expression_statement "uVar3 = buf[local_100 + 3];" (assignment_expression "uVar3 = buf[local_100 + 3]" identifier = (subscript_expression "buf[local_100 + 3]" identifier [ (binary_expression "local_100 + 3" identifier + number_literal) ])) ;) (expression_statement "uVar4 = buf[local_100 + 4];" (assignment_expression "uVar4 = buf[local_100 + 4]" identifier = (subscript_expression "buf[local_100 + 4]" identifier [ (binary_expression "local_100 + 4" identifier + number_literal) ])) ;) (expression_statement "uVar5 = buf[local_100 + 5];" (assignment_expression "uVar5 = buf[local_100 + 5]" identifier = (subscript_expression "buf[local_100 + 5]" identifier [ (binary_expression "local_100 + 5" identifier + number_literal) ])) ;) (expression_statement "st->kstream[local_100] = buf[local_100];" (assignment_expression "st->kstream[local_100] = buf[local_100]" (subscript_expression "st->kstream[local_100]" (field_expression "st->kstream" identifier -> field_identifier) [ identifier ]) = (subscript_expression "buf[local_100]" identifier [ identifier ])) ;) (expression_statement "uVar6 = buf[local_100 + 6];" (assignment_expression "uVar6 = buf[local_100 + 6]" identifier = (subscript_expression "buf[local_100 + 6]" identifier [ (binary_expression "local_100 + 6" identifier + number_literal) ])) ;) (expression_statement "uVar7 = buf[local_100 + 7];" (assignment_expression "uVar7 = buf[local_100 + 7]" identifier = (subscript_expression "buf[local_100 + 7]" identifier [ (binary_expression "local_100 + 7" identifier + number_literal) ])) ;) (expression_statement "st->kstream[local_100 + 1] = uVar1;" (assignment_expression "st->kstream[local_100 + 1] = uVar1" (subscript_expression "st->kstream[local_100 + 1]" (field_expression "st->kstream" identifier -> field_identifier) [ (binary_expression "local_100 + 1" identifier + number_literal) ]) = identifier) ;) (expression_statement "st->kstream[local_100 + 2] = uVar2;" (assignment_expression "st->kstream[local_100 + 2] = uVar2" (subscript_expression "st->kstream[local_100 + 2]" (field_expression "st->kstream" identifier -> field_identifier) [ (binary_expression "local_100 + 2" identifier + number_literal) ]) = identifier) ;) (expression_statement "st->kstream[local_100 + 3] = uVar3;" (assignment_expression "st->kstream[local_100 + 3] = uVar3" (subscript_expression "st->kstream[local_100 + 3]" (field_expression "st->kstream" identifier -> field_identifier) [ (binary_expression "local_100 + 3" identifier + number_literal) ]) = identifier) ;) (expression_statement "st->kstream[local_100 + 4] = uVar4;" (assignment_expression "st->kstream[local_100 + 4] = uVar4" (subscript_expression "st->kstream[local_100 + 4]" (field_expression "st->kstream" identifier -> field_identifier) [ (binary_expression "local_100 + 4" identifier + number_literal) ]) = identifier) ;) (expression_statement "st->kstream[local_100 + 5] = uVar5;" (assignment_expression "st->kstream[local_100 + 5] = uVar5" (subscript_expression "st->kstream[local_100 + 5]" (field_expression "st->kstream" identifier -> field_identifier) [ (binary_expression "local_100 + 5" identifier + number_literal) ]) = identifier) ;) (expression_statement "st->kstream[local_100 + 6] = uVar6;" (assignment_expression "st->kstream[local_100 + 6] = uVar6" (subscript_expression "st->kstream[local_100 + 6]" (field_expression "st->kstream" identifier -> field_identifier) [ (binary_expression "local_100 + 6" identifier + number_literal) ]) = identifier) ;) (expression_statement "st->kstream[local_100 + 7] = uVar7;" (assignment_expression "st->kstream[local_100 + 7] = uVar7" (subscript_expression "st->kstream[local_100 + 7]" (field_expression "st->kstream" identifier -> field_identifier) [ (binary_expression "local_100 + 7" identifier + number_literal) ]) = identifier) ;) (expression_statement "local_100 = local_100 + 8;" (assignment_expression "local_100 = local_100 + 8" identifier = (binary_expression "local_100 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_100 != 0x40)" ( (binary_expression "local_100 != 0x40" identifier != number_literal) )) ;) })) (labeled_statement "LAB_0018a411:\n  iVar10 = 0;" statement_identifier : (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0018a413:\n  if (lVar8 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar10;\n  }" statement_identifier : (if_statement "if (lVar8 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar10;\n  }" if (parenthesized_expression "(lVar8 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar8 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar10;\n  }" { (return_statement "return iVar10;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "undefined8 chacha_crypt(int *param_1,byte *param_2,ulong param_3,byte *param_4)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  undefined1 uVar4;\n  undefined1 uVar5;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  int iVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  long lVar11;\n  uint uVar12;\n  uint uVar13;\n  ulong uVar14;\n  uint uVar15;\n  ulong uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  int iVar21;\n  uint uVar22;\n  ulong uVar23;\n  byte *pbVar24;\n  long in_FS_OFFSET;\n  int local_138;\n  uint local_11c;\n  uint local_118;\n  uint local_114;\n  ulong local_100;\n  long local_f0;\n  uint local_c8;\n  uint uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  uint local_b8;\n  uint uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  uint local_a8;\n  uint uStack_a4;\n  uint uStack_a0;\n  uint uStack_9c;\n  uint local_98;\n  uint uStack_94;\n  uint uStack_90;\n  uint uStack_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  int local_80;\n  int local_7c;\n  int local_78;\n  int local_74;\n  int local_70;\n  int local_6c;\n  int local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 != 0) {\n    if (param_1 == (int *)0x0) {\n                    \n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (param_2 == (byte *)0x0) {\n                    \n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (param_4 == (byte *)0x0) {\n                    \n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = *(long *)(param_1 + 0x22);\n    if (local_f0 == 0) {\n                    \n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar14 = *(ulong *)(param_1 + 0x20);\n    local_100 = param_3;\n    if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }\n    do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );\n  }\n  goto LAB_0018a411;\nLAB_0018a0ed:\n  uVar14 = 0;\n  uVar17 = (uint)local_100 & 7;\n  if ((local_100 & 7) == 0) goto LAB_0018a1e3;\n  if (uVar17 != 1) {\n    if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    uVar14 = uVar14 + 1;\n  }\n  pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n  for (uVar14 = uVar14 + 1; local_100 != uVar14; uVar14 = uVar14 + 8) {\nLAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);\n    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);\n    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);\n    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);\n    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);\n    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);\n    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);\n  }\n  *(ulong *)(param_1 + 0x20) = 0x40 - local_100;\n  local_88 = iVar8;\n  if (local_100 != 0x40) {\n    uVar17 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }\nLAB_0018a411:\n  uVar9 = 0;\nLAB_0018a413:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar9;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "undefined8 chacha_crypt(int *param_1,byte *param_2,ulong param_3,byte *param_4)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  undefined1 uVar4;\n  undefined1 uVar5;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  int iVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  long lVar11;\n  uint uVar12;\n  uint uVar13;\n  ulong uVar14;\n  uint uVar15;\n  ulong uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  int iVar21;\n  uint uVar22;\n  ulong uVar23;\n  byte *pbVar24;\n  long in_FS_OFFSET;\n  int local_138;\n  uint local_11c;\n  uint local_118;\n  uint local_114;\n  ulong local_100;\n  long local_f0;\n  uint local_c8;\n  uint uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  uint local_b8;\n  uint uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  uint local_a8;\n  uint uStack_a4;\n  uint uStack_a0;\n  uint uStack_9c;\n  uint local_98;\n  uint uStack_94;\n  uint uStack_90;\n  uint uStack_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  int local_80;\n  int local_7c;\n  int local_78;\n  int local_74;\n  int local_70;\n  int local_6c;\n  int local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 != 0) {\n    if (param_1 == (int *)0x0) {\n                    \n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (param_2 == (byte *)0x0) {\n                    \n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (param_4 == (byte *)0x0) {\n                    \n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = *(long *)(param_1 + 0x22);\n    if (local_f0 == 0) {\n                    \n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar14 = *(ulong *)(param_1 + 0x20);\n    local_100 = param_3;\n    if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }\n    do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );\n  }\n  goto LAB_0018a411;\nLAB_0018a0ed:\n  uVar14 = 0;\n  uVar17 = (uint)local_100 & 7;\n  if ((local_100 & 7) == 0) goto LAB_0018a1e3;\n  if (uVar17 != 1) {\n    if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    uVar14 = uVar14 + 1;\n  }\n  pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n  for (uVar14 = uVar14 + 1; local_100 != uVar14; uVar14 = uVar14 + 8) {\nLAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);\n    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);\n    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);\n    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);\n    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);\n    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);\n    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);\n  }\n  *(ulong *)(param_1 + 0x20) = 0x40 - local_100;\n  local_88 = iVar8;\n  if (local_100 != 0x40) {\n    uVar17 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }\nLAB_0018a411:\n  uVar9 = 0;\nLAB_0018a413:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar9;\n  }\n                    \n  __stack_chk_fail();\n}" type_identifier (function_declarator "chacha_crypt(int *param_1,byte *param_2,ulong param_3,byte *param_4)" identifier (parameter_list "(int *param_1,byte *param_2,ulong param_3,byte *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "ulong param_3" type_identifier identifier) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  undefined1 uVar4;\n  undefined1 uVar5;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  int iVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  long lVar11;\n  uint uVar12;\n  uint uVar13;\n  ulong uVar14;\n  uint uVar15;\n  ulong uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  int iVar21;\n  uint uVar22;\n  ulong uVar23;\n  byte *pbVar24;\n  long in_FS_OFFSET;\n  int local_138;\n  uint local_11c;\n  uint local_118;\n  uint local_114;\n  ulong local_100;\n  long local_f0;\n  uint local_c8;\n  uint uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  uint local_b8;\n  uint uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  uint local_a8;\n  uint uStack_a4;\n  uint uStack_a0;\n  uint uStack_9c;\n  uint local_98;\n  uint uStack_94;\n  uint uStack_90;\n  uint uStack_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  int local_80;\n  int local_7c;\n  int local_78;\n  int local_74;\n  int local_70;\n  int local_6c;\n  int local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 != 0) {\n    if (param_1 == (int *)0x0) {\n                    \n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (param_2 == (byte *)0x0) {\n                    \n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (param_4 == (byte *)0x0) {\n                    \n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = *(long *)(param_1 + 0x22);\n    if (local_f0 == 0) {\n                    \n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar14 = *(ulong *)(param_1 + 0x20);\n    local_100 = param_3;\n    if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }\n    do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );\n  }\n  goto LAB_0018a411;\nLAB_0018a0ed:\n  uVar14 = 0;\n  uVar17 = (uint)local_100 & 7;\n  if ((local_100 & 7) == 0) goto LAB_0018a1e3;\n  if (uVar17 != 1) {\n    if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    uVar14 = uVar14 + 1;\n  }\n  pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n  for (uVar14 = uVar14 + 1; local_100 != uVar14; uVar14 = uVar14 + 8) {\nLAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);\n    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);\n    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);\n    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);\n    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);\n    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);\n    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);\n  }\n  *(ulong *)(param_1 + 0x20) = 0x40 - local_100;\n  local_88 = iVar8;\n  if (local_100 != 0x40) {\n    uVar17 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }\nLAB_0018a411:\n  uVar9 = 0;\nLAB_0018a413:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar9;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "undefined1 uVar3;" type_identifier identifier ;) (declaration "undefined1 uVar4;" type_identifier identifier ;) (declaration "undefined1 uVar5;" type_identifier identifier ;) (declaration "undefined1 uVar6;" type_identifier identifier ;) (declaration "undefined1 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "ulong uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_138;" primitive_type identifier ;) (declaration "uint local_11c;" type_identifier identifier ;) (declaration "uint local_118;" type_identifier identifier ;) (declaration "uint local_114;" type_identifier identifier ;) (declaration "ulong local_100;" type_identifier identifier ;) (declaration "long local_f0;" (sized_type_specifier "long" long) identifier ;) (declaration "uint local_c8;" type_identifier identifier ;) (declaration "uint uStack_c4;" type_identifier identifier ;) (declaration "uint uStack_c0;" type_identifier identifier ;) (declaration "uint uStack_bc;" type_identifier identifier ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "uint uStack_b4;" type_identifier identifier ;) (declaration "uint uStack_b0;" type_identifier identifier ;) (declaration "uint uStack_ac;" type_identifier identifier ;) (declaration "uint local_a8;" type_identifier identifier ;) (declaration "uint uStack_a4;" type_identifier identifier ;) (declaration "uint uStack_a0;" type_identifier identifier ;) (declaration "uint uStack_9c;" type_identifier identifier ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "uint uStack_94;" type_identifier identifier ;) (declaration "uint uStack_90;" type_identifier identifier ;) (declaration "uint uStack_8c;" type_identifier identifier ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "undefined4 local_84;" type_identifier identifier ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_3 != 0) {\n    if (param_1 == (int *)0x0) {\n                    \n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (param_2 == (byte *)0x0) {\n                    \n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (param_4 == (byte *)0x0) {\n                    \n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = *(long *)(param_1 + 0x22);\n    if (local_f0 == 0) {\n                    \n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar14 = *(ulong *)(param_1 + 0x20);\n    local_100 = param_3;\n    if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }\n    do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    if (param_1 == (int *)0x0) {\n                    \n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (param_2 == (byte *)0x0) {\n                    \n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (param_4 == (byte *)0x0) {\n                    \n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = *(long *)(param_1 + 0x22);\n    if (local_f0 == 0) {\n                    \n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar14 = *(ulong *)(param_1 + 0x20);\n    local_100 = param_3;\n    if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }\n    do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );\n  }" { (if_statement "if (param_1 == (int *)0x0) {\n                    \n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }" { (expression_statement "crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);" (call_expression "crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d)" identifier (argument_list "("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d)" ( (string_literal ""st != NULL"" " string_content ") , (string_literal ""src/stream/chacha/chacha_crypt.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 == (byte *)0x0) {\n                    \n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }" if (parenthesized_expression "(param_2 == (byte *)0x0)" ( (binary_expression "param_2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }" { (expression_statement "crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);" (call_expression "crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e)" identifier (argument_list "("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e)" ( (string_literal ""in != NULL"" " string_content ") , (string_literal ""src/stream/chacha/chacha_crypt.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_4 == (byte *)0x0) {\n                    \n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }" if (parenthesized_expression "(param_4 == (byte *)0x0)" ( (binary_expression "param_4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }" { (expression_statement "crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);" (call_expression "crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f)" identifier (argument_list "("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f)" ( (string_literal ""out != NULL"" " string_content ") , (string_literal ""src/stream/chacha/chacha_crypt.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "local_f0 = *(long *)(param_1 + 0x22);" (assignment_expression "local_f0 = *(long *)(param_1 + 0x22)" identifier = (pointer_expression "*(long *)(param_1 + 0x22)" * (cast_expression "(long *)(param_1 + 0x22)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22)" ( (binary_expression "param_1 + 0x22" identifier + number_literal) ))))) ;) (if_statement "if (local_f0 == 0) {\n                    \n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }" if (parenthesized_expression "(local_f0 == 0)" ( (binary_expression "local_f0 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }" { (expression_statement "crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);" (call_expression "crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40)" identifier (argument_list "("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40)" ( (string_literal ""st->ivlen != 0"" " string_content ") , (string_literal ""src/stream/chacha/chacha_crypt.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar14 = *(ulong *)(param_1 + 0x20);" (assignment_expression "uVar14 = *(ulong *)(param_1 + 0x20)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "local_100 = param_3;" (assignment_expression "local_100 = param_3" identifier = identifier) ;) (if_statement "if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }" { (expression_statement "uVar16 = param_3;" (assignment_expression "uVar16 = param_3" identifier = identifier) ;) (if_statement "if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }" if (parenthesized_expression "(uVar14 <= param_3)" ( (binary_expression "uVar14 <= param_3" identifier <= identifier) )) (compound_statement "{\n        uVar16 = uVar14;\n      }" { (expression_statement "uVar16 = uVar14;" (assignment_expression "uVar16 = uVar14" identifier = identifier) ;) })) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = (uint)uVar16 & 7;" (assignment_expression "uVar17 = (uint)uVar16 & 7" identifier = (binary_expression "(uint)uVar16 & 7" (cast_expression "(uint)uVar16" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((uVar16 & 7) == 0) goto LAB_001899d0;" if (parenthesized_expression "((uVar16 & 7) == 0)" ( (binary_expression "(uVar16 & 7) == 0" (parenthesized_expression "(uVar16 & 7)" ( (binary_expression "uVar16 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001899d0;" goto statement_identifier ;)) (if_statement "if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }" if (parenthesized_expression "(uVar17 != 1)" ( (binary_expression "uVar17 != 1" identifier != number_literal) )) (compound_statement "{\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }" { (if_statement "if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }" if (parenthesized_expression "(uVar17 != 2)" ( (binary_expression "uVar17 != 2" identifier != number_literal) )) (compound_statement "{\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }" { (if_statement "if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }" if (parenthesized_expression "(uVar17 != 3)" ( (binary_expression "uVar17 != 3" identifier != number_literal) )) (compound_statement "{\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }" { (if_statement "if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }" if (parenthesized_expression "(uVar17 != 4)" ( (binary_expression "uVar17 != 4" identifier != number_literal) )) (compound_statement "{\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }" { (if_statement "if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }" if (parenthesized_expression "(uVar17 != 5)" ( (binary_expression "uVar17 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }" { (if_statement "if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }" if (parenthesized_expression "(uVar17 != 6)" ( (binary_expression "uVar17 != 6" identifier != number_literal) )) (compound_statement "{\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }" { (expression_statement "*param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;" (assignment_expression "*param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2" (pointer_expression "*param_4" * identifier) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (pointer_expression "*param_2" * identifier))) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar23 = (ulong)(uVar17 != 6);" (assignment_expression "uVar23 = (ulong)(uVar17 != 6)" identifier = (call_expression "(ulong)(uVar17 != 6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar17 != 6)" ( (binary_expression "uVar17 != 6" identifier != number_literal) )))) ;) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (subscript_expression "param_2[uVar23]" identifier [ identifier ]))) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (subscript_expression "param_2[uVar23]" identifier [ identifier ]))) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (subscript_expression "param_2[uVar23]" identifier [ identifier ]))) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (subscript_expression "param_2[uVar23]" identifier [ identifier ]))) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (subscript_expression "param_2[uVar23]" identifier [ identifier ]))) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (subscript_expression "param_2[uVar23]" identifier [ identifier ]))) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) (for_statement "for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }" for ( (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ; (binary_expression "uVar16 != uVar23" identifier != identifier) ; (assignment_expression "uVar23 = uVar23 + 8" identifier = (binary_expression "uVar23 + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }" { (labeled_statement "LAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" statement_identifier : (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" identifier [ identifier ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" * (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" ( (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - uVar14)" ( (binary_expression "0x80 - uVar14" number_literal - identifier) ))) )))) ^ (subscript_expression "param_2[uVar23]" identifier [ identifier ]))) ;)) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];" (assignment_expression "param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1]" (subscript_expression "param_4[uVar23 + 1]" identifier [ (binary_expression "uVar23 + 1" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" * (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" ( (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - (lVar11 + -1))" ( (binary_expression "0x80 - (lVar11 + -1)" number_literal - (parenthesized_expression "(lVar11 + -1)" ( (binary_expression "lVar11 + -1" identifier + number_literal) ))) ))) )))) ^ (subscript_expression "param_2[uVar23 + 1]" identifier [ (binary_expression "uVar23 + 1" identifier + number_literal) ]))) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];" (assignment_expression "param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2]" (subscript_expression "param_4[uVar23 + 2]" identifier [ (binary_expression "uVar23 + 2" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" * (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" ( (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - (lVar11 + -1))" ( (binary_expression "0x80 - (lVar11 + -1)" number_literal - (parenthesized_expression "(lVar11 + -1)" ( (binary_expression "lVar11 + -1" identifier + number_literal) ))) ))) )))) ^ (subscript_expression "param_2[uVar23 + 2]" identifier [ (binary_expression "uVar23 + 2" identifier + number_literal) ]))) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];" (assignment_expression "param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3]" (subscript_expression "param_4[uVar23 + 3]" identifier [ (binary_expression "uVar23 + 3" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" * (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" ( (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - (lVar11 + -1))" ( (binary_expression "0x80 - (lVar11 + -1)" number_literal - (parenthesized_expression "(lVar11 + -1)" ( (binary_expression "lVar11 + -1" identifier + number_literal) ))) ))) )))) ^ (subscript_expression "param_2[uVar23 + 3]" identifier [ (binary_expression "uVar23 + 3" identifier + number_literal) ]))) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];" (assignment_expression "param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4]" (subscript_expression "param_4[uVar23 + 4]" identifier [ (binary_expression "uVar23 + 4" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" * (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" ( (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - (lVar11 + -1))" ( (binary_expression "0x80 - (lVar11 + -1)" number_literal - (parenthesized_expression "(lVar11 + -1)" ( (binary_expression "lVar11 + -1" identifier + number_literal) ))) ))) )))) ^ (subscript_expression "param_2[uVar23 + 4]" identifier [ (binary_expression "uVar23 + 4" identifier + number_literal) ]))) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];" (assignment_expression "param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5]" (subscript_expression "param_4[uVar23 + 5]" identifier [ (binary_expression "uVar23 + 5" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" * (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" ( (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - (lVar11 + -1))" ( (binary_expression "0x80 - (lVar11 + -1)" number_literal - (parenthesized_expression "(lVar11 + -1)" ( (binary_expression "lVar11 + -1" identifier + number_literal) ))) ))) )))) ^ (subscript_expression "param_2[uVar23 + 5]" identifier [ (binary_expression "uVar23 + 5" identifier + number_literal) ]))) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];" (assignment_expression "param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6]" (subscript_expression "param_4[uVar23 + 6]" identifier [ (binary_expression "uVar23 + 6" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" * (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" ( (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - (lVar11 + -1))" ( (binary_expression "0x80 - (lVar11 + -1)" number_literal - (parenthesized_expression "(lVar11 + -1)" ( (binary_expression "lVar11 + -1" identifier + number_literal) ))) ))) )))) ^ (subscript_expression "param_2[uVar23 + 6]" identifier [ (binary_expression "uVar23 + 6" identifier + number_literal) ]))) ;) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" identifier = (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];" (assignment_expression "param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7]" (subscript_expression "param_4[uVar23 + 7]" identifier [ (binary_expression "uVar23 + 7" identifier + number_literal) ]) = (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" * (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" ( (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "(0x80 - (lVar11 + -1))" ( (binary_expression "0x80 - (lVar11 + -1)" number_literal - (parenthesized_expression "(lVar11 + -1)" ( (binary_expression "lVar11 + -1" identifier + number_literal) ))) ))) )))) ^ (subscript_expression "param_2[uVar23 + 7]" identifier [ (binary_expression "uVar23 + 7" identifier + number_literal) ]))) ;) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" identifier = (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "local_100 = param_3 - uVar16;" (assignment_expression "local_100 = param_3 - uVar16" identifier = (binary_expression "param_3 - uVar16" identifier - identifier)) ;) (if_statement "if (local_100 == 0) goto LAB_0018a411;" if (parenthesized_expression "(local_100 == 0)" ( (binary_expression "local_100 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0018a411;" goto statement_identifier ;)) (expression_statement "param_4 = param_4 + uVar16;" (assignment_expression "param_4 = param_4 + uVar16" identifier = (binary_expression "param_4 + uVar16" identifier + identifier)) ;) (expression_statement "param_2 = param_2 + uVar16;" (assignment_expression "param_2 = param_2 + uVar16" identifier = (binary_expression "param_2 + uVar16" identifier + identifier)) ;) (expression_statement "local_f0 = *(long *)(param_1 + 0x22);" (assignment_expression "local_f0 = *(long *)(param_1 + 0x22)" identifier = (pointer_expression "*(long *)(param_1 + 0x22)" * (cast_expression "(long *)(param_1 + 0x22)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22)" ( (binary_expression "param_1 + 0x22" identifier + number_literal) ))))) ;) (expression_statement "param_3 = local_100;" (assignment_expression "param_3 = local_100" identifier = identifier) ;) })) (do_statement "do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );" do (compound_statement "{\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    }" { (expression_statement "pbVar24 = param_4 + (param_3 - local_100);" (assignment_expression "pbVar24 = param_4 + (param_3 - local_100)" identifier = (binary_expression "param_4 + (param_3 - local_100)" identifier + (parenthesized_expression "(param_3 - local_100)" ( (binary_expression "param_3 - local_100" identifier - identifier) )))) ;) (expression_statement "local_138 = param_1[0x24];" (assignment_expression "local_138 = param_1[0x24]" identifier = (subscript_expression "param_1[0x24]" identifier [ number_literal ])) ;) (expression_statement "pbVar10 = param_2 + (param_3 - local_100);" (assignment_expression "pbVar10 = param_2 + (param_3 - local_100)" identifier = (binary_expression "param_2 + (param_3 - local_100)" identifier + (parenthesized_expression "(param_3 - local_100)" ( (binary_expression "param_3 - local_100" identifier - identifier) )))) ;) (expression_statement "uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);" (assignment_expression "uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)param_1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)param_1 >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)param_1 >> 0x20" (binary_expression "(ulong)*(undefined8 *)param_1" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)param_1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) )))) ;) (expression_statement "local_c8 = (uint)*(undefined8 *)param_1;" (assignment_expression "local_c8 = (uint)*(undefined8 *)param_1" identifier = (binary_expression "(uint)*(undefined8 *)param_1" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)param_1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);" (assignment_expression "uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_1 + 2) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_1 + 2) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 2)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);" (assignment_expression "uStack_c0 = (uint)*(undefined8 *)(param_1 + 2)" identifier = (binary_expression "(uint)*(undefined8 *)(param_1 + 2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))))) ;) (expression_statement "uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);" (assignment_expression "uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_1 + 4) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_1 + 4) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 4)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "local_b8 = (uint)*(undefined8 *)(param_1 + 4);" (assignment_expression "local_b8 = (uint)*(undefined8 *)(param_1 + 4)" identifier = (binary_expression "(uint)*(undefined8 *)(param_1 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);" (assignment_expression "uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_1 + 6) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_1 + 6) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 6)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 6)" ( (binary_expression "param_1 + 6" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);" (assignment_expression "uStack_b0 = (uint)*(undefined8 *)(param_1 + 6)" identifier = (binary_expression "(uint)*(undefined8 *)(param_1 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 6)" ( (binary_expression "param_1 + 6" identifier + number_literal) ))))) ;) (expression_statement "uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);" (assignment_expression "uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_1 + 8) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_1 + 8) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 8)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "local_a8 = (uint)*(undefined8 *)(param_1 + 8);" (assignment_expression "local_a8 = (uint)*(undefined8 *)(param_1 + 8)" identifier = (binary_expression "(uint)*(undefined8 *)(param_1 + 8)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);" (assignment_expression "uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_1 + 10) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_1 + 10) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 10)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);" (assignment_expression "uStack_a0 = (uint)*(undefined8 *)(param_1 + 10)" identifier = (binary_expression "(uint)*(undefined8 *)(param_1 + 10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) ))))) ;) (expression_statement "uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);" (assignment_expression "uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 0xc)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "local_98 = (uint)*(undefined8 *)(param_1 + 0xc);" (assignment_expression "local_98 = (uint)*(undefined8 *)(param_1 + 0xc)" identifier = (binary_expression "(uint)*(undefined8 *)(param_1 + 0xc)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);" (assignment_expression "uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20)" identifier = (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 0xe)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 0xe)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);" (assignment_expression "uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe)" identifier = (binary_expression "(uint)*(undefined8 *)(param_1 + 0xe)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_1 + 0xe)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) ))))) ;) (if_statement "if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }" if (parenthesized_expression "(0 < local_138)" ( (binary_expression "0 < local_138" number_literal < identifier) )) (compound_statement "{\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }" { (expression_statement "local_118 = uStack_ac;" (assignment_expression "local_118 = uStack_ac" identifier = identifier) ;) (expression_statement "local_114 = uStack_a0;" (assignment_expression "local_114 = uStack_a0" identifier = identifier) ;) (expression_statement "local_11c = uStack_8c;" (assignment_expression "local_11c = uStack_8c" identifier = identifier) ;) (do_statement "do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);" do (compound_statement "{\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        }" { (expression_statement "local_98 = local_98 ^ local_c8 + local_b8;" (assignment_expression "local_98 = local_98 ^ local_c8 + local_b8" identifier = (binary_expression "local_98 ^ local_c8 + local_b8" identifier ^ (binary_expression "local_c8 + local_b8" identifier + identifier))) ;) (expression_statement "uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;" (assignment_expression "uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4" identifier = (binary_expression "uStack_94 ^ uStack_c4 + uStack_b4" identifier ^ (binary_expression "uStack_c4 + uStack_b4" identifier + identifier))) ;) (expression_statement "uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;" (assignment_expression "uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0" identifier = (binary_expression "uStack_90 ^ uStack_c0 + uStack_b0" identifier ^ (binary_expression "uStack_c0 + uStack_b0" identifier + identifier))) ;) (expression_statement "uVar17 = local_98 << 0x10 | local_98 >> 0x10;" (assignment_expression "uVar17 = local_98 << 0x10 | local_98 >> 0x10" identifier = (binary_expression "local_98 << 0x10 | local_98 >> 0x10" (binary_expression "local_98 << 0x10" identifier << number_literal) | (binary_expression "local_98 >> 0x10" identifier >> number_literal))) ;) (expression_statement "local_a8 = local_a8 + uVar17;" (assignment_expression "local_a8 = local_a8 + uVar17" identifier = (binary_expression "local_a8 + uVar17" identifier + identifier)) ;) (expression_statement "uVar12 = local_b8 ^ local_a8;" (assignment_expression "uVar12 = local_b8 ^ local_a8" identifier = (binary_expression "local_b8 ^ local_a8" identifier ^ identifier)) ;) (expression_statement "uVar13 = uVar12 << 0xc | uVar12 >> 0x14;" (assignment_expression "uVar13 = uVar12 << 0xc | uVar12 >> 0x14" identifier = (binary_expression "uVar12 << 0xc | uVar12 >> 0x14" (binary_expression "uVar12 << 0xc" identifier << number_literal) | (binary_expression "uVar12 >> 0x14" identifier >> number_literal))) ;) (expression_statement "local_c8 = local_c8 + local_b8 + uVar13;" (assignment_expression "local_c8 = local_c8 + local_b8 + uVar13" identifier = (binary_expression "local_c8 + local_b8 + uVar13" (binary_expression "local_c8 + local_b8" identifier + identifier) + identifier)) ;) (expression_statement "uVar17 = uVar17 ^ local_c8;" (assignment_expression "uVar17 = uVar17 ^ local_c8" identifier = (binary_expression "uVar17 ^ local_c8" identifier ^ identifier)) ;) (expression_statement "uVar12 = uVar17 << 8 | uVar17 >> 0x18;" (assignment_expression "uVar12 = uVar17 << 8 | uVar17 >> 0x18" identifier = (binary_expression "uVar17 << 8 | uVar17 >> 0x18" (binary_expression "uVar17 << 8" identifier << number_literal) | (binary_expression "uVar17 >> 0x18" identifier >> number_literal))) ;) (expression_statement "local_a8 = local_a8 + uVar12;" (assignment_expression "local_a8 = local_a8 + uVar12" identifier = (binary_expression "local_a8 + uVar12" identifier + identifier)) ;) (expression_statement "uVar13 = uVar13 ^ local_a8;" (assignment_expression "uVar13 = uVar13 ^ local_a8" identifier = (binary_expression "uVar13 ^ local_a8" identifier ^ identifier)) ;) (expression_statement "uVar22 = uVar13 << 7 | uVar13 >> 0x19;" (assignment_expression "uVar22 = uVar13 << 7 | uVar13 >> 0x19" identifier = (binary_expression "uVar13 << 7 | uVar13 >> 0x19" (binary_expression "uVar13 << 7" identifier << number_literal) | (binary_expression "uVar13 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;" (assignment_expression "uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10" identifier = (binary_expression "uStack_94 << 0x10 | uStack_94 >> 0x10" (binary_expression "uStack_94 << 0x10" identifier << number_literal) | (binary_expression "uStack_94 >> 0x10" identifier >> number_literal))) ;) (expression_statement "uStack_a4 = uStack_a4 + uVar17;" (assignment_expression "uStack_a4 = uStack_a4 + uVar17" identifier = (binary_expression "uStack_a4 + uVar17" identifier + identifier)) ;) (expression_statement "uVar13 = uStack_b4 ^ uStack_a4;" (assignment_expression "uVar13 = uStack_b4 ^ uStack_a4" identifier = (binary_expression "uStack_b4 ^ uStack_a4" identifier ^ identifier)) ;) (expression_statement "uVar13 = uVar13 << 0xc | uVar13 >> 0x14;" (assignment_expression "uVar13 = uVar13 << 0xc | uVar13 >> 0x14" identifier = (binary_expression "uVar13 << 0xc | uVar13 >> 0x14" (binary_expression "uVar13 << 0xc" identifier << number_literal) | (binary_expression "uVar13 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uStack_c4 = uStack_c4 + uStack_b4 + uVar13;" (assignment_expression "uStack_c4 = uStack_c4 + uStack_b4 + uVar13" identifier = (binary_expression "uStack_c4 + uStack_b4 + uVar13" (binary_expression "uStack_c4 + uStack_b4" identifier + identifier) + identifier)) ;) (expression_statement "uVar17 = uVar17 ^ uStack_c4;" (assignment_expression "uVar17 = uVar17 ^ uStack_c4" identifier = (binary_expression "uVar17 ^ uStack_c4" identifier ^ identifier)) ;) (expression_statement "uVar17 = uVar17 << 8 | uVar17 >> 0x18;" (assignment_expression "uVar17 = uVar17 << 8 | uVar17 >> 0x18" identifier = (binary_expression "uVar17 << 8 | uVar17 >> 0x18" (binary_expression "uVar17 << 8" identifier << number_literal) | (binary_expression "uVar17 >> 0x18" identifier >> number_literal))) ;) (expression_statement "uStack_a4 = uStack_a4 + uVar17;" (assignment_expression "uStack_a4 = uStack_a4 + uVar17" identifier = (binary_expression "uStack_a4 + uVar17" identifier + identifier)) ;) (expression_statement "uVar13 = uVar13 ^ uStack_a4;" (assignment_expression "uVar13 = uVar13 ^ uStack_a4" identifier = (binary_expression "uVar13 ^ uStack_a4" identifier ^ identifier)) ;) (expression_statement "uVar18 = uVar13 << 7 | uVar13 >> 0x19;" (assignment_expression "uVar18 = uVar13 << 7 | uVar13 >> 0x19" identifier = (binary_expression "uVar13 << 7 | uVar13 >> 0x19" (binary_expression "uVar13 << 7" identifier << number_literal) | (binary_expression "uVar13 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;" (assignment_expression "uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10" identifier = (binary_expression "uStack_90 << 0x10 | uStack_90 >> 0x10" (binary_expression "uStack_90 << 0x10" identifier << number_literal) | (binary_expression "uStack_90 >> 0x10" identifier >> number_literal))) ;) (expression_statement "local_114 = local_114 + uVar13;" (assignment_expression "local_114 = local_114 + uVar13" identifier = (binary_expression "local_114 + uVar13" identifier + identifier)) ;) (expression_statement "uVar19 = uStack_b0 ^ local_114;" (assignment_expression "uVar19 = uStack_b0 ^ local_114" identifier = (binary_expression "uStack_b0 ^ local_114" identifier ^ identifier)) ;) (expression_statement "uVar19 = uVar19 << 0xc | uVar19 >> 0x14;" (assignment_expression "uVar19 = uVar19 << 0xc | uVar19 >> 0x14" identifier = (binary_expression "uVar19 << 0xc | uVar19 >> 0x14" (binary_expression "uVar19 << 0xc" identifier << number_literal) | (binary_expression "uVar19 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uStack_c0 = uStack_c0 + uStack_b0 + uVar19;" (assignment_expression "uStack_c0 = uStack_c0 + uStack_b0 + uVar19" identifier = (binary_expression "uStack_c0 + uStack_b0 + uVar19" (binary_expression "uStack_c0 + uStack_b0" identifier + identifier) + identifier)) ;) (expression_statement "uVar13 = uVar13 ^ uStack_c0;" (assignment_expression "uVar13 = uVar13 ^ uStack_c0" identifier = (binary_expression "uVar13 ^ uStack_c0" identifier ^ identifier)) ;) (expression_statement "uVar13 = uVar13 << 8 | uVar13 >> 0x18;" (assignment_expression "uVar13 = uVar13 << 8 | uVar13 >> 0x18" identifier = (binary_expression "uVar13 << 8 | uVar13 >> 0x18" (binary_expression "uVar13 << 8" identifier << number_literal) | (binary_expression "uVar13 >> 0x18" identifier >> number_literal))) ;) (expression_statement "local_114 = local_114 + uVar13;" (assignment_expression "local_114 = local_114 + uVar13" identifier = (binary_expression "local_114 + uVar13" identifier + identifier)) ;) (expression_statement "local_c8 = local_c8 + uVar18;" (assignment_expression "local_c8 = local_c8 + uVar18" identifier = (binary_expression "local_c8 + uVar18" identifier + identifier)) ;) (expression_statement "uVar19 = uVar19 ^ local_114;" (assignment_expression "uVar19 = uVar19 ^ local_114" identifier = (binary_expression "uVar19 ^ local_114" identifier ^ identifier)) ;) (expression_statement "local_11c = local_11c ^ uStack_bc + local_118;" (assignment_expression "local_11c = local_11c ^ uStack_bc + local_118" identifier = (binary_expression "local_11c ^ uStack_bc + local_118" identifier ^ (binary_expression "uStack_bc + local_118" identifier + identifier))) ;) (expression_statement "uVar20 = uVar19 << 7 | uVar19 >> 0x19;" (assignment_expression "uVar20 = uVar19 << 7 | uVar19 >> 0x19" identifier = (binary_expression "uVar19 << 7 | uVar19 >> 0x19" (binary_expression "uVar19 << 7" identifier << number_literal) | (binary_expression "uVar19 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uStack_c4 = uStack_c4 + uVar20;" (assignment_expression "uStack_c4 = uStack_c4 + uVar20" identifier = (binary_expression "uStack_c4 + uVar20" identifier + identifier)) ;) (expression_statement "uVar15 = local_11c << 0x10 | local_11c >> 0x10;" (assignment_expression "uVar15 = local_11c << 0x10 | local_11c >> 0x10" identifier = (binary_expression "local_11c << 0x10 | local_11c >> 0x10" (binary_expression "local_11c << 0x10" identifier << number_literal) | (binary_expression "local_11c >> 0x10" identifier >> number_literal))) ;) (expression_statement "uStack_9c = uStack_9c + uVar15;" (assignment_expression "uStack_9c = uStack_9c + uVar15" identifier = (binary_expression "uStack_9c + uVar15" identifier + identifier)) ;) (expression_statement "uVar12 = uVar12 ^ uStack_c4;" (assignment_expression "uVar12 = uVar12 ^ uStack_c4" identifier = (binary_expression "uVar12 ^ uStack_c4" identifier ^ identifier)) ;) (expression_statement "uVar19 = local_118 ^ uStack_9c;" (assignment_expression "uVar19 = local_118 ^ uStack_9c" identifier = (binary_expression "local_118 ^ uStack_9c" identifier ^ identifier)) ;) (expression_statement "uVar19 = uVar19 << 0xc | uVar19 >> 0x14;" (assignment_expression "uVar19 = uVar19 << 0xc | uVar19 >> 0x14" identifier = (binary_expression "uVar19 << 0xc | uVar19 >> 0x14" (binary_expression "uVar19 << 0xc" identifier << number_literal) | (binary_expression "uVar19 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uStack_bc = uStack_bc + local_118 + uVar19;" (assignment_expression "uStack_bc = uStack_bc + local_118 + uVar19" identifier = (binary_expression "uStack_bc + local_118 + uVar19" (binary_expression "uStack_bc + local_118" identifier + identifier) + identifier)) ;) (expression_statement "uVar15 = uVar15 ^ uStack_bc;" (assignment_expression "uVar15 = uVar15 ^ uStack_bc" identifier = (binary_expression "uVar15 ^ uStack_bc" identifier ^ identifier)) ;) (expression_statement "uVar15 = uVar15 << 8 | uVar15 >> 0x18;" (assignment_expression "uVar15 = uVar15 << 8 | uVar15 >> 0x18" identifier = (binary_expression "uVar15 << 8 | uVar15 >> 0x18" (binary_expression "uVar15 << 8" identifier << number_literal) | (binary_expression "uVar15 >> 0x18" identifier >> number_literal))) ;) (expression_statement "uStack_9c = uStack_9c + uVar15;" (assignment_expression "uStack_9c = uStack_9c + uVar15" identifier = (binary_expression "uStack_9c + uVar15" identifier + identifier)) ;) (expression_statement "uVar15 = uVar15 ^ local_c8;" (assignment_expression "uVar15 = uVar15 ^ local_c8" identifier = (binary_expression "uVar15 ^ local_c8" identifier ^ identifier)) ;) (expression_statement "uVar19 = uVar19 ^ uStack_9c;" (assignment_expression "uVar19 = uVar19 ^ uStack_9c" identifier = (binary_expression "uVar19 ^ uStack_9c" identifier ^ identifier)) ;) (expression_statement "uVar19 = uVar19 << 7 | uVar19 >> 0x19;" (assignment_expression "uVar19 = uVar19 << 7 | uVar19 >> 0x19" identifier = (binary_expression "uVar19 << 7 | uVar19 >> 0x19" (binary_expression "uVar19 << 7" identifier << number_literal) | (binary_expression "uVar19 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;" (assignment_expression "uVar15 = uVar15 << 0x10 | uVar15 >> 0x10" identifier = (binary_expression "uVar15 << 0x10 | uVar15 >> 0x10" (binary_expression "uVar15 << 0x10" identifier << number_literal) | (binary_expression "uVar15 >> 0x10" identifier >> number_literal))) ;) (expression_statement "local_114 = local_114 + uVar15;" (assignment_expression "local_114 = local_114 + uVar15" identifier = (binary_expression "local_114 + uVar15" identifier + identifier)) ;) (expression_statement "uVar18 = uVar18 ^ local_114;" (assignment_expression "uVar18 = uVar18 ^ local_114" identifier = (binary_expression "uVar18 ^ local_114" identifier ^ identifier)) ;) (expression_statement "uVar18 = uVar18 << 0xc | uVar18 >> 0x14;" (assignment_expression "uVar18 = uVar18 << 0xc | uVar18 >> 0x14" identifier = (binary_expression "uVar18 << 0xc | uVar18 >> 0x14" (binary_expression "uVar18 << 0xc" identifier << number_literal) | (binary_expression "uVar18 >> 0x14" identifier >> number_literal))) ;) (expression_statement "local_c8 = local_c8 + uVar18;" (assignment_expression "local_c8 = local_c8 + uVar18" identifier = (binary_expression "local_c8 + uVar18" identifier + identifier)) ;) (expression_statement "uVar15 = uVar15 ^ local_c8;" (assignment_expression "uVar15 = uVar15 ^ local_c8" identifier = (binary_expression "uVar15 ^ local_c8" identifier ^ identifier)) ;) (expression_statement "local_11c = uVar15 << 8 | uVar15 >> 0x18;" (assignment_expression "local_11c = uVar15 << 8 | uVar15 >> 0x18" identifier = (binary_expression "uVar15 << 8 | uVar15 >> 0x18" (binary_expression "uVar15 << 8" identifier << number_literal) | (binary_expression "uVar15 >> 0x18" identifier >> number_literal))) ;) (expression_statement "local_114 = local_114 + local_11c;" (assignment_expression "local_114 = local_114 + local_11c" identifier = (binary_expression "local_114 + local_11c" identifier + identifier)) ;) (expression_statement "uVar18 = uVar18 ^ local_114;" (assignment_expression "uVar18 = uVar18 ^ local_114" identifier = (binary_expression "uVar18 ^ local_114" identifier ^ identifier)) ;) (expression_statement "uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;" (assignment_expression "uStack_b4 = uVar18 << 7 | uVar18 >> 0x19" identifier = (binary_expression "uVar18 << 7 | uVar18 >> 0x19" (binary_expression "uVar18 << 7" identifier << number_literal) | (binary_expression "uVar18 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;" (assignment_expression "uVar12 = uVar12 << 0x10 | uVar12 >> 0x10" identifier = (binary_expression "uVar12 << 0x10 | uVar12 >> 0x10" (binary_expression "uVar12 << 0x10" identifier << number_literal) | (binary_expression "uVar12 >> 0x10" identifier >> number_literal))) ;) (expression_statement "uStack_9c = uStack_9c + uVar12;" (assignment_expression "uStack_9c = uStack_9c + uVar12" identifier = (binary_expression "uStack_9c + uVar12" identifier + identifier)) ;) (expression_statement "uVar20 = uVar20 ^ uStack_9c;" (assignment_expression "uVar20 = uVar20 ^ uStack_9c" identifier = (binary_expression "uVar20 ^ uStack_9c" identifier ^ identifier)) ;) (expression_statement "uVar15 = uVar20 << 0xc | uVar20 >> 0x14;" (assignment_expression "uVar15 = uVar20 << 0xc | uVar20 >> 0x14" identifier = (binary_expression "uVar20 << 0xc | uVar20 >> 0x14" (binary_expression "uVar20 << 0xc" identifier << number_literal) | (binary_expression "uVar20 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uStack_c4 = uStack_c4 + uVar15;" (assignment_expression "uStack_c4 = uStack_c4 + uVar15" identifier = (binary_expression "uStack_c4 + uVar15" identifier + identifier)) ;) (expression_statement "uStack_c0 = uStack_c0 + uVar19;" (assignment_expression "uStack_c0 = uStack_c0 + uVar19" identifier = (binary_expression "uStack_c0 + uVar19" identifier + identifier)) ;) (expression_statement "uStack_bc = uStack_bc + uVar22;" (assignment_expression "uStack_bc = uStack_bc + uVar22" identifier = (binary_expression "uStack_bc + uVar22" identifier + identifier)) ;) (expression_statement "uVar12 = uVar12 ^ uStack_c4;" (assignment_expression "uVar12 = uVar12 ^ uStack_c4" identifier = (binary_expression "uVar12 ^ uStack_c4" identifier ^ identifier)) ;) (expression_statement "uVar17 = uVar17 ^ uStack_c0;" (assignment_expression "uVar17 = uVar17 ^ uStack_c0" identifier = (binary_expression "uVar17 ^ uStack_c0" identifier ^ identifier)) ;) (expression_statement "uVar13 = uVar13 ^ uStack_bc;" (assignment_expression "uVar13 = uVar13 ^ uStack_bc" identifier = (binary_expression "uVar13 ^ uStack_bc" identifier ^ identifier)) ;) (expression_statement "local_138 = local_138 + -2;" (assignment_expression "local_138 = local_138 + -2" identifier = (binary_expression "local_138 + -2" identifier + number_literal)) ;) (expression_statement "local_98 = uVar12 << 8 | uVar12 >> 0x18;" (assignment_expression "local_98 = uVar12 << 8 | uVar12 >> 0x18" identifier = (binary_expression "uVar12 << 8 | uVar12 >> 0x18" (binary_expression "uVar12 << 8" identifier << number_literal) | (binary_expression "uVar12 >> 0x18" identifier >> number_literal))) ;) (expression_statement "uStack_9c = uStack_9c + local_98;" (assignment_expression "uStack_9c = uStack_9c + local_98" identifier = (binary_expression "uStack_9c + local_98" identifier + identifier)) ;) (expression_statement "uVar15 = uVar15 ^ uStack_9c;" (assignment_expression "uVar15 = uVar15 ^ uStack_9c" identifier = (binary_expression "uVar15 ^ uStack_9c" identifier ^ identifier)) ;) (expression_statement "uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;" (assignment_expression "uStack_b0 = uVar15 << 7 | uVar15 >> 0x19" identifier = (binary_expression "uVar15 << 7 | uVar15 >> 0x19" (binary_expression "uVar15 << 7" identifier << number_literal) | (binary_expression "uVar15 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;" (assignment_expression "uVar17 = uVar17 << 0x10 | uVar17 >> 0x10" identifier = (binary_expression "uVar17 << 0x10 | uVar17 >> 0x10" (binary_expression "uVar17 << 0x10" identifier << number_literal) | (binary_expression "uVar17 >> 0x10" identifier >> number_literal))) ;) (expression_statement "local_a8 = local_a8 + uVar17;" (assignment_expression "local_a8 = local_a8 + uVar17" identifier = (binary_expression "local_a8 + uVar17" identifier + identifier)) ;) (expression_statement "uVar19 = uVar19 ^ local_a8;" (assignment_expression "uVar19 = uVar19 ^ local_a8" identifier = (binary_expression "uVar19 ^ local_a8" identifier ^ identifier)) ;) (expression_statement "uVar12 = uVar19 << 0xc | uVar19 >> 0x14;" (assignment_expression "uVar12 = uVar19 << 0xc | uVar19 >> 0x14" identifier = (binary_expression "uVar19 << 0xc | uVar19 >> 0x14" (binary_expression "uVar19 << 0xc" identifier << number_literal) | (binary_expression "uVar19 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uStack_c0 = uStack_c0 + uVar12;" (assignment_expression "uStack_c0 = uStack_c0 + uVar12" identifier = (binary_expression "uStack_c0 + uVar12" identifier + identifier)) ;) (expression_statement "uVar17 = uVar17 ^ uStack_c0;" (assignment_expression "uVar17 = uVar17 ^ uStack_c0" identifier = (binary_expression "uVar17 ^ uStack_c0" identifier ^ identifier)) ;) (expression_statement "uStack_94 = uVar17 << 8 | uVar17 >> 0x18;" (assignment_expression "uStack_94 = uVar17 << 8 | uVar17 >> 0x18" identifier = (binary_expression "uVar17 << 8 | uVar17 >> 0x18" (binary_expression "uVar17 << 8" identifier << number_literal) | (binary_expression "uVar17 >> 0x18" identifier >> number_literal))) ;) (expression_statement "local_a8 = local_a8 + uStack_94;" (assignment_expression "local_a8 = local_a8 + uStack_94" identifier = (binary_expression "local_a8 + uStack_94" identifier + identifier)) ;) (expression_statement "uVar12 = uVar12 ^ local_a8;" (assignment_expression "uVar12 = uVar12 ^ local_a8" identifier = (binary_expression "uVar12 ^ local_a8" identifier ^ identifier)) ;) (expression_statement "local_118 = uVar12 << 7 | uVar12 >> 0x19;" (assignment_expression "local_118 = uVar12 << 7 | uVar12 >> 0x19" identifier = (binary_expression "uVar12 << 7 | uVar12 >> 0x19" (binary_expression "uVar12 << 7" identifier << number_literal) | (binary_expression "uVar12 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;" (assignment_expression "uVar17 = uVar13 << 0x10 | uVar13 >> 0x10" identifier = (binary_expression "uVar13 << 0x10 | uVar13 >> 0x10" (binary_expression "uVar13 << 0x10" identifier << number_literal) | (binary_expression "uVar13 >> 0x10" identifier >> number_literal))) ;) (expression_statement "uStack_a4 = uStack_a4 + uVar17;" (assignment_expression "uStack_a4 = uStack_a4 + uVar17" identifier = (binary_expression "uStack_a4 + uVar17" identifier + identifier)) ;) (expression_statement "uVar22 = uVar22 ^ uStack_a4;" (assignment_expression "uVar22 = uVar22 ^ uStack_a4" identifier = (binary_expression "uVar22 ^ uStack_a4" identifier ^ identifier)) ;) (expression_statement "uVar12 = uVar22 << 0xc | uVar22 >> 0x14;" (assignment_expression "uVar12 = uVar22 << 0xc | uVar22 >> 0x14" identifier = (binary_expression "uVar22 << 0xc | uVar22 >> 0x14" (binary_expression "uVar22 << 0xc" identifier << number_literal) | (binary_expression "uVar22 >> 0x14" identifier >> number_literal))) ;) (expression_statement "uStack_bc = uStack_bc + uVar12;" (assignment_expression "uStack_bc = uStack_bc + uVar12" identifier = (binary_expression "uStack_bc + uVar12" identifier + identifier)) ;) (expression_statement "uVar17 = uVar17 ^ uStack_bc;" (assignment_expression "uVar17 = uVar17 ^ uStack_bc" identifier = (binary_expression "uVar17 ^ uStack_bc" identifier ^ identifier)) ;) (expression_statement "uStack_90 = uVar17 << 8 | uVar17 >> 0x18;" (assignment_expression "uStack_90 = uVar17 << 8 | uVar17 >> 0x18" identifier = (binary_expression "uVar17 << 8 | uVar17 >> 0x18" (binary_expression "uVar17 << 8" identifier << number_literal) | (binary_expression "uVar17 >> 0x18" identifier >> number_literal))) ;) (expression_statement "uStack_a4 = uStack_a4 + uStack_90;" (assignment_expression "uStack_a4 = uStack_a4 + uStack_90" identifier = (binary_expression "uStack_a4 + uStack_90" identifier + identifier)) ;) (expression_statement "uVar12 = uVar12 ^ uStack_a4;" (assignment_expression "uVar12 = uVar12 ^ uStack_a4" identifier = (binary_expression "uVar12 ^ uStack_a4" identifier ^ identifier)) ;) (expression_statement "local_b8 = uVar12 << 7 | uVar12 >> 0x19;" (assignment_expression "local_b8 = uVar12 << 7 | uVar12 >> 0x19" identifier = (binary_expression "uVar12 << 7 | uVar12 >> 0x19" (binary_expression "uVar12 << 7" identifier << number_literal) | (binary_expression "uVar12 >> 0x19" identifier >> number_literal))) ;) (expression_statement "uStack_ac = local_118;" (assignment_expression "uStack_ac = local_118" identifier = identifier) ;) (expression_statement "uStack_a0 = local_114;" (assignment_expression "uStack_a0 = local_114" identifier = identifier) ;) (expression_statement "uStack_8c = local_11c;" (assignment_expression "uStack_8c = local_11c" identifier = identifier) ;) }) while (parenthesized_expression "(0 < local_138)" ( (binary_expression "0 < local_138" number_literal < identifier) )) ;) })) (expression_statement "local_88 = local_c8 + *param_1;" (assignment_expression "local_88 = local_c8 + *param_1" identifier = (binary_expression "local_c8 + *param_1" identifier + (pointer_expression "*param_1" * identifier))) ;) (expression_statement "iVar8 = local_88;" (assignment_expression "iVar8 = local_88" identifier = identifier) ;) (expression_statement "local_80 = param_1[2] + uStack_c0;" (assignment_expression "local_80 = param_1[2] + uStack_c0" identifier = (binary_expression "param_1[2] + uStack_c0" (subscript_expression "param_1[2]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_7c = param_1[3] + uStack_bc;" (assignment_expression "local_7c = param_1[3] + uStack_bc" identifier = (binary_expression "param_1[3] + uStack_bc" (subscript_expression "param_1[3]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_84 = param_1[1] + uStack_c4;" (assignment_expression "local_84 = param_1[1] + uStack_c4" identifier = (binary_expression "param_1[1] + uStack_c4" (subscript_expression "param_1[1]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_78 = param_1[4] + local_b8;" (assignment_expression "local_78 = param_1[4] + local_b8" identifier = (binary_expression "param_1[4] + local_b8" (subscript_expression "param_1[4]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_74 = param_1[5] + uStack_b4;" (assignment_expression "local_74 = param_1[5] + uStack_b4" identifier = (binary_expression "param_1[5] + uStack_b4" (subscript_expression "param_1[5]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_70 = param_1[6] + uStack_b0;" (assignment_expression "local_70 = param_1[6] + uStack_b0" identifier = (binary_expression "param_1[6] + uStack_b0" (subscript_expression "param_1[6]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_6c = param_1[7] + uStack_ac;" (assignment_expression "local_6c = param_1[7] + uStack_ac" identifier = (binary_expression "param_1[7] + uStack_ac" (subscript_expression "param_1[7]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_68 = param_1[8] + local_a8;" (assignment_expression "local_68 = param_1[8] + local_a8" identifier = (binary_expression "param_1[8] + local_a8" (subscript_expression "param_1[8]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_64 = param_1[9] + uStack_a4;" (assignment_expression "local_64 = param_1[9] + uStack_a4" identifier = (binary_expression "param_1[9] + uStack_a4" (subscript_expression "param_1[9]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_60 = param_1[10] + uStack_a0;" (assignment_expression "local_60 = param_1[10] + uStack_a0" identifier = (binary_expression "param_1[10] + uStack_a0" (subscript_expression "param_1[10]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "iVar21 = param_1[0xc] + 1;" (assignment_expression "iVar21 = param_1[0xc] + 1" identifier = (binary_expression "param_1[0xc] + 1" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "local_5c = param_1[0xb] + uStack_9c;" (assignment_expression "local_5c = param_1[0xb] + uStack_9c" identifier = (binary_expression "param_1[0xb] + uStack_9c" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_58 = local_98 + param_1[0xc];" (assignment_expression "local_58 = local_98 + param_1[0xc]" identifier = (binary_expression "local_98 + param_1[0xc]" identifier + (subscript_expression "param_1[0xc]" identifier [ number_literal ]))) ;) (expression_statement "local_54 = uStack_94 + param_1[0xd];" (assignment_expression "local_54 = uStack_94 + param_1[0xd]" identifier = (binary_expression "uStack_94 + param_1[0xd]" identifier + (subscript_expression "param_1[0xd]" identifier [ number_literal ]))) ;) (expression_statement "local_50 = param_1[0xe] + uStack_90;" (assignment_expression "local_50 = param_1[0xe] + uStack_90" identifier = (binary_expression "param_1[0xe] + uStack_90" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "local_4c = uStack_8c + param_1[0xf];" (assignment_expression "local_4c = uStack_8c + param_1[0xf]" identifier = (binary_expression "uStack_8c + param_1[0xf]" identifier + (subscript_expression "param_1[0xf]" identifier [ number_literal ]))) ;) (if_statement "if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }" if (parenthesized_expression "(local_f0 == 8)" ( (binary_expression "local_f0 == 8" identifier == number_literal) )) (compound_statement "{\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }" { (expression_statement "param_1[0xc] = iVar21;" (assignment_expression "param_1[0xc] = iVar21" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }" { (expression_statement "iVar21 = param_1[0xd] + 1;" (assignment_expression "iVar21 = param_1[0xd] + 1" identifier = (binary_expression "param_1[0xd] + 1" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_1[0xd] = iVar21;" (assignment_expression "param_1[0xd] = iVar21" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto joined_r0x0018a0dd;" goto statement_identifier ;) })) }) (else_clause "else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }" else (compound_statement "{\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }" { (expression_statement "param_1[0xc] = iVar21;" (assignment_expression "param_1[0xc] = iVar21" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "joined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }" statement_identifier : (if_statement "if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }" { (expression_statement "uVar9 = 0x13;" (assignment_expression "uVar9 = 0x13" identifier = number_literal) ;) (goto_statement "goto LAB_0018a413;" goto statement_identifier ;) }))) }))) (if_statement "if (local_100 < 0x41) goto LAB_0018a0ed;" if (parenthesized_expression "(local_100 < 0x41)" ( (binary_expression "local_100 < 0x41" identifier < number_literal) )) (goto_statement "goto LAB_0018a0ed;" goto statement_identifier ;)) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);" do (compound_statement "{\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      }" { (expression_statement "pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);" (assignment_expression "pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11)" (subscript_expression "pbVar24[lVar11]" identifier [ identifier ]) = (binary_expression "pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11)" (subscript_expression "pbVar10[lVar11]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + lVar11)" * (cast_expression "(byte *)((long)&local_88 + lVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + lVar11)" ( (binary_expression "(long)&local_88 + lVar11" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;) (expression_statement "pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);" (assignment_expression "pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1)" (subscript_expression "pbVar24[lVar11 + 1]" identifier [ (binary_expression "lVar11 + 1" identifier + number_literal) ]) = (binary_expression "pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1)" (subscript_expression "pbVar10[lVar11 + 1]" identifier [ (binary_expression "lVar11 + 1" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_88 + lVar11 + 1)" * (cast_expression "(byte *)((long)&local_88 + lVar11 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + lVar11 + 1)" ( (binary_expression "(long)&local_88 + lVar11 + 1" (binary_expression "(long)&local_88 + lVar11" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);" (assignment_expression "pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2)" (subscript_expression "pbVar24[lVar11 + 2]" identifier [ (binary_expression "lVar11 + 2" identifier + number_literal) ]) = (binary_expression "pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2)" (subscript_expression "pbVar10[lVar11 + 2]" identifier [ (binary_expression "lVar11 + 2" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_88 + lVar11 + 2)" * (cast_expression "(byte *)((long)&local_88 + lVar11 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + lVar11 + 2)" ( (binary_expression "(long)&local_88 + lVar11 + 2" (binary_expression "(long)&local_88 + lVar11" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);" (assignment_expression "pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3)" (subscript_expression "pbVar24[lVar11 + 3]" identifier [ (binary_expression "lVar11 + 3" identifier + number_literal) ]) = (binary_expression "pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3)" (subscript_expression "pbVar10[lVar11 + 3]" identifier [ (binary_expression "lVar11 + 3" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_88 + lVar11 + 3)" * (cast_expression "(byte *)((long)&local_88 + lVar11 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + lVar11 + 3)" ( (binary_expression "(long)&local_88 + lVar11 + 3" (binary_expression "(long)&local_88 + lVar11" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);" (assignment_expression "pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11)" (subscript_expression "pbVar24[lVar11 + 4]" identifier [ (binary_expression "lVar11 + 4" identifier + number_literal) ]) = (binary_expression "pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11)" (subscript_expression "pbVar10[lVar11 + 4]" identifier [ (binary_expression "lVar11 + 4" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + lVar11)" * (cast_expression "(byte *)((long)&local_84 + lVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + lVar11)" ( (binary_expression "(long)&local_84 + lVar11" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) )))))) ;) (expression_statement "pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);" (assignment_expression "pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1)" (subscript_expression "pbVar24[lVar11 + 5]" identifier [ (binary_expression "lVar11 + 5" identifier + number_literal) ]) = (binary_expression "pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1)" (subscript_expression "pbVar10[lVar11 + 5]" identifier [ (binary_expression "lVar11 + 5" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + lVar11 + 1)" * (cast_expression "(byte *)((long)&local_84 + lVar11 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + lVar11 + 1)" ( (binary_expression "(long)&local_84 + lVar11 + 1" (binary_expression "(long)&local_84 + lVar11" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);" (assignment_expression "pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2)" (subscript_expression "pbVar24[lVar11 + 6]" identifier [ (binary_expression "lVar11 + 6" identifier + number_literal) ]) = (binary_expression "pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2)" (subscript_expression "pbVar10[lVar11 + 6]" identifier [ (binary_expression "lVar11 + 6" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + lVar11 + 2)" * (cast_expression "(byte *)((long)&local_84 + lVar11 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + lVar11 + 2)" ( (binary_expression "(long)&local_84 + lVar11 + 2" (binary_expression "(long)&local_84 + lVar11" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);" (assignment_expression "pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3)" (subscript_expression "pbVar24[lVar11 + 7]" identifier [ (binary_expression "lVar11 + 7" identifier + number_literal) ]) = (binary_expression "pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3)" (subscript_expression "pbVar10[lVar11 + 7]" identifier [ (binary_expression "lVar11 + 7" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + lVar11 + 3)" * (cast_expression "(byte *)((long)&local_84 + lVar11 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + lVar11 + 3)" ( (binary_expression "(long)&local_84 + lVar11 + 3" (binary_expression "(long)&local_84 + lVar11" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "lVar11 = lVar11 + 8;" (assignment_expression "lVar11 = lVar11 + 8" identifier = (binary_expression "lVar11 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar11 != 0x40)" ( (binary_expression "lVar11 != 0x40" identifier != number_literal) )) ;) (expression_statement "local_100 = local_100 - 0x40;" (assignment_expression "local_100 = local_100 - 0x40" identifier = (binary_expression "local_100 - 0x40" identifier - number_literal)) ;) (expression_statement "local_f0 = *(long *)(param_1 + 0x22);" (assignment_expression "local_f0 = *(long *)(param_1 + 0x22)" identifier = (pointer_expression "*(long *)(param_1 + 0x22)" * (cast_expression "(long *)(param_1 + 0x22)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22)" ( (binary_expression "param_1 + 0x22" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0018a411;" goto statement_identifier ;) (labeled_statement "LAB_0018a0ed:\n  uVar14 = 0;" statement_identifier : (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;)) (expression_statement "uVar17 = (uint)local_100 & 7;" (assignment_expression "uVar17 = (uint)local_100 & 7" identifier = (binary_expression "(uint)local_100 & 7" (cast_expression "(uint)local_100" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((local_100 & 7) == 0) goto LAB_0018a1e3;" if (parenthesized_expression "((local_100 & 7) == 0)" ( (binary_expression "(local_100 & 7) == 0" (parenthesized_expression "(local_100 & 7)" ( (binary_expression "local_100 & 7" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0018a1e3;" goto statement_identifier ;)) (if_statement "if (uVar17 != 1) {\n    if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    uVar14 = uVar14 + 1;\n  }" if (parenthesized_expression "(uVar17 != 1)" ( (binary_expression "uVar17 != 1" identifier != number_literal) )) (compound_statement "{\n    if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    uVar14 = uVar14 + 1;\n  }" { (if_statement "if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }" if (parenthesized_expression "(uVar17 != 2)" ( (binary_expression "uVar17 != 2" identifier != number_literal) )) (compound_statement "{\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }" { (if_statement "if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }" if (parenthesized_expression "(uVar17 != 3)" ( (binary_expression "uVar17 != 3" identifier != number_literal) )) (compound_statement "{\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }" { (if_statement "if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }" if (parenthesized_expression "(uVar17 != 4)" ( (binary_expression "uVar17 != 4" identifier != number_literal) )) (compound_statement "{\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }" { (if_statement "if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }" if (parenthesized_expression "(uVar17 != 5)" ( (binary_expression "uVar17 != 5" identifier != number_literal) )) (compound_statement "{\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }" { (if_statement "if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }" if (parenthesized_expression "(uVar17 != 6)" ( (binary_expression "uVar17 != 6" identifier != number_literal) )) (compound_statement "{\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }" { (expression_statement "local_88._0_1_ = (byte)(local_c8 + *param_1);" (assignment_expression "local_88._0_1_ = (byte)(local_c8 + *param_1)" (field_expression "local_88._0_1_" identifier . field_identifier) = (call_expression "(byte)(local_c8 + *param_1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(local_c8 + *param_1)" ( (binary_expression "local_c8 + *param_1" identifier + (pointer_expression "*param_1" * identifier)) )))) ;) (expression_statement "*pbVar24 = *pbVar10 ^ (byte)local_88;" (assignment_expression "*pbVar24 = *pbVar10 ^ (byte)local_88" (pointer_expression "*pbVar24" * identifier) = (binary_expression "*pbVar10 ^ (byte)local_88" (pointer_expression "*pbVar10" * identifier) ^ (cast_expression "(byte)local_88" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) })) (expression_statement "uVar14 = (ulong)(uVar17 != 6);" (assignment_expression "uVar14 = (ulong)(uVar17 != 6)" identifier = (call_expression "(ulong)(uVar17 != 6)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar17 != 6)" ( (binary_expression "uVar17 != 6" identifier != number_literal) )))) ;) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" identifier [ identifier ]) = (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14)" * (cast_expression "(byte *)((long)&local_88 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14)" ( (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" identifier [ identifier ]) = (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14)" * (cast_expression "(byte *)((long)&local_88 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14)" ( (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" identifier [ identifier ]) = (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14)" * (cast_expression "(byte *)((long)&local_88 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14)" ( (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" identifier [ identifier ]) = (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14)" * (cast_expression "(byte *)((long)&local_88 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14)" ( (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" identifier [ identifier ]) = (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14)" * (cast_expression "(byte *)((long)&local_88 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14)" ( (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" identifier [ identifier ]) = (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14)" * (cast_expression "(byte *)((long)&local_88 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14)" ( (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;) (for_statement "for (uVar14 = uVar14 + 1; local_100 != uVar14; uVar14 = uVar14 + 8) {\nLAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);\n    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);\n    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);\n    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);\n    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);\n    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);\n    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);\n  }" for ( (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ; (binary_expression "local_100 != uVar14" identifier != identifier) ; (assignment_expression "uVar14 = uVar14 + 8" identifier = (binary_expression "uVar14 + 8" identifier + number_literal)) ) (compound_statement "{\nLAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);\n    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);\n    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);\n    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);\n    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);\n    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);\n    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);\n  }" { (labeled_statement "LAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" statement_identifier : (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" identifier [ identifier ]) = (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" identifier [ identifier ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14)" * (cast_expression "(byte *)((long)&local_88 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14)" ( (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) )))))) ;)) (expression_statement "pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);" (assignment_expression "pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1)" (subscript_expression "pbVar24[uVar14 + 1]" identifier [ (binary_expression "uVar14 + 1" identifier + number_literal) ]) = (binary_expression "pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1)" (subscript_expression "pbVar10[uVar14 + 1]" identifier [ (binary_expression "uVar14 + 1" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14 + 1)" * (cast_expression "(byte *)((long)&local_88 + uVar14 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14 + 1)" ( (binary_expression "(long)&local_88 + uVar14 + 1" (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);" (assignment_expression "pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2)" (subscript_expression "pbVar24[uVar14 + 2]" identifier [ (binary_expression "uVar14 + 2" identifier + number_literal) ]) = (binary_expression "pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2)" (subscript_expression "pbVar10[uVar14 + 2]" identifier [ (binary_expression "uVar14 + 2" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14 + 2)" * (cast_expression "(byte *)((long)&local_88 + uVar14 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14 + 2)" ( (binary_expression "(long)&local_88 + uVar14 + 2" (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);" (assignment_expression "pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3)" (subscript_expression "pbVar24[uVar14 + 3]" identifier [ (binary_expression "uVar14 + 3" identifier + number_literal) ]) = (binary_expression "pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3)" (subscript_expression "pbVar10[uVar14 + 3]" identifier [ (binary_expression "uVar14 + 3" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_88 + uVar14 + 3)" * (cast_expression "(byte *)((long)&local_88 + uVar14 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + uVar14 + 3)" ( (binary_expression "(long)&local_88 + uVar14 + 3" (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);" (assignment_expression "pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14)" (subscript_expression "pbVar24[uVar14 + 4]" identifier [ (binary_expression "uVar14 + 4" identifier + number_literal) ]) = (binary_expression "pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14)" (subscript_expression "pbVar10[uVar14 + 4]" identifier [ (binary_expression "uVar14 + 4" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + uVar14)" * (cast_expression "(byte *)((long)&local_84 + uVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + uVar14)" ( (binary_expression "(long)&local_84 + uVar14" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) )))))) ;) (expression_statement "pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);" (assignment_expression "pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1)" (subscript_expression "pbVar24[uVar14 + 5]" identifier [ (binary_expression "uVar14 + 5" identifier + number_literal) ]) = (binary_expression "pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1)" (subscript_expression "pbVar10[uVar14 + 5]" identifier [ (binary_expression "uVar14 + 5" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + uVar14 + 1)" * (cast_expression "(byte *)((long)&local_84 + uVar14 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + uVar14 + 1)" ( (binary_expression "(long)&local_84 + uVar14 + 1" (binary_expression "(long)&local_84 + uVar14" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);" (assignment_expression "pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2)" (subscript_expression "pbVar24[uVar14 + 6]" identifier [ (binary_expression "uVar14 + 6" identifier + number_literal) ]) = (binary_expression "pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2)" (subscript_expression "pbVar10[uVar14 + 6]" identifier [ (binary_expression "uVar14 + 6" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + uVar14 + 2)" * (cast_expression "(byte *)((long)&local_84 + uVar14 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + uVar14 + 2)" ( (binary_expression "(long)&local_84 + uVar14 + 2" (binary_expression "(long)&local_84 + uVar14" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) )))))) ;) (expression_statement "pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);" (assignment_expression "pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3)" (subscript_expression "pbVar24[uVar14 + 7]" identifier [ (binary_expression "uVar14 + 7" identifier + number_literal) ]) = (binary_expression "pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3)" (subscript_expression "pbVar10[uVar14 + 7]" identifier [ (binary_expression "uVar14 + 7" identifier + number_literal) ]) ^ (pointer_expression "*(byte *)((long)&local_84 + uVar14 + 3)" * (cast_expression "(byte *)((long)&local_84 + uVar14 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + uVar14 + 3)" ( (binary_expression "(long)&local_84 + uVar14 + 3" (binary_expression "(long)&local_84 + uVar14" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) )))))) ;) })) (expression_statement "*(ulong *)(param_1 + 0x20) = 0x40 - local_100;" (assignment_expression "*(ulong *)(param_1 + 0x20) = 0x40 - local_100" (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "0x40 - local_100" number_literal - identifier)) ;) (expression_statement "local_88 = iVar8;" (assignment_expression "local_88 = iVar8" identifier = identifier) ;) (if_statement "if (local_100 != 0x40) {\n    uVar17 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }" if (parenthesized_expression "(local_100 != 0x40)" ( (binary_expression "local_100 != 0x40" identifier != number_literal) )) (compound_statement "{\n    uVar17 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }" { (expression_statement "uVar17 = (uint)-local_100 & 7;" (assignment_expression "uVar17 = (uint)-local_100 & 7" identifier = (binary_expression "(uint)-local_100 & 7" (binary_expression "(uint)-local_100" (parenthesized_expression "(uint)" ( identifier )) - identifier) & number_literal)) ;) (if_statement "if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }" if (parenthesized_expression "((-local_100 & 7) != 0)" ( (binary_expression "(-local_100 & 7) != 0" (parenthesized_expression "(-local_100 & 7)" ( (binary_expression "-local_100 & 7" (unary_expression "-local_100" - identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }" { (if_statement "if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }" if (parenthesized_expression "(uVar17 != 1)" ( (binary_expression "uVar17 != 1" identifier != number_literal) )) (compound_statement "{\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }" { (if_statement "if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }" if (parenthesized_expression "(uVar17 != 2)" ( (binary_expression "uVar17 != 2" identifier != number_literal) )) (compound_statement "{\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }" { (if_statement "if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }" if (parenthesized_expression "(uVar17 != 3)" ( (binary_expression "uVar17 != 3" identifier != number_literal) )) (compound_statement "{\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }" { (if_statement "if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }" if (parenthesized_expression "(uVar17 != 4)" ( (binary_expression "uVar17 != 4" identifier != number_literal) )) (compound_statement "{\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }" { (if_statement "if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }" if (parenthesized_expression "(uVar17 != 5)" ( (binary_expression "uVar17 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }" { (if_statement "if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }" if (parenthesized_expression "(uVar17 != 6)" ( (binary_expression "uVar17 != 6" identifier != number_literal) )) (compound_statement "{\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }" { (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" identifier = (binary_expression "local_100 + 1" identifier + number_literal)) ;) (if_statement "if (local_100 == 0x40) goto LAB_0018a411;" if (parenthesized_expression "(local_100 == 0x40)" ( (binary_expression "local_100 == 0x40" identifier == number_literal) )) (goto_statement "goto LAB_0018a411;" goto statement_identifier ;)) })) (do_statement "do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);" do (compound_statement "{\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    }" { (expression_statement "uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);" (assignment_expression "uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1)" identifier = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100 + 1)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100 + 1)" ( (binary_expression "(long)&local_88 + local_100 + 1" (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);" (assignment_expression "uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2)" identifier = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100 + 2)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100 + 2)" ( (binary_expression "(long)&local_88 + local_100 + 2" (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);" (assignment_expression "uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3)" identifier = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100 + 3)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100 + 3)" ( (binary_expression "(long)&local_88 + local_100 + 3" (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined1 *)((long)&local_84 + local_100);" (assignment_expression "uVar4 = *(undefined1 *)((long)&local_84 + local_100)" identifier = (pointer_expression "*(undefined1 *)((long)&local_84 + local_100)" * (cast_expression "(undefined1 *)((long)&local_84 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + local_100)" ( (binary_expression "(long)&local_84 + local_100" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) ))))) ;) (expression_statement "uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);" (assignment_expression "uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1)" identifier = (pointer_expression "*(undefined1 *)((long)&local_84 + local_100 + 1)" * (cast_expression "(undefined1 *)((long)&local_84 + local_100 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + local_100 + 1)" ( (binary_expression "(long)&local_84 + local_100 + 1" (binary_expression "(long)&local_84 + local_100" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x40)" ( (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" * (cast_expression "(undefined1 *)((long)&local_88 + local_100)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_88 + local_100)" ( (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_88" & identifier)) + identifier) ))))) ;) (expression_statement "uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);" (assignment_expression "uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2)" identifier = (pointer_expression "*(undefined1 *)((long)&local_84 + local_100 + 2)" * (cast_expression "(undefined1 *)((long)&local_84 + local_100 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + local_100 + 2)" ( (binary_expression "(long)&local_84 + local_100 + 2" (binary_expression "(long)&local_84 + local_100" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);" (assignment_expression "uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3)" identifier = (pointer_expression "*(undefined1 *)((long)&local_84 + local_100 + 3)" * (cast_expression "(undefined1 *)((long)&local_84 + local_100 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_84 + local_100 + 3)" ( (binary_expression "(long)&local_84 + local_100 + 3" (binary_expression "(long)&local_84 + local_100" (cast_expression "(long)&local_84" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_84" & identifier)) + identifier) + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x41)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x41)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x41)" ( (binary_expression "(long)param_1 + local_100 + 0x41" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x42)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x42)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x42)" ( (binary_expression "(long)param_1 + local_100 + 0x42" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x43)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x43)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x43)" ( (binary_expression "(long)param_1 + local_100 + 0x43" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x44)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x44)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x44)" ( (binary_expression "(long)param_1 + local_100 + 0x44" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x45)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x45)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x45)" ( (binary_expression "(long)param_1 + local_100 + 0x45" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x46)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x46)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x46)" ( (binary_expression "(long)param_1 + local_100 + 0x46" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x47)" * (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x47)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + local_100 + 0x47)" ( (binary_expression "(long)param_1 + local_100 + 0x47" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "local_100 = local_100 + 8;" (assignment_expression "local_100 = local_100 + 8" identifier = (binary_expression "local_100 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_100 != 0x40)" ( (binary_expression "local_100 != 0x40" identifier != number_literal) )) ;) })) (labeled_statement "LAB_0018a411:\n  uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0018a413:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar9;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar9;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar9;\n  }" { (return_statement "return uVar9;" return identifier ;) }))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - IDENT) ))) )))) ^ (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - IDENT) ))) )))) ^ (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - IDENT) ))) )))) ^ (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - IDENT) ))) )))) ^ (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - IDENT) ))) )))) ^ (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - IDENT) ))) )))) ^ (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - IDENT) ))) )))) ^ (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression IDENT + LIT)) ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - IDENT) ))) )))) ^ (subscript_expression IDENT [ IDENT ]))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) )))) ^ (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) )))) ^ (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) )))) ^ (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) )))) ^ (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) )))) ^ (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) )))) ^ (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) )))) ^ (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (binary_expression IDENT + IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (binary_expression IDENT + IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (binary_expression IDENT + IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (binary_expression IDENT + IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression LIT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + 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 IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (pointer_expression * IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))))) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression IDENT + LIT)) ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression LIT - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) - IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - IDENT) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = 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 = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "undefined8 chacha_crypt(int *param_1,byte *param_2,ulong param_3,byte *param_4)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  undefined1 uVar4;\n  undefined1 uVar5;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  int iVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  long lVar11;\n  uint uVar12;\n  uint uVar13;\n  ulong uVar14;\n  uint uVar15;\n  ulong uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  int iVar21;\n  uint uVar22;\n  ulong uVar23;\n  byte *pbVar24;\n  long in_FS_OFFSET;\n  int local_138;\n  uint local_11c;\n  uint local_118;\n  uint local_114;\n  ulong local_100;\n  long local_f0;\n  uint local_c8;\n  uint uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  uint local_b8;\n  uint uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  uint local_a8;\n  uint uStack_a4;\n  uint uStack_a0;\n  uint uStack_9c;\n  uint local_98;\n  uint uStack_94;\n  uint uStack_90;\n  uint uStack_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  int local_80;\n  int local_7c;\n  int local_78;\n  int local_74;\n  int local_70;\n  int local_6c;\n  int local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 != 0) {\n    if (param_1 == (int *)0x0) {\n                    \n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (param_2 == (byte *)0x0) {\n                    \n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (param_4 == (byte *)0x0) {\n                    \n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = *(long *)(param_1 + 0x22);\n    if (local_f0 == 0) {\n                    \n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar14 = *(ulong *)(param_1 + 0x20);\n    local_100 = param_3;\n    if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }\n    do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );\n  }\n  goto LAB_0018a411;\nLAB_0018a0ed:\n  uVar14 = 0;\n  uVar17 = (uint)local_100 & 7;\n  if ((local_100 & 7) == 0) goto LAB_0018a1e3;\n  if (uVar17 != 1) {\n    if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    uVar14 = uVar14 + 1;\n  }\n  pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n  for (uVar14 = uVar14 + 1; local_100 != uVar14; uVar14 = uVar14 + 8) {\nLAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);\n    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);\n    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);\n    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);\n    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);\n    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);\n    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);\n  }\n  *(ulong *)(param_1 + 0x20) = 0x40 - local_100;\n  local_88 = iVar8;\n  if (local_100 != 0x40) {\n    uVar17 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }\nLAB_0018a411:\n  uVar9 = 0;\nLAB_0018a413:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar9;\n  }\n                    \n  __stack_chk_fail();\n}" (type_identifier "undefined8") (function_declarator "chacha_crypt(int *param_1,byte *param_2,ulong param_3,byte *param_4)" (identifier "chacha_crypt") (parameter_list "(int *param_1,byte *param_2,ulong param_3,byte *param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "ulong param_3" (type_identifier "ulong") (identifier "param_3")) (, ",") (parameter_declaration "byte *param_4" (type_identifier "byte") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  undefined1 uVar4;\n  undefined1 uVar5;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  int iVar8;\n  undefined8 uVar9;\n  byte *pbVar10;\n  long lVar11;\n  uint uVar12;\n  uint uVar13;\n  ulong uVar14;\n  uint uVar15;\n  ulong uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  int iVar21;\n  uint uVar22;\n  ulong uVar23;\n  byte *pbVar24;\n  long in_FS_OFFSET;\n  int local_138;\n  uint local_11c;\n  uint local_118;\n  uint local_114;\n  ulong local_100;\n  long local_f0;\n  uint local_c8;\n  uint uStack_c4;\n  uint uStack_c0;\n  uint uStack_bc;\n  uint local_b8;\n  uint uStack_b4;\n  uint uStack_b0;\n  uint uStack_ac;\n  uint local_a8;\n  uint uStack_a4;\n  uint uStack_a0;\n  uint uStack_9c;\n  uint local_98;\n  uint uStack_94;\n  uint uStack_90;\n  uint uStack_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  int local_80;\n  int local_7c;\n  int local_78;\n  int local_74;\n  int local_70;\n  int local_6c;\n  int local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 != 0) {\n    if (param_1 == (int *)0x0) {\n                    \n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (param_2 == (byte *)0x0) {\n                    \n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (param_4 == (byte *)0x0) {\n                    \n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = *(long *)(param_1 + 0x22);\n    if (local_f0 == 0) {\n                    \n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar14 = *(ulong *)(param_1 + 0x20);\n    local_100 = param_3;\n    if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }\n    do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );\n  }\n  goto LAB_0018a411;\nLAB_0018a0ed:\n  uVar14 = 0;\n  uVar17 = (uint)local_100 & 7;\n  if ((local_100 & 7) == 0) goto LAB_0018a1e3;\n  if (uVar17 != 1) {\n    if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    uVar14 = uVar14 + 1;\n  }\n  pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n  for (uVar14 = uVar14 + 1; local_100 != uVar14; uVar14 = uVar14 + 8) {\nLAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);\n    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);\n    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);\n    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);\n    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);\n    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);\n    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);\n  }\n  *(ulong *)(param_1 + 0x20) = 0x40 - local_100;\n  local_88 = iVar8;\n  if (local_100 != 0x40) {\n    uVar17 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }\nLAB_0018a411:\n  uVar9 = 0;\nLAB_0018a413:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar9;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "undefined1 uVar1;" (type_identifier "undefined1") (identifier "uVar1") (; ";")) (declaration "undefined1 uVar2;" (type_identifier "undefined1") (identifier "uVar2") (; ";")) (declaration "undefined1 uVar3;" (type_identifier "undefined1") (identifier "uVar3") (; ";")) (declaration "undefined1 uVar4;" (type_identifier "undefined1") (identifier "uVar4") (; ";")) (declaration "undefined1 uVar5;" (type_identifier "undefined1") (identifier "uVar5") (; ";")) (declaration "undefined1 uVar6;" (type_identifier "undefined1") (identifier "uVar6") (; ";")) (declaration "undefined1 uVar7;" (type_identifier "undefined1") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined8 uVar9;" (type_identifier "undefined8") (identifier "uVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "ulong uVar14;" (type_identifier "ulong") (identifier "uVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "ulong uVar16;" (type_identifier "ulong") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "ulong uVar23;" (type_identifier "ulong") (identifier "uVar23") (; ";")) (declaration "byte *pbVar24;" (type_identifier "byte") (pointer_declarator "*pbVar24" (* "*") (identifier "pbVar24")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "int local_138;" (primitive_type "int") (identifier "local_138") (; ";")) (declaration "uint local_11c;" (type_identifier "uint") (identifier "local_11c") (; ";")) (declaration "uint local_118;" (type_identifier "uint") (identifier "local_118") (; ";")) (declaration "uint local_114;" (type_identifier "uint") (identifier "local_114") (; ";")) (declaration "ulong local_100;" (type_identifier "ulong") (identifier "local_100") (; ";")) (declaration "long local_f0;" (sized_type_specifier "long" (long "long")) (identifier "local_f0") (; ";")) (declaration "uint local_c8;" (type_identifier "uint") (identifier "local_c8") (; ";")) (declaration "uint uStack_c4;" (type_identifier "uint") (identifier "uStack_c4") (; ";")) (declaration "uint uStack_c0;" (type_identifier "uint") (identifier "uStack_c0") (; ";")) (declaration "uint uStack_bc;" (type_identifier "uint") (identifier "uStack_bc") (; ";")) (declaration "uint local_b8;" (type_identifier "uint") (identifier "local_b8") (; ";")) (declaration "uint uStack_b4;" (type_identifier "uint") (identifier "uStack_b4") (; ";")) (declaration "uint uStack_b0;" (type_identifier "uint") (identifier "uStack_b0") (; ";")) (declaration "uint uStack_ac;" (type_identifier "uint") (identifier "uStack_ac") (; ";")) (declaration "uint local_a8;" (type_identifier "uint") (identifier "local_a8") (; ";")) (declaration "uint uStack_a4;" (type_identifier "uint") (identifier "uStack_a4") (; ";")) (declaration "uint uStack_a0;" (type_identifier "uint") (identifier "uStack_a0") (; ";")) (declaration "uint uStack_9c;" (type_identifier "uint") (identifier "uStack_9c") (; ";")) (declaration "uint local_98;" (type_identifier "uint") (identifier "local_98") (; ";")) (declaration "uint uStack_94;" (type_identifier "uint") (identifier "uStack_94") (; ";")) (declaration "uint uStack_90;" (type_identifier "uint") (identifier "uStack_90") (; ";")) (declaration "uint uStack_8c;" (type_identifier "uint") (identifier "uStack_8c") (; ";")) (declaration "undefined4 local_88;" (type_identifier "undefined4") (identifier "local_88") (; ";")) (declaration "undefined4 local_84;" (type_identifier "undefined4") (identifier "local_84") (; ";")) (declaration "int local_80;" (primitive_type "int") (identifier "local_80") (; ";")) (declaration "int local_7c;" (primitive_type "int") (identifier "local_7c") (; ";")) (declaration "int local_78;" (primitive_type "int") (identifier "local_78") (; ";")) (declaration "int local_74;" (primitive_type "int") (identifier "local_74") (; ";")) (declaration "int local_70;" (primitive_type "int") (identifier "local_70") (; ";")) (declaration "int local_6c;" (primitive_type "int") (identifier "local_6c") (; ";")) (declaration "int local_68;" (primitive_type "int") (identifier "local_68") (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (param_3 != 0) {\n    if (param_1 == (int *)0x0) {\n                    \n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (param_2 == (byte *)0x0) {\n                    \n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (param_4 == (byte *)0x0) {\n                    \n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = *(long *)(param_1 + 0x22);\n    if (local_f0 == 0) {\n                    \n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar14 = *(ulong *)(param_1 + 0x20);\n    local_100 = param_3;\n    if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }\n    do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );\n  }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_1 == (int *)0x0) {\n                    \n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }\n    if (param_2 == (byte *)0x0) {\n                    \n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }\n    if (param_4 == (byte *)0x0) {\n                    \n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }\n    local_f0 = *(long *)(param_1 + 0x22);\n    if (local_f0 == 0) {\n                    \n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }\n    uVar14 = *(ulong *)(param_1 + 0x20);\n    local_100 = param_3;\n    if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }\n    do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );\n  }" ({ "{") (if_statement "if (param_1 == (int *)0x0) {\n                    \n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }" (if "if") (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n      crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);\n    }" ({ "{") (expression_statement "crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);" (call_expression "crypt_argchk("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d)" (identifier "crypt_argchk") (argument_list "("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d)" (( "(") (string_literal ""st != NULL"" (" """) (string_content "st != NULL") (" """)) (, ",") (string_literal ""src/stream/chacha/chacha_crypt.c"" (" """) (string_content "src/stream/chacha/chacha_crypt.c") (" """)) (, ",") (number_literal "0x3d") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == (byte *)0x0) {\n                    \n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }" (if "if") (parenthesized_expression "(param_2 == (byte *)0x0)" (( "(") (binary_expression "param_2 == (byte *)0x0" (identifier "param_2") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n      crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);\n    }" ({ "{") (expression_statement "crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);" (call_expression "crypt_argchk("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e)" (identifier "crypt_argchk") (argument_list "("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e)" (( "(") (string_literal ""in != NULL"" (" """) (string_content "in != NULL") (" """)) (, ",") (string_literal ""src/stream/chacha/chacha_crypt.c"" (" """) (string_content "src/stream/chacha/chacha_crypt.c") (" """)) (, ",") (number_literal "0x3e") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_4 == (byte *)0x0) {\n                    \n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }" (if "if") (parenthesized_expression "(param_4 == (byte *)0x0)" (( "(") (binary_expression "param_4 == (byte *)0x0" (identifier "param_4") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n      crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);\n    }" ({ "{") (expression_statement "crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);" (call_expression "crypt_argchk("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f)" (identifier "crypt_argchk") (argument_list "("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f)" (( "(") (string_literal ""out != NULL"" (" """) (string_content "out != NULL") (" """)) (, ",") (string_literal ""src/stream/chacha/chacha_crypt.c"" (" """) (string_content "src/stream/chacha/chacha_crypt.c") (" """)) (, ",") (number_literal "0x3f") () ")"))) (; ";")) (} "}"))) (expression_statement "local_f0 = *(long *)(param_1 + 0x22);" (assignment_expression "local_f0 = *(long *)(param_1 + 0x22)" (identifier "local_f0") (= "=") (pointer_expression "*(long *)(param_1 + 0x22)" (* "*") (cast_expression "(long *)(param_1 + 0x22)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x22)" (( "(") (binary_expression "param_1 + 0x22" (identifier "param_1") (+ "+") (number_literal "0x22")) () ")"))))) (; ";")) (if_statement "if (local_f0 == 0) {\n                    \n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }" (if "if") (parenthesized_expression "(local_f0 == 0)" (( "(") (binary_expression "local_f0 == 0" (identifier "local_f0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);\n    }" ({ "{") (expression_statement "crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);" (call_expression "crypt_argchk("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40)" (identifier "crypt_argchk") (argument_list "("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40)" (( "(") (string_literal ""st->ivlen != 0"" (" """) (string_content "st->ivlen != 0") (" """)) (, ",") (string_literal ""src/stream/chacha/chacha_crypt.c"" (" """) (string_content "src/stream/chacha/chacha_crypt.c") (" """)) (, ",") (number_literal "0x40") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar14 = *(ulong *)(param_1 + 0x20);" (assignment_expression "uVar14 = *(ulong *)(param_1 + 0x20)" (identifier "uVar14") (= "=") (pointer_expression "*(ulong *)(param_1 + 0x20)" (* "*") (cast_expression "(ulong *)(param_1 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "local_100 = param_3;" (assignment_expression "local_100 = param_3" (identifier "local_100") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (uVar14 != 0) {\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }" (if "if") (parenthesized_expression "(uVar14 != 0)" (( "(") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar16 = param_3;\n      if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }\n      uVar23 = 0;\n      uVar17 = (uint)uVar16 & 7;\n      if ((uVar16 & 7) == 0) goto LAB_001899d0;\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n      uVar14 = *(long *)(param_1 + 0x20) - 1;\n      *(ulong *)(param_1 + 0x20) = uVar14;\n      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }\n      local_100 = param_3 - uVar16;\n      if (local_100 == 0) goto LAB_0018a411;\n      param_4 = param_4 + uVar16;\n      param_2 = param_2 + uVar16;\n      local_f0 = *(long *)(param_1 + 0x22);\n      param_3 = local_100;\n    }" ({ "{") (expression_statement "uVar16 = param_3;" (assignment_expression "uVar16 = param_3" (identifier "uVar16") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (uVar14 <= param_3) {\n        uVar16 = uVar14;\n      }" (if "if") (parenthesized_expression "(uVar14 <= param_3)" (( "(") (binary_expression "uVar14 <= param_3" (identifier "uVar14") (<= "<=") (identifier "param_3")) () ")")) (compound_statement "{\n        uVar16 = uVar14;\n      }" ({ "{") (expression_statement "uVar16 = uVar14;" (assignment_expression "uVar16 = uVar14" (identifier "uVar16") (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" (identifier "uVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar17 = (uint)uVar16 & 7;" (assignment_expression "uVar17 = (uint)uVar16 & 7" (identifier "uVar17") (= "=") (binary_expression "(uint)uVar16 & 7" (cast_expression "(uint)uVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar16")) (& "&") (number_literal "7"))) (; ";")) (if_statement "if ((uVar16 & 7) == 0) goto LAB_001899d0;" (if "if") (parenthesized_expression "((uVar16 & 7) == 0)" (( "(") (binary_expression "(uVar16 & 7) == 0" (parenthesized_expression "(uVar16 & 7)" (( "(") (binary_expression "uVar16 & 7" (identifier "uVar16") (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001899d0;" (goto "goto") (statement_identifier "LAB_001899d0") (; ";"))) (if_statement "if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }" (if "if") (parenthesized_expression "(uVar17 != 1)" (( "(") (binary_expression "uVar17 != 1" (identifier "uVar17") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        uVar23 = uVar23 + 1;\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }" ({ "{") (if_statement "if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }" (if "if") (parenthesized_expression "(uVar17 != 2)" (( "(") (binary_expression "uVar17 != 2" (identifier "uVar17") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }\n          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n          uVar23 = uVar23 + 1;\n          uVar14 = *(long *)(param_1 + 0x20) - 1;\n          *(ulong *)(param_1 + 0x20) = uVar14;\n        }" ({ "{") (if_statement "if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }" (if "if") (parenthesized_expression "(uVar17 != 3)" (( "(") (binary_expression "uVar17 != 3" (identifier "uVar17") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }\n            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n            uVar23 = uVar23 + 1;\n            uVar14 = *(long *)(param_1 + 0x20) - 1;\n            *(ulong *)(param_1 + 0x20) = uVar14;\n          }" ({ "{") (if_statement "if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }" (if "if") (parenthesized_expression "(uVar17 != 4)" (( "(") (binary_expression "uVar17 != 4" (identifier "uVar17") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }\n              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n              uVar23 = uVar23 + 1;\n              uVar14 = *(long *)(param_1 + 0x20) - 1;\n              *(ulong *)(param_1 + 0x20) = uVar14;\n            }" ({ "{") (if_statement "if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }" (if "if") (parenthesized_expression "(uVar17 != 5)" (( "(") (binary_expression "uVar17 != 5" (identifier "uVar17") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n                if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }\n                uVar23 = (ulong)(uVar17 != 6);\n                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n                uVar23 = uVar23 + 1;\n                uVar14 = *(long *)(param_1 + 0x20) - 1;\n                *(ulong *)(param_1 + 0x20) = uVar14;\n              }" ({ "{") (if_statement "if (uVar17 != 6) {\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }" (if "if") (parenthesized_expression "(uVar17 != 6)" (( "(") (binary_expression "uVar17 != 6" (identifier "uVar17") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;\n                  uVar14 = *(long *)(param_1 + 0x20) - 1;\n                  *(ulong *)(param_1 + 0x20) = uVar14;\n                }" ({ "{") (expression_statement "*param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;" (assignment_expression "*param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" (* "*") (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" (( "(") (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(0x80 - uVar14)" (( "(") (binary_expression "0x80 - uVar14" (number_literal "0x80") (- "-") (identifier "uVar14")) () ")"))) () ")")))) (^ "^") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" (identifier "uVar14") (= "=") (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (- "-") (number_literal "1"))) (; ";")) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" (* "*") (cast_expression "(ulong *)(param_1 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (expression_statement "uVar23 = (ulong)(uVar17 != 6);" (assignment_expression "uVar23 = (ulong)(uVar17 != 6)" (identifier "uVar23") (= "=") (call_expression "(ulong)(uVar17 != 6)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar17 != 6)" (( "(") (binary_expression "uVar17 != 6" (identifier "uVar17") (!= "!=") (number_literal "6")) () ")")))) (; ";")) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" (identifier "param_4") ([ "[") (identifier "uVar23") (] "]")) (= "=") (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" (* "*") (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" (( "(") (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(0x80 - uVar14)" (( "(") (binary_expression "0x80 - uVar14" (number_literal "0x80") (- "-") (identifier "uVar14")) () ")"))) () ")")))) (^ "^") (subscript_expression "param_2[uVar23]" (identifier "param_2") ([ "[") (identifier "uVar23") (] "]")))) (; ";")) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" (identifier "uVar23") (= "=") (binary_expression "uVar23 + 1" (identifier "uVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" (identifier "uVar14") (= "=") (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (- "-") (number_literal "1"))) (; ";")) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" (* "*") (cast_expression "(ulong *)(param_1 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" (identifier "param_4") ([ "[") (identifier "uVar23") (] "]")) (= "=") (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" (* "*") (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" (( "(") (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(0x80 - uVar14)" (( "(") (binary_expression "0x80 - uVar14" (number_literal "0x80") (- "-") (identifier "uVar14")) () ")"))) () ")")))) (^ "^") (subscript_expression "param_2[uVar23]" (identifier "param_2") ([ "[") (identifier "uVar23") (] "]")))) (; ";")) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" (identifier "uVar23") (= "=") (binary_expression "uVar23 + 1" (identifier "uVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" (identifier "uVar14") (= "=") (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (- "-") (number_literal "1"))) (; ";")) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" (* "*") (cast_expression "(ulong *)(param_1 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" (identifier "param_4") ([ "[") (identifier "uVar23") (] "]")) (= "=") (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" (* "*") (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" (( "(") (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(0x80 - uVar14)" (( "(") (binary_expression "0x80 - uVar14" (number_literal "0x80") (- "-") (identifier "uVar14")) () ")"))) () ")")))) (^ "^") (subscript_expression "param_2[uVar23]" (identifier "param_2") ([ "[") (identifier "uVar23") (] "]")))) (; ";")) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" (identifier "uVar23") (= "=") (binary_expression "uVar23 + 1" (identifier "uVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" (identifier "uVar14") (= "=") (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (- "-") (number_literal "1"))) (; ";")) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" (* "*") (cast_expression "(ulong *)(param_1 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" (identifier "param_4") ([ "[") (identifier "uVar23") (] "]")) (= "=") (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" (* "*") (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" (( "(") (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(0x80 - uVar14)" (( "(") (binary_expression "0x80 - uVar14" (number_literal "0x80") (- "-") (identifier "uVar14")) () ")"))) () ")")))) (^ "^") (subscript_expression "param_2[uVar23]" (identifier "param_2") ([ "[") (identifier "uVar23") (] "]")))) (; ";")) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" (identifier "uVar23") (= "=") (binary_expression "uVar23 + 1" (identifier "uVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" (identifier "uVar14") (= "=") (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (- "-") (number_literal "1"))) (; ";")) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" (* "*") (cast_expression "(ulong *)(param_1 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" (identifier "param_4") ([ "[") (identifier "uVar23") (] "]")) (= "=") (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" (* "*") (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" (( "(") (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(0x80 - uVar14)" (( "(") (binary_expression "0x80 - uVar14" (number_literal "0x80") (- "-") (identifier "uVar14")) () ")"))) () ")")))) (^ "^") (subscript_expression "param_2[uVar23]" (identifier "param_2") ([ "[") (identifier "uVar23") (] "]")))) (; ";")) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" (identifier "uVar23") (= "=") (binary_expression "uVar23 + 1" (identifier "uVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" (identifier "uVar14") (= "=") (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (- "-") (number_literal "1"))) (; ";")) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" (* "*") (cast_expression "(ulong *)(param_1 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" (identifier "param_4") ([ "[") (identifier "uVar23") (] "]")) (= "=") (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" (* "*") (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" (( "(") (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(0x80 - uVar14)" (( "(") (binary_expression "0x80 - uVar14" (number_literal "0x80") (- "-") (identifier "uVar14")) () ")"))) () ")")))) (^ "^") (subscript_expression "param_2[uVar23]" (identifier "param_2") ([ "[") (identifier "uVar23") (] "]")))) (; ";")) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" (identifier "uVar14") (= "=") (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (- "-") (number_literal "1"))) (; ";")) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" (* "*") (cast_expression "(ulong *)(param_1 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (for_statement "for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }" (for "for") (( "(") (assignment_expression "uVar23 = uVar23 + 1" (identifier "uVar23") (= "=") (binary_expression "uVar23 + 1" (identifier "uVar23") (+ "+") (number_literal "1"))) (; ";") (binary_expression "uVar16 != uVar23" (identifier "uVar16") (!= "!=") (identifier "uVar23")) (; ";") (assignment_expression "uVar23 = uVar23 + 8" (identifier "uVar23") (= "=") (binary_expression "uVar23 + 8" (identifier "uVar23") (+ "+") (number_literal "8"))) () ")") (compound_statement "{\nLAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];\n        lVar11 = *(long *)(param_1 + 0x20);\n        *(long *)(param_1 + 0x20) = lVar11 + -1;\n        param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];\n        uVar14 = *(long *)(param_1 + 0x20) - 1;\n        *(ulong *)(param_1 + 0x20) = uVar14;\n      }" ({ "{") (labeled_statement "LAB_001899d0:\n        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (statement_identifier "LAB_001899d0") (: ":") (expression_statement "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];" (assignment_expression "param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (subscript_expression "param_4[uVar23]" (identifier "param_4") ([ "[") (identifier "uVar23") (] "]")) (= "=") (binary_expression "*(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - uVar14))" (* "*") (cast_expression "(byte *)((long)param_1 + (0x80 - uVar14))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (0x80 - uVar14))" (( "(") (binary_expression "(long)param_1 + (0x80 - uVar14)" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(0x80 - uVar14)" (( "(") (binary_expression "0x80 - uVar14" (number_literal "0x80") (- "-") (identifier "uVar14")) () ")"))) () ")")))) (^ "^") (subscript_expression "param_2[uVar23]" (identifier "param_2") ([ "[") (identifier "uVar23") (] "]")))) (; ";"))) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];" (assignment_expression "param_4[uVar23 + 1] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1]" (subscript_expression "param_4[uVar23 + 1]" (identifier "param_4") ([ "[") (binary_expression "uVar23 + 1" (identifier "uVar23") (+ "+") (number_literal "1")) (] "]")) (= "=") (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" (* "*") (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" (( "(") (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(0x80 - (lVar11 + -1))" (( "(") (binary_expression "0x80 - (lVar11 + -1)" (number_literal "0x80") (- "-") (parenthesized_expression "(lVar11 + -1)" (( "(") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1")) () ")"))) () ")"))) () ")")))) (^ "^") (subscript_expression "param_2[uVar23 + 1]" (identifier "param_2") ([ "[") (binary_expression "uVar23 + 1" (identifier "uVar23") (+ "+") (number_literal "1")) (] "]")))) (; ";")) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];" (assignment_expression "param_4[uVar23 + 2] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2]" (subscript_expression "param_4[uVar23 + 2]" (identifier "param_4") ([ "[") (binary_expression "uVar23 + 2" (identifier "uVar23") (+ "+") (number_literal "2")) (] "]")) (= "=") (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" (* "*") (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" (( "(") (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(0x80 - (lVar11 + -1))" (( "(") (binary_expression "0x80 - (lVar11 + -1)" (number_literal "0x80") (- "-") (parenthesized_expression "(lVar11 + -1)" (( "(") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1")) () ")"))) () ")"))) () ")")))) (^ "^") (subscript_expression "param_2[uVar23 + 2]" (identifier "param_2") ([ "[") (binary_expression "uVar23 + 2" (identifier "uVar23") (+ "+") (number_literal "2")) (] "]")))) (; ";")) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];" (assignment_expression "param_4[uVar23 + 3] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3]" (subscript_expression "param_4[uVar23 + 3]" (identifier "param_4") ([ "[") (binary_expression "uVar23 + 3" (identifier "uVar23") (+ "+") (number_literal "3")) (] "]")) (= "=") (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" (* "*") (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" (( "(") (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(0x80 - (lVar11 + -1))" (( "(") (binary_expression "0x80 - (lVar11 + -1)" (number_literal "0x80") (- "-") (parenthesized_expression "(lVar11 + -1)" (( "(") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1")) () ")"))) () ")"))) () ")")))) (^ "^") (subscript_expression "param_2[uVar23 + 3]" (identifier "param_2") ([ "[") (binary_expression "uVar23 + 3" (identifier "uVar23") (+ "+") (number_literal "3")) (] "]")))) (; ";")) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];" (assignment_expression "param_4[uVar23 + 4] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4]" (subscript_expression "param_4[uVar23 + 4]" (identifier "param_4") ([ "[") (binary_expression "uVar23 + 4" (identifier "uVar23") (+ "+") (number_literal "4")) (] "]")) (= "=") (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" (* "*") (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" (( "(") (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(0x80 - (lVar11 + -1))" (( "(") (binary_expression "0x80 - (lVar11 + -1)" (number_literal "0x80") (- "-") (parenthesized_expression "(lVar11 + -1)" (( "(") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1")) () ")"))) () ")"))) () ")")))) (^ "^") (subscript_expression "param_2[uVar23 + 4]" (identifier "param_2") ([ "[") (binary_expression "uVar23 + 4" (identifier "uVar23") (+ "+") (number_literal "4")) (] "]")))) (; ";")) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];" (assignment_expression "param_4[uVar23 + 5] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5]" (subscript_expression "param_4[uVar23 + 5]" (identifier "param_4") ([ "[") (binary_expression "uVar23 + 5" (identifier "uVar23") (+ "+") (number_literal "5")) (] "]")) (= "=") (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" (* "*") (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" (( "(") (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(0x80 - (lVar11 + -1))" (( "(") (binary_expression "0x80 - (lVar11 + -1)" (number_literal "0x80") (- "-") (parenthesized_expression "(lVar11 + -1)" (( "(") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1")) () ")"))) () ")"))) () ")")))) (^ "^") (subscript_expression "param_2[uVar23 + 5]" (identifier "param_2") ([ "[") (binary_expression "uVar23 + 5" (identifier "uVar23") (+ "+") (number_literal "5")) (] "]")))) (; ";")) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];" (assignment_expression "param_4[uVar23 + 6] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6]" (subscript_expression "param_4[uVar23 + 6]" (identifier "param_4") ([ "[") (binary_expression "uVar23 + 6" (identifier "uVar23") (+ "+") (number_literal "6")) (] "]")) (= "=") (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" (* "*") (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" (( "(") (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(0x80 - (lVar11 + -1))" (( "(") (binary_expression "0x80 - (lVar11 + -1)" (number_literal "0x80") (- "-") (parenthesized_expression "(lVar11 + -1)" (( "(") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1")) () ")"))) () ")"))) () ")")))) (^ "^") (subscript_expression "param_2[uVar23 + 6]" (identifier "param_2") ([ "[") (binary_expression "uVar23 + 6" (identifier "uVar23") (+ "+") (number_literal "6")) (] "]")))) (; ";")) (expression_statement "lVar11 = *(long *)(param_1 + 0x20);" (assignment_expression "lVar11 = *(long *)(param_1 + 0x20)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(long *)(param_1 + 0x20) = lVar11 + -1;" (assignment_expression "*(long *)(param_1 + 0x20) = lVar11 + -1" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];" (assignment_expression "param_4[uVar23 + 7] =\n             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7]" (subscript_expression "param_4[uVar23 + 7]" (identifier "param_4") ([ "[") (binary_expression "uVar23 + 7" (identifier "uVar23") (+ "+") (number_literal "7")) (] "]")) (= "=") (binary_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7]" (pointer_expression "*(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" (* "*") (cast_expression "(byte *)((long)param_1 + (0x80 - (lVar11 + -1)))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + (0x80 - (lVar11 + -1)))" (( "(") (binary_expression "(long)param_1 + (0x80 - (lVar11 + -1))" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (parenthesized_expression "(0x80 - (lVar11 + -1))" (( "(") (binary_expression "0x80 - (lVar11 + -1)" (number_literal "0x80") (- "-") (parenthesized_expression "(lVar11 + -1)" (( "(") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1")) () ")"))) () ")"))) () ")")))) (^ "^") (subscript_expression "param_2[uVar23 + 7]" (identifier "param_2") ([ "[") (binary_expression "uVar23 + 7" (identifier "uVar23") (+ "+") (number_literal "7")) (] "]")))) (; ";")) (expression_statement "uVar14 = *(long *)(param_1 + 0x20) - 1;" (assignment_expression "uVar14 = *(long *)(param_1 + 0x20) - 1" (identifier "uVar14") (= "=") (binary_expression "*(long *)(param_1 + 0x20) - 1" (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (- "-") (number_literal "1"))) (; ";")) (expression_statement "*(ulong *)(param_1 + 0x20) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x20) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x20)" (* "*") (cast_expression "(ulong *)(param_1 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (expression_statement "local_100 = param_3 - uVar16;" (assignment_expression "local_100 = param_3 - uVar16" (identifier "local_100") (= "=") (binary_expression "param_3 - uVar16" (identifier "param_3") (- "-") (identifier "uVar16"))) (; ";")) (if_statement "if (local_100 == 0) goto LAB_0018a411;" (if "if") (parenthesized_expression "(local_100 == 0)" (( "(") (binary_expression "local_100 == 0" (identifier "local_100") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0018a411;" (goto "goto") (statement_identifier "LAB_0018a411") (; ";"))) (expression_statement "param_4 = param_4 + uVar16;" (assignment_expression "param_4 = param_4 + uVar16" (identifier "param_4") (= "=") (binary_expression "param_4 + uVar16" (identifier "param_4") (+ "+") (identifier "uVar16"))) (; ";")) (expression_statement "param_2 = param_2 + uVar16;" (assignment_expression "param_2 = param_2 + uVar16" (identifier "param_2") (= "=") (binary_expression "param_2 + uVar16" (identifier "param_2") (+ "+") (identifier "uVar16"))) (; ";")) (expression_statement "local_f0 = *(long *)(param_1 + 0x22);" (assignment_expression "local_f0 = *(long *)(param_1 + 0x22)" (identifier "local_f0") (= "=") (pointer_expression "*(long *)(param_1 + 0x22)" (* "*") (cast_expression "(long *)(param_1 + 0x22)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x22)" (( "(") (binary_expression "param_1 + 0x22" (identifier "param_1") (+ "+") (number_literal "0x22")) () ")"))))) (; ";")) (expression_statement "param_3 = local_100;" (assignment_expression "param_3 = local_100" (identifier "param_3") (= "=") (identifier "local_100")) (; ";")) (} "}"))) (do_statement "do {\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    } while( true );" (do "do") (compound_statement "{\n      pbVar24 = param_4 + (param_3 - local_100);\n      local_138 = param_1[0x24];\n      pbVar10 = param_2 + (param_3 - local_100);\n      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);\n      local_c8 = (uint)*(undefined8 *)param_1;\n      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);\n      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);\n      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);\n      local_b8 = (uint)*(undefined8 *)(param_1 + 4);\n      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);\n      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);\n      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);\n      local_a8 = (uint)*(undefined8 *)(param_1 + 8);\n      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);\n      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);\n      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);\n      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);\n      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);\n      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);\n      if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }\n      local_88 = local_c8 + *param_1;\n      iVar8 = local_88;\n      local_80 = param_1[2] + uStack_c0;\n      local_7c = param_1[3] + uStack_bc;\n      local_84 = param_1[1] + uStack_c4;\n      local_78 = param_1[4] + local_b8;\n      local_74 = param_1[5] + uStack_b4;\n      local_70 = param_1[6] + uStack_b0;\n      local_6c = param_1[7] + uStack_ac;\n      local_68 = param_1[8] + local_a8;\n      local_64 = param_1[9] + uStack_a4;\n      local_60 = param_1[10] + uStack_a0;\n      iVar21 = param_1[0xc] + 1;\n      local_5c = param_1[0xb] + uStack_9c;\n      local_58 = local_98 + param_1[0xc];\n      local_54 = uStack_94 + param_1[0xd];\n      local_50 = param_1[0xe] + uStack_90;\n      local_4c = uStack_8c + param_1[0xf];\n      if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }\n      if (local_100 < 0x41) goto LAB_0018a0ed;\n      lVar11 = 0;\n      do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);\n      local_100 = local_100 - 0x40;\n      local_f0 = *(long *)(param_1 + 0x22);\n    }" ({ "{") (expression_statement "pbVar24 = param_4 + (param_3 - local_100);" (assignment_expression "pbVar24 = param_4 + (param_3 - local_100)" (identifier "pbVar24") (= "=") (binary_expression "param_4 + (param_3 - local_100)" (identifier "param_4") (+ "+") (parenthesized_expression "(param_3 - local_100)" (( "(") (binary_expression "param_3 - local_100" (identifier "param_3") (- "-") (identifier "local_100")) () ")")))) (; ";")) (expression_statement "local_138 = param_1[0x24];" (assignment_expression "local_138 = param_1[0x24]" (identifier "local_138") (= "=") (subscript_expression "param_1[0x24]" (identifier "param_1") ([ "[") (number_literal "0x24") (] "]"))) (; ";")) (expression_statement "pbVar10 = param_2 + (param_3 - local_100);" (assignment_expression "pbVar10 = param_2 + (param_3 - local_100)" (identifier "pbVar10") (= "=") (binary_expression "param_2 + (param_3 - local_100)" (identifier "param_2") (+ "+") (parenthesized_expression "(param_3 - local_100)" (( "(") (binary_expression "param_3 - local_100" (identifier "param_3") (- "-") (identifier "local_100")) () ")")))) (; ";")) (expression_statement "uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);" (assignment_expression "uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20)" (identifier "uStack_c4") (= "=") (call_expression "(uint)((ulong)*(undefined8 *)param_1 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)*(undefined8 *)param_1 >> 0x20)" (( "(") (binary_expression "(ulong)*(undefined8 *)param_1 >> 0x20" (binary_expression "(ulong)*(undefined8 *)param_1" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(undefined8 *)param_1" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_c8 = (uint)*(undefined8 *)param_1;" (assignment_expression "local_c8 = (uint)*(undefined8 *)param_1" (identifier "local_c8") (= "=") (binary_expression "(uint)*(undefined8 *)param_1" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)param_1" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")))) (; ";")) (expression_statement "uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);" (assignment_expression "uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20)" (identifier "uStack_bc") (= "=") (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)*(undefined8 *)(param_1 + 2) >> 0x20)" (( "(") (binary_expression "(ulong)*(undefined8 *)(param_1 + 2) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(undefined8 *)(param_1 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);" (assignment_expression "uStack_c0 = (uint)*(undefined8 *)(param_1 + 2)" (identifier "uStack_c0") (= "=") (binary_expression "(uint)*(undefined8 *)(param_1 + 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)(param_1 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);" (assignment_expression "uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20)" (identifier "uStack_b4") (= "=") (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)*(undefined8 *)(param_1 + 4) >> 0x20)" (( "(") (binary_expression "(ulong)*(undefined8 *)(param_1 + 4) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(undefined8 *)(param_1 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_b8 = (uint)*(undefined8 *)(param_1 + 4);" (assignment_expression "local_b8 = (uint)*(undefined8 *)(param_1 + 4)" (identifier "local_b8") (= "=") (binary_expression "(uint)*(undefined8 *)(param_1 + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)(param_1 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);" (assignment_expression "uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20)" (identifier "uStack_ac") (= "=") (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)*(undefined8 *)(param_1 + 6) >> 0x20)" (( "(") (binary_expression "(ulong)*(undefined8 *)(param_1 + 6) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 6)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(undefined8 *)(param_1 + 6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 6)" (( "(") (binary_expression "param_1 + 6" (identifier "param_1") (+ "+") (number_literal "6")) () ")")))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);" (assignment_expression "uStack_b0 = (uint)*(undefined8 *)(param_1 + 6)" (identifier "uStack_b0") (= "=") (binary_expression "(uint)*(undefined8 *)(param_1 + 6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)(param_1 + 6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 6)" (( "(") (binary_expression "param_1 + 6" (identifier "param_1") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);" (assignment_expression "uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20)" (identifier "uStack_a4") (= "=") (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)*(undefined8 *)(param_1 + 8) >> 0x20)" (( "(") (binary_expression "(ulong)*(undefined8 *)(param_1 + 8) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 8)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(undefined8 *)(param_1 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_a8 = (uint)*(undefined8 *)(param_1 + 8);" (assignment_expression "local_a8 = (uint)*(undefined8 *)(param_1 + 8)" (identifier "local_a8") (= "=") (binary_expression "(uint)*(undefined8 *)(param_1 + 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)(param_1 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);" (assignment_expression "uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20)" (identifier "uStack_9c") (= "=") (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)*(undefined8 *)(param_1 + 10) >> 0x20)" (( "(") (binary_expression "(ulong)*(undefined8 *)(param_1 + 10) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 10)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(undefined8 *)(param_1 + 10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")")))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);" (assignment_expression "uStack_a0 = (uint)*(undefined8 *)(param_1 + 10)" (identifier "uStack_a0") (= "=") (binary_expression "(uint)*(undefined8 *)(param_1 + 10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)(param_1 + 10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (expression_statement "uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);" (assignment_expression "uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20)" (identifier "uStack_94") (= "=") (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20)" (( "(") (binary_expression "(ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 0xc)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(undefined8 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_98 = (uint)*(undefined8 *)(param_1 + 0xc);" (assignment_expression "local_98 = (uint)*(undefined8 *)(param_1 + 0xc)" (identifier "local_98") (= "=") (binary_expression "(uint)*(undefined8 *)(param_1 + 0xc)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);" (assignment_expression "uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20)" (identifier "uStack_8c") (= "=") (call_expression "(uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20)" (( "(") (binary_expression "(ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_1 + 0xe)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(undefined8 *)(param_1 + 0xe)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe)" (( "(") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) () ")")))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);" (assignment_expression "uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe)" (identifier "uStack_90") (= "=") (binary_expression "(uint)*(undefined8 *)(param_1 + 0xe)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)(param_1 + 0xe)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe)" (( "(") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) () ")"))))) (; ";")) (if_statement "if (0 < local_138) {\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }" (if "if") (parenthesized_expression "(0 < local_138)" (( "(") (binary_expression "0 < local_138" (number_literal "0") (< "<") (identifier "local_138")) () ")")) (compound_statement "{\n        local_118 = uStack_ac;\n        local_114 = uStack_a0;\n        local_11c = uStack_8c;\n        do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);\n      }" ({ "{") (expression_statement "local_118 = uStack_ac;" (assignment_expression "local_118 = uStack_ac" (identifier "local_118") (= "=") (identifier "uStack_ac")) (; ";")) (expression_statement "local_114 = uStack_a0;" (assignment_expression "local_114 = uStack_a0" (identifier "local_114") (= "=") (identifier "uStack_a0")) (; ";")) (expression_statement "local_11c = uStack_8c;" (assignment_expression "local_11c = uStack_8c" (identifier "local_11c") (= "=") (identifier "uStack_8c")) (; ";")) (do_statement "do {\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        } while (0 < local_138);" (do "do") (compound_statement "{\n          local_98 = local_98 ^ local_c8 + local_b8;\n          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;\n          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;\n          uVar17 = local_98 << 0x10 | local_98 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar12 = local_b8 ^ local_a8;\n          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;\n          local_c8 = local_c8 + local_b8 + uVar13;\n          uVar17 = uVar17 ^ local_c8;\n          uVar12 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uVar12;\n          uVar13 = uVar13 ^ local_a8;\n          uVar22 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uStack_b4 ^ uStack_a4;\n          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;\n          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;\n          uVar17 = uVar17 ^ uStack_c4;\n          uVar17 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar13 = uVar13 ^ uStack_a4;\n          uVar18 = uVar13 << 7 | uVar13 >> 0x19;\n          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;\n          local_114 = local_114 + uVar13;\n          uVar19 = uStack_b0 ^ local_114;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;\n          uVar13 = uVar13 ^ uStack_c0;\n          uVar13 = uVar13 << 8 | uVar13 >> 0x18;\n          local_114 = local_114 + uVar13;\n          local_c8 = local_c8 + uVar18;\n          uVar19 = uVar19 ^ local_114;\n          local_11c = local_11c ^ uStack_bc + local_118;\n          uVar20 = uVar19 << 7 | uVar19 >> 0x19;\n          uStack_c4 = uStack_c4 + uVar20;\n          uVar15 = local_11c << 0x10 | local_11c >> 0x10;\n          uStack_9c = uStack_9c + uVar15;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar19 = local_118 ^ uStack_9c;\n          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_bc = uStack_bc + local_118 + uVar19;\n          uVar15 = uVar15 ^ uStack_bc;\n          uVar15 = uVar15 << 8 | uVar15 >> 0x18;\n          uStack_9c = uStack_9c + uVar15;\n          uVar15 = uVar15 ^ local_c8;\n          uVar19 = uVar19 ^ uStack_9c;\n          uVar19 = uVar19 << 7 | uVar19 >> 0x19;\n          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;\n          local_114 = local_114 + uVar15;\n          uVar18 = uVar18 ^ local_114;\n          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;\n          local_c8 = local_c8 + uVar18;\n          uVar15 = uVar15 ^ local_c8;\n          local_11c = uVar15 << 8 | uVar15 >> 0x18;\n          local_114 = local_114 + local_11c;\n          uVar18 = uVar18 ^ local_114;\n          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;\n          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;\n          uStack_9c = uStack_9c + uVar12;\n          uVar20 = uVar20 ^ uStack_9c;\n          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;\n          uStack_c4 = uStack_c4 + uVar15;\n          uStack_c0 = uStack_c0 + uVar19;\n          uStack_bc = uStack_bc + uVar22;\n          uVar12 = uVar12 ^ uStack_c4;\n          uVar17 = uVar17 ^ uStack_c0;\n          uVar13 = uVar13 ^ uStack_bc;\n          local_138 = local_138 + -2;\n          local_98 = uVar12 << 8 | uVar12 >> 0x18;\n          uStack_9c = uStack_9c + local_98;\n          uVar15 = uVar15 ^ uStack_9c;\n          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;\n          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;\n          local_a8 = local_a8 + uVar17;\n          uVar19 = uVar19 ^ local_a8;\n          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;\n          uStack_c0 = uStack_c0 + uVar12;\n          uVar17 = uVar17 ^ uStack_c0;\n          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;\n          local_a8 = local_a8 + uStack_94;\n          uVar12 = uVar12 ^ local_a8;\n          local_118 = uVar12 << 7 | uVar12 >> 0x19;\n          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;\n          uStack_a4 = uStack_a4 + uVar17;\n          uVar22 = uVar22 ^ uStack_a4;\n          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;\n          uStack_bc = uStack_bc + uVar12;\n          uVar17 = uVar17 ^ uStack_bc;\n          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;\n          uStack_a4 = uStack_a4 + uStack_90;\n          uVar12 = uVar12 ^ uStack_a4;\n          local_b8 = uVar12 << 7 | uVar12 >> 0x19;\n          uStack_ac = local_118;\n          uStack_a0 = local_114;\n          uStack_8c = local_11c;\n        }" ({ "{") (expression_statement "local_98 = local_98 ^ local_c8 + local_b8;" (assignment_expression "local_98 = local_98 ^ local_c8 + local_b8" (identifier "local_98") (= "=") (binary_expression "local_98 ^ local_c8 + local_b8" (identifier "local_98") (^ "^") (binary_expression "local_c8 + local_b8" (identifier "local_c8") (+ "+") (identifier "local_b8")))) (; ";")) (expression_statement "uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;" (assignment_expression "uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4" (identifier "uStack_94") (= "=") (binary_expression "uStack_94 ^ uStack_c4 + uStack_b4" (identifier "uStack_94") (^ "^") (binary_expression "uStack_c4 + uStack_b4" (identifier "uStack_c4") (+ "+") (identifier "uStack_b4")))) (; ";")) (expression_statement "uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;" (assignment_expression "uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0" (identifier "uStack_90") (= "=") (binary_expression "uStack_90 ^ uStack_c0 + uStack_b0" (identifier "uStack_90") (^ "^") (binary_expression "uStack_c0 + uStack_b0" (identifier "uStack_c0") (+ "+") (identifier "uStack_b0")))) (; ";")) (expression_statement "uVar17 = local_98 << 0x10 | local_98 >> 0x10;" (assignment_expression "uVar17 = local_98 << 0x10 | local_98 >> 0x10" (identifier "uVar17") (= "=") (binary_expression "local_98 << 0x10 | local_98 >> 0x10" (binary_expression "local_98 << 0x10" (identifier "local_98") (<< "<<") (number_literal "0x10")) (| "|") (binary_expression "local_98 >> 0x10" (identifier "local_98") (>> ">>") (number_literal "0x10")))) (; ";")) (expression_statement "local_a8 = local_a8 + uVar17;" (assignment_expression "local_a8 = local_a8 + uVar17" (identifier "local_a8") (= "=") (binary_expression "local_a8 + uVar17" (identifier "local_a8") (+ "+") (identifier "uVar17"))) (; ";")) (expression_statement "uVar12 = local_b8 ^ local_a8;" (assignment_expression "uVar12 = local_b8 ^ local_a8" (identifier "uVar12") (= "=") (binary_expression "local_b8 ^ local_a8" (identifier "local_b8") (^ "^") (identifier "local_a8"))) (; ";")) (expression_statement "uVar13 = uVar12 << 0xc | uVar12 >> 0x14;" (assignment_expression "uVar13 = uVar12 << 0xc | uVar12 >> 0x14" (identifier "uVar13") (= "=") (binary_expression "uVar12 << 0xc | uVar12 >> 0x14" (binary_expression "uVar12 << 0xc" (identifier "uVar12") (<< "<<") (number_literal "0xc")) (| "|") (binary_expression "uVar12 >> 0x14" (identifier "uVar12") (>> ">>") (number_literal "0x14")))) (; ";")) (expression_statement "local_c8 = local_c8 + local_b8 + uVar13;" (assignment_expression "local_c8 = local_c8 + local_b8 + uVar13" (identifier "local_c8") (= "=") (binary_expression "local_c8 + local_b8 + uVar13" (binary_expression "local_c8 + local_b8" (identifier "local_c8") (+ "+") (identifier "local_b8")) (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "uVar17 = uVar17 ^ local_c8;" (assignment_expression "uVar17 = uVar17 ^ local_c8" (identifier "uVar17") (= "=") (binary_expression "uVar17 ^ local_c8" (identifier "uVar17") (^ "^") (identifier "local_c8"))) (; ";")) (expression_statement "uVar12 = uVar17 << 8 | uVar17 >> 0x18;" (assignment_expression "uVar12 = uVar17 << 8 | uVar17 >> 0x18" (identifier "uVar12") (= "=") (binary_expression "uVar17 << 8 | uVar17 >> 0x18" (binary_expression "uVar17 << 8" (identifier "uVar17") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar17 >> 0x18" (identifier "uVar17") (>> ">>") (number_literal "0x18")))) (; ";")) (expression_statement "local_a8 = local_a8 + uVar12;" (assignment_expression "local_a8 = local_a8 + uVar12" (identifier "local_a8") (= "=") (binary_expression "local_a8 + uVar12" (identifier "local_a8") (+ "+") (identifier "uVar12"))) (; ";")) (expression_statement "uVar13 = uVar13 ^ local_a8;" (assignment_expression "uVar13 = uVar13 ^ local_a8" (identifier "uVar13") (= "=") (binary_expression "uVar13 ^ local_a8" (identifier "uVar13") (^ "^") (identifier "local_a8"))) (; ";")) (expression_statement "uVar22 = uVar13 << 7 | uVar13 >> 0x19;" (assignment_expression "uVar22 = uVar13 << 7 | uVar13 >> 0x19" (identifier "uVar22") (= "=") (binary_expression "uVar13 << 7 | uVar13 >> 0x19" (binary_expression "uVar13 << 7" (identifier "uVar13") (<< "<<") (number_literal "7")) (| "|") (binary_expression "uVar13 >> 0x19" (identifier "uVar13") (>> ">>") (number_literal "0x19")))) (; ";")) (expression_statement "uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;" (assignment_expression "uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10" (identifier "uVar17") (= "=") (binary_expression "uStack_94 << 0x10 | uStack_94 >> 0x10" (binary_expression "uStack_94 << 0x10" (identifier "uStack_94") (<< "<<") (number_literal "0x10")) (| "|") (binary_expression "uStack_94 >> 0x10" (identifier "uStack_94") (>> ">>") (number_literal "0x10")))) (; ";")) (expression_statement "uStack_a4 = uStack_a4 + uVar17;" (assignment_expression "uStack_a4 = uStack_a4 + uVar17" (identifier "uStack_a4") (= "=") (binary_expression "uStack_a4 + uVar17" (identifier "uStack_a4") (+ "+") (identifier "uVar17"))) (; ";")) (expression_statement "uVar13 = uStack_b4 ^ uStack_a4;" (assignment_expression "uVar13 = uStack_b4 ^ uStack_a4" (identifier "uVar13") (= "=") (binary_expression "uStack_b4 ^ uStack_a4" (identifier "uStack_b4") (^ "^") (identifier "uStack_a4"))) (; ";")) (expression_statement "uVar13 = uVar13 << 0xc | uVar13 >> 0x14;" (assignment_expression "uVar13 = uVar13 << 0xc | uVar13 >> 0x14" (identifier "uVar13") (= "=") (binary_expression "uVar13 << 0xc | uVar13 >> 0x14" (binary_expression "uVar13 << 0xc" (identifier "uVar13") (<< "<<") (number_literal "0xc")) (| "|") (binary_expression "uVar13 >> 0x14" (identifier "uVar13") (>> ">>") (number_literal "0x14")))) (; ";")) (expression_statement "uStack_c4 = uStack_c4 + uStack_b4 + uVar13;" (assignment_expression "uStack_c4 = uStack_c4 + uStack_b4 + uVar13" (identifier "uStack_c4") (= "=") (binary_expression "uStack_c4 + uStack_b4 + uVar13" (binary_expression "uStack_c4 + uStack_b4" (identifier "uStack_c4") (+ "+") (identifier "uStack_b4")) (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "uVar17 = uVar17 ^ uStack_c4;" (assignment_expression "uVar17 = uVar17 ^ uStack_c4" (identifier "uVar17") (= "=") (binary_expression "uVar17 ^ uStack_c4" (identifier "uVar17") (^ "^") (identifier "uStack_c4"))) (; ";")) (expression_statement "uVar17 = uVar17 << 8 | uVar17 >> 0x18;" (assignment_expression "uVar17 = uVar17 << 8 | uVar17 >> 0x18" (identifier "uVar17") (= "=") (binary_expression "uVar17 << 8 | uVar17 >> 0x18" (binary_expression "uVar17 << 8" (identifier "uVar17") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar17 >> 0x18" (identifier "uVar17") (>> ">>") (number_literal "0x18")))) (; ";")) (expression_statement "uStack_a4 = uStack_a4 + uVar17;" (assignment_expression "uStack_a4 = uStack_a4 + uVar17" (identifier "uStack_a4") (= "=") (binary_expression "uStack_a4 + uVar17" (identifier "uStack_a4") (+ "+") (identifier "uVar17"))) (; ";")) (expression_statement "uVar13 = uVar13 ^ uStack_a4;" (assignment_expression "uVar13 = uVar13 ^ uStack_a4" (identifier "uVar13") (= "=") (binary_expression "uVar13 ^ uStack_a4" (identifier "uVar13") (^ "^") (identifier "uStack_a4"))) (; ";")) (expression_statement "uVar18 = uVar13 << 7 | uVar13 >> 0x19;" (assignment_expression "uVar18 = uVar13 << 7 | uVar13 >> 0x19" (identifier "uVar18") (= "=") (binary_expression "uVar13 << 7 | uVar13 >> 0x19" (binary_expression "uVar13 << 7" (identifier "uVar13") (<< "<<") (number_literal "7")) (| "|") (binary_expression "uVar13 >> 0x19" (identifier "uVar13") (>> ">>") (number_literal "0x19")))) (; ";")) (expression_statement "uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;" (assignment_expression "uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10" (identifier "uVar13") (= "=") (binary_expression "uStack_90 << 0x10 | uStack_90 >> 0x10" (binary_expression "uStack_90 << 0x10" (identifier "uStack_90") (<< "<<") (number_literal "0x10")) (| "|") (binary_expression "uStack_90 >> 0x10" (identifier "uStack_90") (>> ">>") (number_literal "0x10")))) (; ";")) (expression_statement "local_114 = local_114 + uVar13;" (assignment_expression "local_114 = local_114 + uVar13" (identifier "local_114") (= "=") (binary_expression "local_114 + uVar13" (identifier "local_114") (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "uVar19 = uStack_b0 ^ local_114;" (assignment_expression "uVar19 = uStack_b0 ^ local_114" (identifier "uVar19") (= "=") (binary_expression "uStack_b0 ^ local_114" (identifier "uStack_b0") (^ "^") (identifier "local_114"))) (; ";")) (expression_statement "uVar19 = uVar19 << 0xc | uVar19 >> 0x14;" (assignment_expression "uVar19 = uVar19 << 0xc | uVar19 >> 0x14" (identifier "uVar19") (= "=") (binary_expression "uVar19 << 0xc | uVar19 >> 0x14" (binary_expression "uVar19 << 0xc" (identifier "uVar19") (<< "<<") (number_literal "0xc")) (| "|") (binary_expression "uVar19 >> 0x14" (identifier "uVar19") (>> ">>") (number_literal "0x14")))) (; ";")) (expression_statement "uStack_c0 = uStack_c0 + uStack_b0 + uVar19;" (assignment_expression "uStack_c0 = uStack_c0 + uStack_b0 + uVar19" (identifier "uStack_c0") (= "=") (binary_expression "uStack_c0 + uStack_b0 + uVar19" (binary_expression "uStack_c0 + uStack_b0" (identifier "uStack_c0") (+ "+") (identifier "uStack_b0")) (+ "+") (identifier "uVar19"))) (; ";")) (expression_statement "uVar13 = uVar13 ^ uStack_c0;" (assignment_expression "uVar13 = uVar13 ^ uStack_c0" (identifier "uVar13") (= "=") (binary_expression "uVar13 ^ uStack_c0" (identifier "uVar13") (^ "^") (identifier "uStack_c0"))) (; ";")) (expression_statement "uVar13 = uVar13 << 8 | uVar13 >> 0x18;" (assignment_expression "uVar13 = uVar13 << 8 | uVar13 >> 0x18" (identifier "uVar13") (= "=") (binary_expression "uVar13 << 8 | uVar13 >> 0x18" (binary_expression "uVar13 << 8" (identifier "uVar13") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar13 >> 0x18" (identifier "uVar13") (>> ">>") (number_literal "0x18")))) (; ";")) (expression_statement "local_114 = local_114 + uVar13;" (assignment_expression "local_114 = local_114 + uVar13" (identifier "local_114") (= "=") (binary_expression "local_114 + uVar13" (identifier "local_114") (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "local_c8 = local_c8 + uVar18;" (assignment_expression "local_c8 = local_c8 + uVar18" (identifier "local_c8") (= "=") (binary_expression "local_c8 + uVar18" (identifier "local_c8") (+ "+") (identifier "uVar18"))) (; ";")) (expression_statement "uVar19 = uVar19 ^ local_114;" (assignment_expression "uVar19 = uVar19 ^ local_114" (identifier "uVar19") (= "=") (binary_expression "uVar19 ^ local_114" (identifier "uVar19") (^ "^") (identifier "local_114"))) (; ";")) (expression_statement "local_11c = local_11c ^ uStack_bc + local_118;" (assignment_expression "local_11c = local_11c ^ uStack_bc + local_118" (identifier "local_11c") (= "=") (binary_expression "local_11c ^ uStack_bc + local_118" (identifier "local_11c") (^ "^") (binary_expression "uStack_bc + local_118" (identifier "uStack_bc") (+ "+") (identifier "local_118")))) (; ";")) (expression_statement "uVar20 = uVar19 << 7 | uVar19 >> 0x19;" (assignment_expression "uVar20 = uVar19 << 7 | uVar19 >> 0x19" (identifier "uVar20") (= "=") (binary_expression "uVar19 << 7 | uVar19 >> 0x19" (binary_expression "uVar19 << 7" (identifier "uVar19") (<< "<<") (number_literal "7")) (| "|") (binary_expression "uVar19 >> 0x19" (identifier "uVar19") (>> ">>") (number_literal "0x19")))) (; ";")) (expression_statement "uStack_c4 = uStack_c4 + uVar20;" (assignment_expression "uStack_c4 = uStack_c4 + uVar20" (identifier "uStack_c4") (= "=") (binary_expression "uStack_c4 + uVar20" (identifier "uStack_c4") (+ "+") (identifier "uVar20"))) (; ";")) (expression_statement "uVar15 = local_11c << 0x10 | local_11c >> 0x10;" (assignment_expression "uVar15 = local_11c << 0x10 | local_11c >> 0x10" (identifier "uVar15") (= "=") (binary_expression "local_11c << 0x10 | local_11c >> 0x10" (binary_expression "local_11c << 0x10" (identifier "local_11c") (<< "<<") (number_literal "0x10")) (| "|") (binary_expression "local_11c >> 0x10" (identifier "local_11c") (>> ">>") (number_literal "0x10")))) (; ";")) (expression_statement "uStack_9c = uStack_9c + uVar15;" (assignment_expression "uStack_9c = uStack_9c + uVar15" (identifier "uStack_9c") (= "=") (binary_expression "uStack_9c + uVar15" (identifier "uStack_9c") (+ "+") (identifier "uVar15"))) (; ";")) (expression_statement "uVar12 = uVar12 ^ uStack_c4;" (assignment_expression "uVar12 = uVar12 ^ uStack_c4" (identifier "uVar12") (= "=") (binary_expression "uVar12 ^ uStack_c4" (identifier "uVar12") (^ "^") (identifier "uStack_c4"))) (; ";")) (expression_statement "uVar19 = local_118 ^ uStack_9c;" (assignment_expression "uVar19 = local_118 ^ uStack_9c" (identifier "uVar19") (= "=") (binary_expression "local_118 ^ uStack_9c" (identifier "local_118") (^ "^") (identifier "uStack_9c"))) (; ";")) (expression_statement "uVar19 = uVar19 << 0xc | uVar19 >> 0x14;" (assignment_expression "uVar19 = uVar19 << 0xc | uVar19 >> 0x14" (identifier "uVar19") (= "=") (binary_expression "uVar19 << 0xc | uVar19 >> 0x14" (binary_expression "uVar19 << 0xc" (identifier "uVar19") (<< "<<") (number_literal "0xc")) (| "|") (binary_expression "uVar19 >> 0x14" (identifier "uVar19") (>> ">>") (number_literal "0x14")))) (; ";")) (expression_statement "uStack_bc = uStack_bc + local_118 + uVar19;" (assignment_expression "uStack_bc = uStack_bc + local_118 + uVar19" (identifier "uStack_bc") (= "=") (binary_expression "uStack_bc + local_118 + uVar19" (binary_expression "uStack_bc + local_118" (identifier "uStack_bc") (+ "+") (identifier "local_118")) (+ "+") (identifier "uVar19"))) (; ";")) (expression_statement "uVar15 = uVar15 ^ uStack_bc;" (assignment_expression "uVar15 = uVar15 ^ uStack_bc" (identifier "uVar15") (= "=") (binary_expression "uVar15 ^ uStack_bc" (identifier "uVar15") (^ "^") (identifier "uStack_bc"))) (; ";")) (expression_statement "uVar15 = uVar15 << 8 | uVar15 >> 0x18;" (assignment_expression "uVar15 = uVar15 << 8 | uVar15 >> 0x18" (identifier "uVar15") (= "=") (binary_expression "uVar15 << 8 | uVar15 >> 0x18" (binary_expression "uVar15 << 8" (identifier "uVar15") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar15 >> 0x18" (identifier "uVar15") (>> ">>") (number_literal "0x18")))) (; ";")) (expression_statement "uStack_9c = uStack_9c + uVar15;" (assignment_expression "uStack_9c = uStack_9c + uVar15" (identifier "uStack_9c") (= "=") (binary_expression "uStack_9c + uVar15" (identifier "uStack_9c") (+ "+") (identifier "uVar15"))) (; ";")) (expression_statement "uVar15 = uVar15 ^ local_c8;" (assignment_expression "uVar15 = uVar15 ^ local_c8" (identifier "uVar15") (= "=") (binary_expression "uVar15 ^ local_c8" (identifier "uVar15") (^ "^") (identifier "local_c8"))) (; ";")) (expression_statement "uVar19 = uVar19 ^ uStack_9c;" (assignment_expression "uVar19 = uVar19 ^ uStack_9c" (identifier "uVar19") (= "=") (binary_expression "uVar19 ^ uStack_9c" (identifier "uVar19") (^ "^") (identifier "uStack_9c"))) (; ";")) (expression_statement "uVar19 = uVar19 << 7 | uVar19 >> 0x19;" (assignment_expression "uVar19 = uVar19 << 7 | uVar19 >> 0x19" (identifier "uVar19") (= "=") (binary_expression "uVar19 << 7 | uVar19 >> 0x19" (binary_expression "uVar19 << 7" (identifier "uVar19") (<< "<<") (number_literal "7")) (| "|") (binary_expression "uVar19 >> 0x19" (identifier "uVar19") (>> ">>") (number_literal "0x19")))) (; ";")) (expression_statement "uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;" (assignment_expression "uVar15 = uVar15 << 0x10 | uVar15 >> 0x10" (identifier "uVar15") (= "=") (binary_expression "uVar15 << 0x10 | uVar15 >> 0x10" (binary_expression "uVar15 << 0x10" (identifier "uVar15") (<< "<<") (number_literal "0x10")) (| "|") (binary_expression "uVar15 >> 0x10" (identifier "uVar15") (>> ">>") (number_literal "0x10")))) (; ";")) (expression_statement "local_114 = local_114 + uVar15;" (assignment_expression "local_114 = local_114 + uVar15" (identifier "local_114") (= "=") (binary_expression "local_114 + uVar15" (identifier "local_114") (+ "+") (identifier "uVar15"))) (; ";")) (expression_statement "uVar18 = uVar18 ^ local_114;" (assignment_expression "uVar18 = uVar18 ^ local_114" (identifier "uVar18") (= "=") (binary_expression "uVar18 ^ local_114" (identifier "uVar18") (^ "^") (identifier "local_114"))) (; ";")) (expression_statement "uVar18 = uVar18 << 0xc | uVar18 >> 0x14;" (assignment_expression "uVar18 = uVar18 << 0xc | uVar18 >> 0x14" (identifier "uVar18") (= "=") (binary_expression "uVar18 << 0xc | uVar18 >> 0x14" (binary_expression "uVar18 << 0xc" (identifier "uVar18") (<< "<<") (number_literal "0xc")) (| "|") (binary_expression "uVar18 >> 0x14" (identifier "uVar18") (>> ">>") (number_literal "0x14")))) (; ";")) (expression_statement "local_c8 = local_c8 + uVar18;" (assignment_expression "local_c8 = local_c8 + uVar18" (identifier "local_c8") (= "=") (binary_expression "local_c8 + uVar18" (identifier "local_c8") (+ "+") (identifier "uVar18"))) (; ";")) (expression_statement "uVar15 = uVar15 ^ local_c8;" (assignment_expression "uVar15 = uVar15 ^ local_c8" (identifier "uVar15") (= "=") (binary_expression "uVar15 ^ local_c8" (identifier "uVar15") (^ "^") (identifier "local_c8"))) (; ";")) (expression_statement "local_11c = uVar15 << 8 | uVar15 >> 0x18;" (assignment_expression "local_11c = uVar15 << 8 | uVar15 >> 0x18" (identifier "local_11c") (= "=") (binary_expression "uVar15 << 8 | uVar15 >> 0x18" (binary_expression "uVar15 << 8" (identifier "uVar15") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar15 >> 0x18" (identifier "uVar15") (>> ">>") (number_literal "0x18")))) (; ";")) (expression_statement "local_114 = local_114 + local_11c;" (assignment_expression "local_114 = local_114 + local_11c" (identifier "local_114") (= "=") (binary_expression "local_114 + local_11c" (identifier "local_114") (+ "+") (identifier "local_11c"))) (; ";")) (expression_statement "uVar18 = uVar18 ^ local_114;" (assignment_expression "uVar18 = uVar18 ^ local_114" (identifier "uVar18") (= "=") (binary_expression "uVar18 ^ local_114" (identifier "uVar18") (^ "^") (identifier "local_114"))) (; ";")) (expression_statement "uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;" (assignment_expression "uStack_b4 = uVar18 << 7 | uVar18 >> 0x19" (identifier "uStack_b4") (= "=") (binary_expression "uVar18 << 7 | uVar18 >> 0x19" (binary_expression "uVar18 << 7" (identifier "uVar18") (<< "<<") (number_literal "7")) (| "|") (binary_expression "uVar18 >> 0x19" (identifier "uVar18") (>> ">>") (number_literal "0x19")))) (; ";")) (expression_statement "uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;" (assignment_expression "uVar12 = uVar12 << 0x10 | uVar12 >> 0x10" (identifier "uVar12") (= "=") (binary_expression "uVar12 << 0x10 | uVar12 >> 0x10" (binary_expression "uVar12 << 0x10" (identifier "uVar12") (<< "<<") (number_literal "0x10")) (| "|") (binary_expression "uVar12 >> 0x10" (identifier "uVar12") (>> ">>") (number_literal "0x10")))) (; ";")) (expression_statement "uStack_9c = uStack_9c + uVar12;" (assignment_expression "uStack_9c = uStack_9c + uVar12" (identifier "uStack_9c") (= "=") (binary_expression "uStack_9c + uVar12" (identifier "uStack_9c") (+ "+") (identifier "uVar12"))) (; ";")) (expression_statement "uVar20 = uVar20 ^ uStack_9c;" (assignment_expression "uVar20 = uVar20 ^ uStack_9c" (identifier "uVar20") (= "=") (binary_expression "uVar20 ^ uStack_9c" (identifier "uVar20") (^ "^") (identifier "uStack_9c"))) (; ";")) (expression_statement "uVar15 = uVar20 << 0xc | uVar20 >> 0x14;" (assignment_expression "uVar15 = uVar20 << 0xc | uVar20 >> 0x14" (identifier "uVar15") (= "=") (binary_expression "uVar20 << 0xc | uVar20 >> 0x14" (binary_expression "uVar20 << 0xc" (identifier "uVar20") (<< "<<") (number_literal "0xc")) (| "|") (binary_expression "uVar20 >> 0x14" (identifier "uVar20") (>> ">>") (number_literal "0x14")))) (; ";")) (expression_statement "uStack_c4 = uStack_c4 + uVar15;" (assignment_expression "uStack_c4 = uStack_c4 + uVar15" (identifier "uStack_c4") (= "=") (binary_expression "uStack_c4 + uVar15" (identifier "uStack_c4") (+ "+") (identifier "uVar15"))) (; ";")) (expression_statement "uStack_c0 = uStack_c0 + uVar19;" (assignment_expression "uStack_c0 = uStack_c0 + uVar19" (identifier "uStack_c0") (= "=") (binary_expression "uStack_c0 + uVar19" (identifier "uStack_c0") (+ "+") (identifier "uVar19"))) (; ";")) (expression_statement "uStack_bc = uStack_bc + uVar22;" (assignment_expression "uStack_bc = uStack_bc + uVar22" (identifier "uStack_bc") (= "=") (binary_expression "uStack_bc + uVar22" (identifier "uStack_bc") (+ "+") (identifier "uVar22"))) (; ";")) (expression_statement "uVar12 = uVar12 ^ uStack_c4;" (assignment_expression "uVar12 = uVar12 ^ uStack_c4" (identifier "uVar12") (= "=") (binary_expression "uVar12 ^ uStack_c4" (identifier "uVar12") (^ "^") (identifier "uStack_c4"))) (; ";")) (expression_statement "uVar17 = uVar17 ^ uStack_c0;" (assignment_expression "uVar17 = uVar17 ^ uStack_c0" (identifier "uVar17") (= "=") (binary_expression "uVar17 ^ uStack_c0" (identifier "uVar17") (^ "^") (identifier "uStack_c0"))) (; ";")) (expression_statement "uVar13 = uVar13 ^ uStack_bc;" (assignment_expression "uVar13 = uVar13 ^ uStack_bc" (identifier "uVar13") (= "=") (binary_expression "uVar13 ^ uStack_bc" (identifier "uVar13") (^ "^") (identifier "uStack_bc"))) (; ";")) (expression_statement "local_138 = local_138 + -2;" (assignment_expression "local_138 = local_138 + -2" (identifier "local_138") (= "=") (binary_expression "local_138 + -2" (identifier "local_138") (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "local_98 = uVar12 << 8 | uVar12 >> 0x18;" (assignment_expression "local_98 = uVar12 << 8 | uVar12 >> 0x18" (identifier "local_98") (= "=") (binary_expression "uVar12 << 8 | uVar12 >> 0x18" (binary_expression "uVar12 << 8" (identifier "uVar12") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")))) (; ";")) (expression_statement "uStack_9c = uStack_9c + local_98;" (assignment_expression "uStack_9c = uStack_9c + local_98" (identifier "uStack_9c") (= "=") (binary_expression "uStack_9c + local_98" (identifier "uStack_9c") (+ "+") (identifier "local_98"))) (; ";")) (expression_statement "uVar15 = uVar15 ^ uStack_9c;" (assignment_expression "uVar15 = uVar15 ^ uStack_9c" (identifier "uVar15") (= "=") (binary_expression "uVar15 ^ uStack_9c" (identifier "uVar15") (^ "^") (identifier "uStack_9c"))) (; ";")) (expression_statement "uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;" (assignment_expression "uStack_b0 = uVar15 << 7 | uVar15 >> 0x19" (identifier "uStack_b0") (= "=") (binary_expression "uVar15 << 7 | uVar15 >> 0x19" (binary_expression "uVar15 << 7" (identifier "uVar15") (<< "<<") (number_literal "7")) (| "|") (binary_expression "uVar15 >> 0x19" (identifier "uVar15") (>> ">>") (number_literal "0x19")))) (; ";")) (expression_statement "uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;" (assignment_expression "uVar17 = uVar17 << 0x10 | uVar17 >> 0x10" (identifier "uVar17") (= "=") (binary_expression "uVar17 << 0x10 | uVar17 >> 0x10" (binary_expression "uVar17 << 0x10" (identifier "uVar17") (<< "<<") (number_literal "0x10")) (| "|") (binary_expression "uVar17 >> 0x10" (identifier "uVar17") (>> ">>") (number_literal "0x10")))) (; ";")) (expression_statement "local_a8 = local_a8 + uVar17;" (assignment_expression "local_a8 = local_a8 + uVar17" (identifier "local_a8") (= "=") (binary_expression "local_a8 + uVar17" (identifier "local_a8") (+ "+") (identifier "uVar17"))) (; ";")) (expression_statement "uVar19 = uVar19 ^ local_a8;" (assignment_expression "uVar19 = uVar19 ^ local_a8" (identifier "uVar19") (= "=") (binary_expression "uVar19 ^ local_a8" (identifier "uVar19") (^ "^") (identifier "local_a8"))) (; ";")) (expression_statement "uVar12 = uVar19 << 0xc | uVar19 >> 0x14;" (assignment_expression "uVar12 = uVar19 << 0xc | uVar19 >> 0x14" (identifier "uVar12") (= "=") (binary_expression "uVar19 << 0xc | uVar19 >> 0x14" (binary_expression "uVar19 << 0xc" (identifier "uVar19") (<< "<<") (number_literal "0xc")) (| "|") (binary_expression "uVar19 >> 0x14" (identifier "uVar19") (>> ">>") (number_literal "0x14")))) (; ";")) (expression_statement "uStack_c0 = uStack_c0 + uVar12;" (assignment_expression "uStack_c0 = uStack_c0 + uVar12" (identifier "uStack_c0") (= "=") (binary_expression "uStack_c0 + uVar12" (identifier "uStack_c0") (+ "+") (identifier "uVar12"))) (; ";")) (expression_statement "uVar17 = uVar17 ^ uStack_c0;" (assignment_expression "uVar17 = uVar17 ^ uStack_c0" (identifier "uVar17") (= "=") (binary_expression "uVar17 ^ uStack_c0" (identifier "uVar17") (^ "^") (identifier "uStack_c0"))) (; ";")) (expression_statement "uStack_94 = uVar17 << 8 | uVar17 >> 0x18;" (assignment_expression "uStack_94 = uVar17 << 8 | uVar17 >> 0x18" (identifier "uStack_94") (= "=") (binary_expression "uVar17 << 8 | uVar17 >> 0x18" (binary_expression "uVar17 << 8" (identifier "uVar17") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar17 >> 0x18" (identifier "uVar17") (>> ">>") (number_literal "0x18")))) (; ";")) (expression_statement "local_a8 = local_a8 + uStack_94;" (assignment_expression "local_a8 = local_a8 + uStack_94" (identifier "local_a8") (= "=") (binary_expression "local_a8 + uStack_94" (identifier "local_a8") (+ "+") (identifier "uStack_94"))) (; ";")) (expression_statement "uVar12 = uVar12 ^ local_a8;" (assignment_expression "uVar12 = uVar12 ^ local_a8" (identifier "uVar12") (= "=") (binary_expression "uVar12 ^ local_a8" (identifier "uVar12") (^ "^") (identifier "local_a8"))) (; ";")) (expression_statement "local_118 = uVar12 << 7 | uVar12 >> 0x19;" (assignment_expression "local_118 = uVar12 << 7 | uVar12 >> 0x19" (identifier "local_118") (= "=") (binary_expression "uVar12 << 7 | uVar12 >> 0x19" (binary_expression "uVar12 << 7" (identifier "uVar12") (<< "<<") (number_literal "7")) (| "|") (binary_expression "uVar12 >> 0x19" (identifier "uVar12") (>> ">>") (number_literal "0x19")))) (; ";")) (expression_statement "uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;" (assignment_expression "uVar17 = uVar13 << 0x10 | uVar13 >> 0x10" (identifier "uVar17") (= "=") (binary_expression "uVar13 << 0x10 | uVar13 >> 0x10" (binary_expression "uVar13 << 0x10" (identifier "uVar13") (<< "<<") (number_literal "0x10")) (| "|") (binary_expression "uVar13 >> 0x10" (identifier "uVar13") (>> ">>") (number_literal "0x10")))) (; ";")) (expression_statement "uStack_a4 = uStack_a4 + uVar17;" (assignment_expression "uStack_a4 = uStack_a4 + uVar17" (identifier "uStack_a4") (= "=") (binary_expression "uStack_a4 + uVar17" (identifier "uStack_a4") (+ "+") (identifier "uVar17"))) (; ";")) (expression_statement "uVar22 = uVar22 ^ uStack_a4;" (assignment_expression "uVar22 = uVar22 ^ uStack_a4" (identifier "uVar22") (= "=") (binary_expression "uVar22 ^ uStack_a4" (identifier "uVar22") (^ "^") (identifier "uStack_a4"))) (; ";")) (expression_statement "uVar12 = uVar22 << 0xc | uVar22 >> 0x14;" (assignment_expression "uVar12 = uVar22 << 0xc | uVar22 >> 0x14" (identifier "uVar12") (= "=") (binary_expression "uVar22 << 0xc | uVar22 >> 0x14" (binary_expression "uVar22 << 0xc" (identifier "uVar22") (<< "<<") (number_literal "0xc")) (| "|") (binary_expression "uVar22 >> 0x14" (identifier "uVar22") (>> ">>") (number_literal "0x14")))) (; ";")) (expression_statement "uStack_bc = uStack_bc + uVar12;" (assignment_expression "uStack_bc = uStack_bc + uVar12" (identifier "uStack_bc") (= "=") (binary_expression "uStack_bc + uVar12" (identifier "uStack_bc") (+ "+") (identifier "uVar12"))) (; ";")) (expression_statement "uVar17 = uVar17 ^ uStack_bc;" (assignment_expression "uVar17 = uVar17 ^ uStack_bc" (identifier "uVar17") (= "=") (binary_expression "uVar17 ^ uStack_bc" (identifier "uVar17") (^ "^") (identifier "uStack_bc"))) (; ";")) (expression_statement "uStack_90 = uVar17 << 8 | uVar17 >> 0x18;" (assignment_expression "uStack_90 = uVar17 << 8 | uVar17 >> 0x18" (identifier "uStack_90") (= "=") (binary_expression "uVar17 << 8 | uVar17 >> 0x18" (binary_expression "uVar17 << 8" (identifier "uVar17") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar17 >> 0x18" (identifier "uVar17") (>> ">>") (number_literal "0x18")))) (; ";")) (expression_statement "uStack_a4 = uStack_a4 + uStack_90;" (assignment_expression "uStack_a4 = uStack_a4 + uStack_90" (identifier "uStack_a4") (= "=") (binary_expression "uStack_a4 + uStack_90" (identifier "uStack_a4") (+ "+") (identifier "uStack_90"))) (; ";")) (expression_statement "uVar12 = uVar12 ^ uStack_a4;" (assignment_expression "uVar12 = uVar12 ^ uStack_a4" (identifier "uVar12") (= "=") (binary_expression "uVar12 ^ uStack_a4" (identifier "uVar12") (^ "^") (identifier "uStack_a4"))) (; ";")) (expression_statement "local_b8 = uVar12 << 7 | uVar12 >> 0x19;" (assignment_expression "local_b8 = uVar12 << 7 | uVar12 >> 0x19" (identifier "local_b8") (= "=") (binary_expression "uVar12 << 7 | uVar12 >> 0x19" (binary_expression "uVar12 << 7" (identifier "uVar12") (<< "<<") (number_literal "7")) (| "|") (binary_expression "uVar12 >> 0x19" (identifier "uVar12") (>> ">>") (number_literal "0x19")))) (; ";")) (expression_statement "uStack_ac = local_118;" (assignment_expression "uStack_ac = local_118" (identifier "uStack_ac") (= "=") (identifier "local_118")) (; ";")) (expression_statement "uStack_a0 = local_114;" (assignment_expression "uStack_a0 = local_114" (identifier "uStack_a0") (= "=") (identifier "local_114")) (; ";")) (expression_statement "uStack_8c = local_11c;" (assignment_expression "uStack_8c = local_11c" (identifier "uStack_8c") (= "=") (identifier "local_11c")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < local_138)" (( "(") (binary_expression "0 < local_138" (number_literal "0") (< "<") (identifier "local_138")) () ")")) (; ";")) (} "}"))) (expression_statement "local_88 = local_c8 + *param_1;" (assignment_expression "local_88 = local_c8 + *param_1" (identifier "local_88") (= "=") (binary_expression "local_c8 + *param_1" (identifier "local_c8") (+ "+") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "iVar8 = local_88;" (assignment_expression "iVar8 = local_88" (identifier "iVar8") (= "=") (identifier "local_88")) (; ";")) (expression_statement "local_80 = param_1[2] + uStack_c0;" (assignment_expression "local_80 = param_1[2] + uStack_c0" (identifier "local_80") (= "=") (binary_expression "param_1[2] + uStack_c0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (identifier "uStack_c0"))) (; ";")) (expression_statement "local_7c = param_1[3] + uStack_bc;" (assignment_expression "local_7c = param_1[3] + uStack_bc" (identifier "local_7c") (= "=") (binary_expression "param_1[3] + uStack_bc" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (+ "+") (identifier "uStack_bc"))) (; ";")) (expression_statement "local_84 = param_1[1] + uStack_c4;" (assignment_expression "local_84 = param_1[1] + uStack_c4" (identifier "local_84") (= "=") (binary_expression "param_1[1] + uStack_c4" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "uStack_c4"))) (; ";")) (expression_statement "local_78 = param_1[4] + local_b8;" (assignment_expression "local_78 = param_1[4] + local_b8" (identifier "local_78") (= "=") (binary_expression "param_1[4] + local_b8" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (+ "+") (identifier "local_b8"))) (; ";")) (expression_statement "local_74 = param_1[5] + uStack_b4;" (assignment_expression "local_74 = param_1[5] + uStack_b4" (identifier "local_74") (= "=") (binary_expression "param_1[5] + uStack_b4" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (+ "+") (identifier "uStack_b4"))) (; ";")) (expression_statement "local_70 = param_1[6] + uStack_b0;" (assignment_expression "local_70 = param_1[6] + uStack_b0" (identifier "local_70") (= "=") (binary_expression "param_1[6] + uStack_b0" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (+ "+") (identifier "uStack_b0"))) (; ";")) (expression_statement "local_6c = param_1[7] + uStack_ac;" (assignment_expression "local_6c = param_1[7] + uStack_ac" (identifier "local_6c") (= "=") (binary_expression "param_1[7] + uStack_ac" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (+ "+") (identifier "uStack_ac"))) (; ";")) (expression_statement "local_68 = param_1[8] + local_a8;" (assignment_expression "local_68 = param_1[8] + local_a8" (identifier "local_68") (= "=") (binary_expression "param_1[8] + local_a8" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (+ "+") (identifier "local_a8"))) (; ";")) (expression_statement "local_64 = param_1[9] + uStack_a4;" (assignment_expression "local_64 = param_1[9] + uStack_a4" (identifier "local_64") (= "=") (binary_expression "param_1[9] + uStack_a4" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (+ "+") (identifier "uStack_a4"))) (; ";")) (expression_statement "local_60 = param_1[10] + uStack_a0;" (assignment_expression "local_60 = param_1[10] + uStack_a0" (identifier "local_60") (= "=") (binary_expression "param_1[10] + uStack_a0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (+ "+") (identifier "uStack_a0"))) (; ";")) (expression_statement "iVar21 = param_1[0xc] + 1;" (assignment_expression "iVar21 = param_1[0xc] + 1" (identifier "iVar21") (= "=") (binary_expression "param_1[0xc] + 1" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_5c = param_1[0xb] + uStack_9c;" (assignment_expression "local_5c = param_1[0xb] + uStack_9c" (identifier "local_5c") (= "=") (binary_expression "param_1[0xb] + uStack_9c" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (+ "+") (identifier "uStack_9c"))) (; ";")) (expression_statement "local_58 = local_98 + param_1[0xc];" (assignment_expression "local_58 = local_98 + param_1[0xc]" (identifier "local_58") (= "=") (binary_expression "local_98 + param_1[0xc]" (identifier "local_98") (+ "+") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (expression_statement "local_54 = uStack_94 + param_1[0xd];" (assignment_expression "local_54 = uStack_94 + param_1[0xd]" (identifier "local_54") (= "=") (binary_expression "uStack_94 + param_1[0xd]" (identifier "uStack_94") (+ "+") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")))) (; ";")) (expression_statement "local_50 = param_1[0xe] + uStack_90;" (assignment_expression "local_50 = param_1[0xe] + uStack_90" (identifier "local_50") (= "=") (binary_expression "param_1[0xe] + uStack_90" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (identifier "uStack_90"))) (; ";")) (expression_statement "local_4c = uStack_8c + param_1[0xf];" (assignment_expression "local_4c = uStack_8c + param_1[0xf]" (identifier "local_4c") (= "=") (binary_expression "uStack_8c + param_1[0xf]" (identifier "uStack_8c") (+ "+") (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")))) (; ";")) (if_statement "if (local_f0 == 8) {\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }\n      else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }" (if "if") (parenthesized_expression "(local_f0 == 8)" (( "(") (binary_expression "local_f0 == 8" (identifier "local_f0") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n        param_1[0xc] = iVar21;\n        if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }\n      }" ({ "{") (expression_statement "param_1[0xc] = iVar21;" (assignment_expression "param_1[0xc] = iVar21" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "iVar21")) (; ";")) (if_statement "if (iVar21 == 0) {\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }" (if "if") (parenthesized_expression "(iVar21 == 0)" (( "(") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar21 = param_1[0xd] + 1;\n          param_1[0xd] = iVar21;\n          goto joined_r0x0018a0dd;\n        }" ({ "{") (expression_statement "iVar21 = param_1[0xd] + 1;" (assignment_expression "iVar21 = param_1[0xd] + 1" (identifier "iVar21") (= "=") (binary_expression "param_1[0xd] + 1" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_1[0xd] = iVar21;" (assignment_expression "param_1[0xd] = iVar21" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "iVar21")) (; ";")) (goto_statement "goto joined_r0x0018a0dd;" (goto "goto") (statement_identifier "joined_r0x0018a0dd") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }" (else "else") (compound_statement "{\n        param_1[0xc] = iVar21;\njoined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }\n      }" ({ "{") (expression_statement "param_1[0xc] = iVar21;" (assignment_expression "param_1[0xc] = iVar21" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "iVar21")) (; ";")) (labeled_statement "joined_r0x0018a0dd:\n        if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }" (statement_identifier "joined_r0x0018a0dd") (: ":") (if_statement "if (iVar21 == 0) {\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }" (if "if") (parenthesized_expression "(iVar21 == 0)" (( "(") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar9 = 0x13;\n          goto LAB_0018a413;\n        }" ({ "{") (expression_statement "uVar9 = 0x13;" (assignment_expression "uVar9 = 0x13" (identifier "uVar9") (= "=") (number_literal "0x13")) (; ";")) (goto_statement "goto LAB_0018a413;" (goto "goto") (statement_identifier "LAB_0018a413") (; ";")) (} "}")))) (} "}")))) (if_statement "if (local_100 < 0x41) goto LAB_0018a0ed;" (if "if") (parenthesized_expression "(local_100 < 0x41)" (( "(") (binary_expression "local_100 < 0x41" (identifier "local_100") (< "<") (number_literal "0x41")) () ")")) (goto_statement "goto LAB_0018a0ed;" (goto "goto") (statement_identifier "LAB_0018a0ed") (; ";"))) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" (identifier "lVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      } while (lVar11 != 0x40);" (do "do") (compound_statement "{\n        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);\n        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);\n        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);\n        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);\n        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);\n        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);\n        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);\n        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);\n        lVar11 = lVar11 + 8;\n      }" ({ "{") (expression_statement "pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);" (assignment_expression "pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11)" (subscript_expression "pbVar24[lVar11]" (identifier "pbVar24") ([ "[") (identifier "lVar11") (] "]")) (= "=") (binary_expression "pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11)" (subscript_expression "pbVar10[lVar11]" (identifier "pbVar10") ([ "[") (identifier "lVar11") (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_88 + lVar11)" (* "*") (cast_expression "(byte *)((long)&local_88 + lVar11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + lVar11)" (( "(") (binary_expression "(long)&local_88 + lVar11" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "lVar11")) () ")")))))) (; ";")) (expression_statement "pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);" (assignment_expression "pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1)" (subscript_expression "pbVar24[lVar11 + 1]" (identifier "pbVar24") ([ "[") (binary_expression "lVar11 + 1" (identifier "lVar11") (+ "+") (number_literal "1")) (] "]")) (= "=") (binary_expression "pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1)" (subscript_expression "pbVar10[lVar11 + 1]" (identifier "pbVar10") ([ "[") (binary_expression "lVar11 + 1" (identifier "lVar11") (+ "+") (number_literal "1")) (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_88 + lVar11 + 1)" (* "*") (cast_expression "(byte *)((long)&local_88 + lVar11 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + lVar11 + 1)" (( "(") (binary_expression "(long)&local_88 + lVar11 + 1" (binary_expression "(long)&local_88 + lVar11" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "lVar11")) (+ "+") (number_literal "1")) () ")")))))) (; ";")) (expression_statement "pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);" (assignment_expression "pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2)" (subscript_expression "pbVar24[lVar11 + 2]" (identifier "pbVar24") ([ "[") (binary_expression "lVar11 + 2" (identifier "lVar11") (+ "+") (number_literal "2")) (] "]")) (= "=") (binary_expression "pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2)" (subscript_expression "pbVar10[lVar11 + 2]" (identifier "pbVar10") ([ "[") (binary_expression "lVar11 + 2" (identifier "lVar11") (+ "+") (number_literal "2")) (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_88 + lVar11 + 2)" (* "*") (cast_expression "(byte *)((long)&local_88 + lVar11 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + lVar11 + 2)" (( "(") (binary_expression "(long)&local_88 + lVar11 + 2" (binary_expression "(long)&local_88 + lVar11" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "lVar11")) (+ "+") (number_literal "2")) () ")")))))) (; ";")) (expression_statement "pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);" (assignment_expression "pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3)" (subscript_expression "pbVar24[lVar11 + 3]" (identifier "pbVar24") ([ "[") (binary_expression "lVar11 + 3" (identifier "lVar11") (+ "+") (number_literal "3")) (] "]")) (= "=") (binary_expression "pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3)" (subscript_expression "pbVar10[lVar11 + 3]" (identifier "pbVar10") ([ "[") (binary_expression "lVar11 + 3" (identifier "lVar11") (+ "+") (number_literal "3")) (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_88 + lVar11 + 3)" (* "*") (cast_expression "(byte *)((long)&local_88 + lVar11 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + lVar11 + 3)" (( "(") (binary_expression "(long)&local_88 + lVar11 + 3" (binary_expression "(long)&local_88 + lVar11" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "lVar11")) (+ "+") (number_literal "3")) () ")")))))) (; ";")) (expression_statement "pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);" (assignment_expression "pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11)" (subscript_expression "pbVar24[lVar11 + 4]" (identifier "pbVar24") ([ "[") (binary_expression "lVar11 + 4" (identifier "lVar11") (+ "+") (number_literal "4")) (] "]")) (= "=") (binary_expression "pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11)" (subscript_expression "pbVar10[lVar11 + 4]" (identifier "pbVar10") ([ "[") (binary_expression "lVar11 + 4" (identifier "lVar11") (+ "+") (number_literal "4")) (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_84 + lVar11)" (* "*") (cast_expression "(byte *)((long)&local_84 + lVar11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_84 + lVar11)" (( "(") (binary_expression "(long)&local_84 + lVar11" (cast_expression "(long)&local_84" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (+ "+") (identifier "lVar11")) () ")")))))) (; ";")) (expression_statement "pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);" (assignment_expression "pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1)" (subscript_expression "pbVar24[lVar11 + 5]" (identifier "pbVar24") ([ "[") (binary_expression "lVar11 + 5" (identifier "lVar11") (+ "+") (number_literal "5")) (] "]")) (= "=") (binary_expression "pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1)" (subscript_expression "pbVar10[lVar11 + 5]" (identifier "pbVar10") ([ "[") (binary_expression "lVar11 + 5" (identifier "lVar11") (+ "+") (number_literal "5")) (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_84 + lVar11 + 1)" (* "*") (cast_expression "(byte *)((long)&local_84 + lVar11 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_84 + lVar11 + 1)" (( "(") (binary_expression "(long)&local_84 + lVar11 + 1" (binary_expression "(long)&local_84 + lVar11" (cast_expression "(long)&local_84" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (+ "+") (identifier "lVar11")) (+ "+") (number_literal "1")) () ")")))))) (; ";")) (expression_statement "pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);" (assignment_expression "pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2)" (subscript_expression "pbVar24[lVar11 + 6]" (identifier "pbVar24") ([ "[") (binary_expression "lVar11 + 6" (identifier "lVar11") (+ "+") (number_literal "6")) (] "]")) (= "=") (binary_expression "pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2)" (subscript_expression "pbVar10[lVar11 + 6]" (identifier "pbVar10") ([ "[") (binary_expression "lVar11 + 6" (identifier "lVar11") (+ "+") (number_literal "6")) (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_84 + lVar11 + 2)" (* "*") (cast_expression "(byte *)((long)&local_84 + lVar11 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_84 + lVar11 + 2)" (( "(") (binary_expression "(long)&local_84 + lVar11 + 2" (binary_expression "(long)&local_84 + lVar11" (cast_expression "(long)&local_84" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (+ "+") (identifier "lVar11")) (+ "+") (number_literal "2")) () ")")))))) (; ";")) (expression_statement "pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);" (assignment_expression "pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3)" (subscript_expression "pbVar24[lVar11 + 7]" (identifier "pbVar24") ([ "[") (binary_expression "lVar11 + 7" (identifier "lVar11") (+ "+") (number_literal "7")) (] "]")) (= "=") (binary_expression "pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3)" (subscript_expression "pbVar10[lVar11 + 7]" (identifier "pbVar10") ([ "[") (binary_expression "lVar11 + 7" (identifier "lVar11") (+ "+") (number_literal "7")) (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_84 + lVar11 + 3)" (* "*") (cast_expression "(byte *)((long)&local_84 + lVar11 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_84 + lVar11 + 3)" (( "(") (binary_expression "(long)&local_84 + lVar11 + 3" (binary_expression "(long)&local_84 + lVar11" (cast_expression "(long)&local_84" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (+ "+") (identifier "lVar11")) (+ "+") (number_literal "3")) () ")")))))) (; ";")) (expression_statement "lVar11 = lVar11 + 8;" (assignment_expression "lVar11 = lVar11 + 8" (identifier "lVar11") (= "=") (binary_expression "lVar11 + 8" (identifier "lVar11") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar11 != 0x40)" (( "(") (binary_expression "lVar11 != 0x40" (identifier "lVar11") (!= "!=") (number_literal "0x40")) () ")")) (; ";")) (expression_statement "local_100 = local_100 - 0x40;" (assignment_expression "local_100 = local_100 - 0x40" (identifier "local_100") (= "=") (binary_expression "local_100 - 0x40" (identifier "local_100") (- "-") (number_literal "0x40"))) (; ";")) (expression_statement "local_f0 = *(long *)(param_1 + 0x22);" (assignment_expression "local_f0 = *(long *)(param_1 + 0x22)" (identifier "local_f0") (= "=") (pointer_expression "*(long *)(param_1 + 0x22)" (* "*") (cast_expression "(long *)(param_1 + 0x22)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x22)" (( "(") (binary_expression "param_1 + 0x22" (identifier "param_1") (+ "+") (number_literal "0x22")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_0018a411;" (goto "goto") (statement_identifier "LAB_0018a411") (; ";")) (labeled_statement "LAB_0018a0ed:\n  uVar14 = 0;" (statement_identifier "LAB_0018a0ed") (: ":") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar17 = (uint)local_100 & 7;" (assignment_expression "uVar17 = (uint)local_100 & 7" (identifier "uVar17") (= "=") (binary_expression "(uint)local_100 & 7" (cast_expression "(uint)local_100" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_100")) (& "&") (number_literal "7"))) (; ";")) (if_statement "if ((local_100 & 7) == 0) goto LAB_0018a1e3;" (if "if") (parenthesized_expression "((local_100 & 7) == 0)" (( "(") (binary_expression "(local_100 & 7) == 0" (parenthesized_expression "(local_100 & 7)" (( "(") (binary_expression "local_100 & 7" (identifier "local_100") (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0018a1e3;" (goto "goto") (statement_identifier "LAB_0018a1e3") (; ";"))) (if_statement "if (uVar17 != 1) {\n    if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    uVar14 = uVar14 + 1;\n  }" (if "if") (parenthesized_expression "(uVar17 != 1)" (( "(") (binary_expression "uVar17 != 1" (identifier "uVar17") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    uVar14 = uVar14 + 1;\n  }" ({ "{") (if_statement "if (uVar17 != 2) {\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }" (if "if") (parenthesized_expression "(uVar17 != 2)" (( "(") (binary_expression "uVar17 != 2" (identifier "uVar17") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n      if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }\n      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n      uVar14 = uVar14 + 1;\n    }" ({ "{") (if_statement "if (uVar17 != 3) {\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }" (if "if") (parenthesized_expression "(uVar17 != 3)" (( "(") (binary_expression "uVar17 != 3" (identifier "uVar17") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n        if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }\n        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n        uVar14 = uVar14 + 1;\n      }" ({ "{") (if_statement "if (uVar17 != 4) {\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }" (if "if") (parenthesized_expression "(uVar17 != 4)" (( "(") (binary_expression "uVar17 != 4" (identifier "uVar17") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n          if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }\n          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n          uVar14 = uVar14 + 1;\n        }" ({ "{") (if_statement "if (uVar17 != 5) {\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }" (if "if") (parenthesized_expression "(uVar17 != 5)" (( "(") (binary_expression "uVar17 != 5" (identifier "uVar17") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n            if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }\n            uVar14 = (ulong)(uVar17 != 6);\n            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n            uVar14 = uVar14 + 1;\n          }" ({ "{") (if_statement "if (uVar17 != 6) {\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }" (if "if") (parenthesized_expression "(uVar17 != 6)" (( "(") (binary_expression "uVar17 != 6" (identifier "uVar17") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n              local_88._0_1_ = (byte)(local_c8 + *param_1);\n              *pbVar24 = *pbVar10 ^ (byte)local_88;\n            }" ({ "{") (expression_statement "local_88._0_1_ = (byte)(local_c8 + *param_1);" (assignment_expression "local_88._0_1_ = (byte)(local_c8 + *param_1)" (field_expression "local_88._0_1_" (identifier "local_88") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)(local_c8 + *param_1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(local_c8 + *param_1)" (( "(") (binary_expression "local_c8 + *param_1" (identifier "local_c8") (+ "+") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")")))) (; ";")) (expression_statement "*pbVar24 = *pbVar10 ^ (byte)local_88;" (assignment_expression "*pbVar24 = *pbVar10 ^ (byte)local_88" (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24")) (= "=") (binary_expression "*pbVar10 ^ (byte)local_88" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (^ "^") (cast_expression "(byte)local_88" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_88")))) (; ";")) (} "}"))) (expression_statement "uVar14 = (ulong)(uVar17 != 6);" (assignment_expression "uVar14 = (ulong)(uVar17 != 6)" (identifier "uVar14") (= "=") (call_expression "(ulong)(uVar17 != 6)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar17 != 6)" (( "(") (binary_expression "uVar17 != 6" (identifier "uVar17") (!= "!=") (number_literal "6")) () ")")))) (; ";")) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" (identifier "pbVar24") ([ "[") (identifier "uVar14") (] "]")) (= "=") (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" (identifier "pbVar10") ([ "[") (identifier "uVar14") (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_88 + uVar14)" (* "*") (cast_expression "(byte *)((long)&local_88 + uVar14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + uVar14)" (( "(") (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "uVar14")) () ")")))))) (; ";")) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" (identifier "pbVar24") ([ "[") (identifier "uVar14") (] "]")) (= "=") (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" (identifier "pbVar10") ([ "[") (identifier "uVar14") (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_88 + uVar14)" (* "*") (cast_expression "(byte *)((long)&local_88 + uVar14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + uVar14)" (( "(") (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "uVar14")) () ")")))))) (; ";")) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" (identifier "pbVar24") ([ "[") (identifier "uVar14") (] "]")) (= "=") (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" (identifier "pbVar10") ([ "[") (identifier "uVar14") (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_88 + uVar14)" (* "*") (cast_expression "(byte *)((long)&local_88 + uVar14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + uVar14)" (( "(") (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "uVar14")) () ")")))))) (; ";")) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" (identifier "pbVar24") ([ "[") (identifier "uVar14") (] "]")) (= "=") (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" (identifier "pbVar10") ([ "[") (identifier "uVar14") (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_88 + uVar14)" (* "*") (cast_expression "(byte *)((long)&local_88 + uVar14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + uVar14)" (( "(") (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "uVar14")) () ")")))))) (; ";")) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" (identifier "pbVar24") ([ "[") (identifier "uVar14") (] "]")) (= "=") (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" (identifier "pbVar10") ([ "[") (identifier "uVar14") (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_88 + uVar14)" (* "*") (cast_expression "(byte *)((long)&local_88 + uVar14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + uVar14)" (( "(") (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "uVar14")) () ")")))))) (; ";")) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" (identifier "pbVar24") ([ "[") (identifier "uVar14") (] "]")) (= "=") (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" (identifier "pbVar10") ([ "[") (identifier "uVar14") (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_88 + uVar14)" (* "*") (cast_expression "(byte *)((long)&local_88 + uVar14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + uVar14)" (( "(") (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "uVar14")) () ")")))))) (; ";")) (for_statement "for (uVar14 = uVar14 + 1; local_100 != uVar14; uVar14 = uVar14 + 8) {\nLAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);\n    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);\n    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);\n    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);\n    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);\n    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);\n    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);\n  }" (for "for") (( "(") (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";") (binary_expression "local_100 != uVar14" (identifier "local_100") (!= "!=") (identifier "uVar14")) (; ";") (assignment_expression "uVar14 = uVar14 + 8" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 8" (identifier "uVar14") (+ "+") (number_literal "8"))) () ")") (compound_statement "{\nLAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);\n    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);\n    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);\n    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);\n    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);\n    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);\n    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);\n    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);\n  }" ({ "{") (labeled_statement "LAB_0018a1e3:\n    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (statement_identifier "LAB_0018a1e3") (: ":") (expression_statement "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);" (assignment_expression "pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar24[uVar14]" (identifier "pbVar24") ([ "[") (identifier "uVar14") (] "]")) (= "=") (binary_expression "pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14)" (subscript_expression "pbVar10[uVar14]" (identifier "pbVar10") ([ "[") (identifier "uVar14") (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_88 + uVar14)" (* "*") (cast_expression "(byte *)((long)&local_88 + uVar14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + uVar14)" (( "(") (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "uVar14")) () ")")))))) (; ";"))) (expression_statement "pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);" (assignment_expression "pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1)" (subscript_expression "pbVar24[uVar14 + 1]" (identifier "pbVar24") ([ "[") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1")) (] "]")) (= "=") (binary_expression "pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1)" (subscript_expression "pbVar10[uVar14 + 1]" (identifier "pbVar10") ([ "[") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1")) (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_88 + uVar14 + 1)" (* "*") (cast_expression "(byte *)((long)&local_88 + uVar14 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + uVar14 + 1)" (( "(") (binary_expression "(long)&local_88 + uVar14 + 1" (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "uVar14")) (+ "+") (number_literal "1")) () ")")))))) (; ";")) (expression_statement "pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);" (assignment_expression "pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2)" (subscript_expression "pbVar24[uVar14 + 2]" (identifier "pbVar24") ([ "[") (binary_expression "uVar14 + 2" (identifier "uVar14") (+ "+") (number_literal "2")) (] "]")) (= "=") (binary_expression "pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2)" (subscript_expression "pbVar10[uVar14 + 2]" (identifier "pbVar10") ([ "[") (binary_expression "uVar14 + 2" (identifier "uVar14") (+ "+") (number_literal "2")) (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_88 + uVar14 + 2)" (* "*") (cast_expression "(byte *)((long)&local_88 + uVar14 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + uVar14 + 2)" (( "(") (binary_expression "(long)&local_88 + uVar14 + 2" (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "uVar14")) (+ "+") (number_literal "2")) () ")")))))) (; ";")) (expression_statement "pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);" (assignment_expression "pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3)" (subscript_expression "pbVar24[uVar14 + 3]" (identifier "pbVar24") ([ "[") (binary_expression "uVar14 + 3" (identifier "uVar14") (+ "+") (number_literal "3")) (] "]")) (= "=") (binary_expression "pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3)" (subscript_expression "pbVar10[uVar14 + 3]" (identifier "pbVar10") ([ "[") (binary_expression "uVar14 + 3" (identifier "uVar14") (+ "+") (number_literal "3")) (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_88 + uVar14 + 3)" (* "*") (cast_expression "(byte *)((long)&local_88 + uVar14 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + uVar14 + 3)" (( "(") (binary_expression "(long)&local_88 + uVar14 + 3" (binary_expression "(long)&local_88 + uVar14" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "uVar14")) (+ "+") (number_literal "3")) () ")")))))) (; ";")) (expression_statement "pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);" (assignment_expression "pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14)" (subscript_expression "pbVar24[uVar14 + 4]" (identifier "pbVar24") ([ "[") (binary_expression "uVar14 + 4" (identifier "uVar14") (+ "+") (number_literal "4")) (] "]")) (= "=") (binary_expression "pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14)" (subscript_expression "pbVar10[uVar14 + 4]" (identifier "pbVar10") ([ "[") (binary_expression "uVar14 + 4" (identifier "uVar14") (+ "+") (number_literal "4")) (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_84 + uVar14)" (* "*") (cast_expression "(byte *)((long)&local_84 + uVar14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_84 + uVar14)" (( "(") (binary_expression "(long)&local_84 + uVar14" (cast_expression "(long)&local_84" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (+ "+") (identifier "uVar14")) () ")")))))) (; ";")) (expression_statement "pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);" (assignment_expression "pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1)" (subscript_expression "pbVar24[uVar14 + 5]" (identifier "pbVar24") ([ "[") (binary_expression "uVar14 + 5" (identifier "uVar14") (+ "+") (number_literal "5")) (] "]")) (= "=") (binary_expression "pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1)" (subscript_expression "pbVar10[uVar14 + 5]" (identifier "pbVar10") ([ "[") (binary_expression "uVar14 + 5" (identifier "uVar14") (+ "+") (number_literal "5")) (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_84 + uVar14 + 1)" (* "*") (cast_expression "(byte *)((long)&local_84 + uVar14 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_84 + uVar14 + 1)" (( "(") (binary_expression "(long)&local_84 + uVar14 + 1" (binary_expression "(long)&local_84 + uVar14" (cast_expression "(long)&local_84" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (+ "+") (identifier "uVar14")) (+ "+") (number_literal "1")) () ")")))))) (; ";")) (expression_statement "pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);" (assignment_expression "pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2)" (subscript_expression "pbVar24[uVar14 + 6]" (identifier "pbVar24") ([ "[") (binary_expression "uVar14 + 6" (identifier "uVar14") (+ "+") (number_literal "6")) (] "]")) (= "=") (binary_expression "pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2)" (subscript_expression "pbVar10[uVar14 + 6]" (identifier "pbVar10") ([ "[") (binary_expression "uVar14 + 6" (identifier "uVar14") (+ "+") (number_literal "6")) (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_84 + uVar14 + 2)" (* "*") (cast_expression "(byte *)((long)&local_84 + uVar14 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_84 + uVar14 + 2)" (( "(") (binary_expression "(long)&local_84 + uVar14 + 2" (binary_expression "(long)&local_84 + uVar14" (cast_expression "(long)&local_84" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (+ "+") (identifier "uVar14")) (+ "+") (number_literal "2")) () ")")))))) (; ";")) (expression_statement "pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);" (assignment_expression "pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3)" (subscript_expression "pbVar24[uVar14 + 7]" (identifier "pbVar24") ([ "[") (binary_expression "uVar14 + 7" (identifier "uVar14") (+ "+") (number_literal "7")) (] "]")) (= "=") (binary_expression "pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3)" (subscript_expression "pbVar10[uVar14 + 7]" (identifier "pbVar10") ([ "[") (binary_expression "uVar14 + 7" (identifier "uVar14") (+ "+") (number_literal "7")) (] "]")) (^ "^") (pointer_expression "*(byte *)((long)&local_84 + uVar14 + 3)" (* "*") (cast_expression "(byte *)((long)&local_84 + uVar14 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_84 + uVar14 + 3)" (( "(") (binary_expression "(long)&local_84 + uVar14 + 3" (binary_expression "(long)&local_84 + uVar14" (cast_expression "(long)&local_84" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (+ "+") (identifier "uVar14")) (+ "+") (number_literal "3")) () ")")))))) (; ";")) (} "}"))) (expression_statement "*(ulong *)(param_1 + 0x20) = 0x40 - local_100;" (assignment_expression "*(ulong *)(param_1 + 0x20) = 0x40 - local_100" (pointer_expression "*(ulong *)(param_1 + 0x20)" (* "*") (cast_expression "(ulong *)(param_1 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "0x40 - local_100" (number_literal "0x40") (- "-") (identifier "local_100"))) (; ";")) (expression_statement "local_88 = iVar8;" (assignment_expression "local_88 = iVar8" (identifier "local_88") (= "=") (identifier "iVar8")) (; ";")) (if_statement "if (local_100 != 0x40) {\n    uVar17 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }" (if "if") (parenthesized_expression "(local_100 != 0x40)" (( "(") (binary_expression "local_100 != 0x40" (identifier "local_100") (!= "!=") (number_literal "0x40")) () ")")) (compound_statement "{\n    uVar17 = (uint)-local_100 & 7;\n    if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }\n    do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);\n  }" ({ "{") (expression_statement "uVar17 = (uint)-local_100 & 7;" (assignment_expression "uVar17 = (uint)-local_100 & 7" (identifier "uVar17") (= "=") (binary_expression "(uint)-local_100 & 7" (binary_expression "(uint)-local_100" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (identifier "local_100")) (& "&") (number_literal "7"))) (; ";")) (if_statement "if ((-local_100 & 7) != 0) {\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }" (if "if") (parenthesized_expression "((-local_100 & 7) != 0)" (( "(") (binary_expression "(-local_100 & 7) != 0" (parenthesized_expression "(-local_100 & 7)" (( "(") (binary_expression "-local_100 & 7" (unary_expression "-local_100" (- "-") (identifier "local_100")) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      local_100 = local_100 + 1;\n      if (local_100 == 0x40) goto LAB_0018a411;\n    }" ({ "{") (if_statement "if (uVar17 != 1) {\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }" (if "if") (parenthesized_expression "(uVar17 != 1)" (( "(") (binary_expression "uVar17 != 1" (identifier "uVar17") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }\n        *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);\n        local_100 = local_100 + 1;\n      }" ({ "{") (if_statement "if (uVar17 != 2) {\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }" (if "if") (parenthesized_expression "(uVar17 != 2)" (( "(") (binary_expression "uVar17 != 2" (identifier "uVar17") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n          if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }\n          *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);\n          local_100 = local_100 + 1;\n        }" ({ "{") (if_statement "if (uVar17 != 3) {\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }" (if "if") (parenthesized_expression "(uVar17 != 3)" (( "(") (binary_expression "uVar17 != 3" (identifier "uVar17") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n            if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }\n            *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);\n            local_100 = local_100 + 1;\n          }" ({ "{") (if_statement "if (uVar17 != 4) {\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }" (if "if") (parenthesized_expression "(uVar17 != 4)" (( "(") (binary_expression "uVar17 != 4" (identifier "uVar17") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n              if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }\n              *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);\n              local_100 = local_100 + 1;\n            }" ({ "{") (if_statement "if (uVar17 != 5) {\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }" (if "if") (parenthesized_expression "(uVar17 != 5)" (( "(") (binary_expression "uVar17 != 5" (identifier "uVar17") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n                if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }\n                *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);\n                local_100 = local_100 + 1;\n              }" ({ "{") (if_statement "if (uVar17 != 6) {\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }" (if "if") (parenthesized_expression "(uVar17 != 6)" (( "(") (binary_expression "uVar17 != 6" (identifier "uVar17") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);\n                  local_100 = local_100 + 1;\n                }" ({ "{") (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                       *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + local_100 + 0x40)" (( "(") (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "local_100")) (+ "+") (number_literal "0x40")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" (* "*") (cast_expression "(undefined1 *)((long)&local_88 + local_100)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + local_100)" (( "(") (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "local_100")) () ")"))))) (; ";")) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" (identifier "local_100") (= "=") (binary_expression "local_100 + 1" (identifier "local_100") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                     *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + local_100 + 0x40)" (( "(") (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "local_100")) (+ "+") (number_literal "0x40")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" (* "*") (cast_expression "(undefined1 *)((long)&local_88 + local_100)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + local_100)" (( "(") (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "local_100")) () ")"))))) (; ";")) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" (identifier "local_100") (= "=") (binary_expression "local_100 + 1" (identifier "local_100") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                   *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + local_100 + 0x40)" (( "(") (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "local_100")) (+ "+") (number_literal "0x40")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" (* "*") (cast_expression "(undefined1 *)((long)&local_88 + local_100)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + local_100)" (( "(") (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "local_100")) () ")"))))) (; ";")) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" (identifier "local_100") (= "=") (binary_expression "local_100 + 1" (identifier "local_100") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n                 *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + local_100 + 0x40)" (( "(") (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "local_100")) (+ "+") (number_literal "0x40")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" (* "*") (cast_expression "(undefined1 *)((long)&local_88 + local_100)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + local_100)" (( "(") (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "local_100")) () ")"))))) (; ";")) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" (identifier "local_100") (= "=") (binary_expression "local_100 + 1" (identifier "local_100") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n               *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + local_100 + 0x40)" (( "(") (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "local_100")) (+ "+") (number_literal "0x40")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" (* "*") (cast_expression "(undefined1 *)((long)&local_88 + local_100)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + local_100)" (( "(") (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "local_100")) () ")"))))) (; ";")) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" (identifier "local_100") (= "=") (binary_expression "local_100 + 1" (identifier "local_100") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n             *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + local_100 + 0x40)" (( "(") (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "local_100")) (+ "+") (number_literal "0x40")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" (* "*") (cast_expression "(undefined1 *)((long)&local_88 + local_100)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + local_100)" (( "(") (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "local_100")) () ")"))))) (; ";")) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" (identifier "local_100") (= "=") (binary_expression "local_100 + 1" (identifier "local_100") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + local_100 + 0x40)" (( "(") (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "local_100")) (+ "+") (number_literal "0x40")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" (* "*") (cast_expression "(undefined1 *)((long)&local_88 + local_100)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + local_100)" (( "(") (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "local_100")) () ")"))))) (; ";")) (expression_statement "local_100 = local_100 + 1;" (assignment_expression "local_100 = local_100 + 1" (identifier "local_100") (= "=") (binary_expression "local_100 + 1" (identifier "local_100") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_100 == 0x40) goto LAB_0018a411;" (if "if") (parenthesized_expression "(local_100 == 0x40)" (( "(") (binary_expression "local_100 == 0x40" (identifier "local_100") (== "==") (number_literal "0x40")) () ")")) (goto_statement "goto LAB_0018a411;" (goto "goto") (statement_identifier "LAB_0018a411") (; ";"))) (} "}"))) (do_statement "do {\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    } while (local_100 != 0x40);" (do "do") (compound_statement "{\n      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);\n      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);\n      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);\n      uVar4 = *(undefined1 *)((long)&local_84 + local_100);\n      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);\n      *(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);\n      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);\n      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);\n      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;\n      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;\n      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;\n      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;\n      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;\n      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;\n      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;\n      local_100 = local_100 + 8;\n    }" ({ "{") (expression_statement "uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);" (assignment_expression "uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)((long)&local_88 + local_100 + 1)" (* "*") (cast_expression "(undefined1 *)((long)&local_88 + local_100 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + local_100 + 1)" (( "(") (binary_expression "(long)&local_88 + local_100 + 1" (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "local_100")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);" (assignment_expression "uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined1 *)((long)&local_88 + local_100 + 2)" (* "*") (cast_expression "(undefined1 *)((long)&local_88 + local_100 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + local_100 + 2)" (( "(") (binary_expression "(long)&local_88 + local_100 + 2" (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "local_100")) (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);" (assignment_expression "uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined1 *)((long)&local_88 + local_100 + 3)" (* "*") (cast_expression "(undefined1 *)((long)&local_88 + local_100 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + local_100 + 3)" (( "(") (binary_expression "(long)&local_88 + local_100 + 3" (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "local_100")) (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined1 *)((long)&local_84 + local_100);" (assignment_expression "uVar4 = *(undefined1 *)((long)&local_84 + local_100)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined1 *)((long)&local_84 + local_100)" (* "*") (cast_expression "(undefined1 *)((long)&local_84 + local_100)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_84 + local_100)" (( "(") (binary_expression "(long)&local_84 + local_100" (cast_expression "(long)&local_84" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (+ "+") (identifier "local_100")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);" (assignment_expression "uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined1 *)((long)&local_84 + local_100 + 1)" (* "*") (cast_expression "(undefined1 *)((long)&local_84 + local_100 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_84 + local_100 + 1)" (( "(") (binary_expression "(long)&local_84 + local_100 + 1" (binary_expression "(long)&local_84 + local_100" (cast_expression "(long)&local_84" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (+ "+") (identifier "local_100")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100);" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40) =\n           *(undefined1 *)((long)&local_88 + local_100)" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x40)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x40)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + local_100 + 0x40)" (( "(") (binary_expression "(long)param_1 + local_100 + 0x40" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "local_100")) (+ "+") (number_literal "0x40")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((long)&local_88 + local_100)" (* "*") (cast_expression "(undefined1 *)((long)&local_88 + local_100)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_88 + local_100)" (( "(") (binary_expression "(long)&local_88 + local_100" (cast_expression "(long)&local_88" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_88" (& "&") (identifier "local_88"))) (+ "+") (identifier "local_100")) () ")"))))) (; ";")) (expression_statement "uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);" (assignment_expression "uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined1 *)((long)&local_84 + local_100 + 2)" (* "*") (cast_expression "(undefined1 *)((long)&local_84 + local_100 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_84 + local_100 + 2)" (( "(") (binary_expression "(long)&local_84 + local_100 + 2" (binary_expression "(long)&local_84 + local_100" (cast_expression "(long)&local_84" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (+ "+") (identifier "local_100")) (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);" (assignment_expression "uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined1 *)((long)&local_84 + local_100 + 3)" (* "*") (cast_expression "(undefined1 *)((long)&local_84 + local_100 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_84 + local_100 + 3)" (( "(") (binary_expression "(long)&local_84 + local_100 + 3" (binary_expression "(long)&local_84 + local_100" (cast_expression "(long)&local_84" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (+ "+") (identifier "local_100")) (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x41)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x41)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + local_100 + 0x41)" (( "(") (binary_expression "(long)param_1 + local_100 + 0x41" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "local_100")) (+ "+") (number_literal "0x41")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x42)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x42)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + local_100 + 0x42)" (( "(") (binary_expression "(long)param_1 + local_100 + 0x42" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "local_100")) (+ "+") (number_literal "0x42")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x43)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x43)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + local_100 + 0x43)" (( "(") (binary_expression "(long)param_1 + local_100 + 0x43" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "local_100")) (+ "+") (number_literal "0x43")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x44)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x44)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + local_100 + 0x44)" (( "(") (binary_expression "(long)param_1 + local_100 + 0x44" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "local_100")) (+ "+") (number_literal "0x44")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x45)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x45)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + local_100 + 0x45)" (( "(") (binary_expression "(long)param_1 + local_100 + 0x45" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "local_100")) (+ "+") (number_literal "0x45")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x46)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x46)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + local_100 + 0x46)" (( "(") (binary_expression "(long)param_1 + local_100 + 0x46" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "local_100")) (+ "+") (number_literal "0x46")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;" (assignment_expression "*(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7" (pointer_expression "*(undefined1 *)((long)param_1 + local_100 + 0x47)" (* "*") (cast_expression "(undefined1 *)((long)param_1 + local_100 + 0x47)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + local_100 + 0x47)" (( "(") (binary_expression "(long)param_1 + local_100 + 0x47" (binary_expression "(long)param_1 + local_100" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "local_100")) (+ "+") (number_literal "0x47")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "local_100 = local_100 + 8;" (assignment_expression "local_100 = local_100 + 8" (identifier "local_100") (= "=") (binary_expression "local_100 + 8" (identifier "local_100") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_100 != 0x40)" (( "(") (binary_expression "local_100 != 0x40" (identifier "local_100") (!= "!=") (number_literal "0x40")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0018a411:\n  uVar9 = 0;" (statement_identifier "LAB_0018a411") (: ":") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_0018a413:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar9;\n  }" (statement_identifier "LAB_0018a413") (: ":") (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return uVar9;\n  }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return uVar9;\n  }" ({ "{") (return_statement "return uVar9;" (return "return") (identifier "uVar9") (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

int function_1(type_1 *var_3,type_2 *var_5,type_3 var_2,type_2 *var_6)

{
  type_2 uVar1;
  type_2 uVar2;
  type_2 uVar3;
  type_2 uVar4;
  type_2 uVar5;
  type_2 uVar6;
  type_2 uVar7;
  long var_33;
  type_4 uVar9;
  int iVar10;
  type_5 var_14;
  type_6 *pbVar12;
  long var_32;
  type_5 var_20;
  type_5 var_23;
  type_5 var_16;
  type_5 var_17;
  type_3 var_8;
  type_5 var_15;
  type_5 var_28;
  type_3 var_9;
  type_5 var_10;
  type_5 var_24;
  type_5 var_22;
  type_5 var_27;
  type_5 var_19;
  type_7 var_31;
  type_5 var_30;
  type_5 var_18;
  type_3 var_11;
  type_6 *pbVar31;
  type_5 var_29;
  long var_1;
  int var_13;
  type_5 var_25;
  type_5 var_26;
  type_5 var_21;
  type_3 var_12;
  type_3 var_7;
  type_7 x [16];
  type_2 buf [64];
  
  var_33 = *(long *)(var_1 + 0x28);
  if (var_2 != 0) {
    if (var_3 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
      var_4("st != NULL","src/stream/chacha/chacha_crypt.c",0x3d);
    }
    if (var_5 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
      var_4("in != NULL","src/stream/chacha/chacha_crypt.c",0x3e);
    }
    if (var_6 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
      var_4("out != NULL","src/stream/chacha/chacha_crypt.c",0x3f);
    }
    var_7 = var_3->ivlen;
    if (var_7 == 0) {
                    /* WARNING: Subroutine does not return */
      var_4("st->ivlen != 0","src/stream/chacha/chacha_crypt.c",0x40);
    }
    var_8 = var_3->ksleft;
    var_12 = var_2;
    if (var_8 != 0) {
      var_9 = var_2;
      if (var_8 <= var_2) {
        var_9 = var_8;
      }
      var_11 = 0;
      var_10 = (type_5)var_9 & 7;
      if ((var_9 & 7) == 0) goto LAB_001899d0;
      if (var_10 != 1) {
        if (var_10 != 2) {
          if (var_10 != 3) {
            if (var_10 != 4) {
              if (var_10 != 5) {
                if (var_10 != 6) {
                  *var_6 = *(type_6 *)((long)var_3 + (0x80 - var_8)) ^ *var_5;
                  var_8 = var_3->ksleft - 1;
                  var_3->ksleft = var_8;
                }
                var_11 = (type_3)(var_10 != 6);
                var_6[var_11] = *(type_6 *)((long)var_3 + (0x80 - var_8)) ^ var_5[var_11];
                var_11 = var_11 + 1;
                var_8 = var_3->ksleft - 1;
                var_3->ksleft = var_8;
              }
              var_6[var_11] = *(type_6 *)((long)var_3 + (0x80 - var_8)) ^ var_5[var_11];
              var_11 = var_11 + 1;
              var_8 = var_3->ksleft - 1;
              var_3->ksleft = var_8;
            }
            var_6[var_11] = *(type_6 *)((long)var_3 + (0x80 - var_8)) ^ var_5[var_11];
            var_11 = var_11 + 1;
            var_8 = var_3->ksleft - 1;
            var_3->ksleft = var_8;
          }
          var_6[var_11] = *(type_6 *)((long)var_3 + (0x80 - var_8)) ^ var_5[var_11];
          var_11 = var_11 + 1;
          var_8 = var_3->ksleft - 1;
          var_3->ksleft = var_8;
        }
        var_6[var_11] = *(type_6 *)((long)var_3 + (0x80 - var_8)) ^ var_5[var_11];
        var_11 = var_11 + 1;
        var_8 = var_3->ksleft - 1;
        var_3->ksleft = var_8;
      }
      var_6[var_11] = *(type_6 *)((long)var_3 + (0x80 - var_8)) ^ var_5[var_11];
      var_8 = var_3->ksleft - 1;
      var_3->ksleft = var_8;
      for (var_11 = var_11 + 1; var_9 != var_11; var_11 = var_11 + 8) {
LAB_001899d0:
        var_6[var_11] = *(type_6 *)((long)var_3 + (0x80 - var_8)) ^ var_5[var_11];
        var_8 = var_3->ksleft - 1;
        var_3->ksleft = var_8;
        var_6[var_11 + 1] = *(type_6 *)((long)var_3 + (0x80 - var_8)) ^ var_5[var_11 + 1];
        var_8 = var_3->ksleft - 1;
        var_3->ksleft = var_8;
        var_6[var_11 + 2] = *(type_6 *)((long)var_3 + (0x80 - var_8)) ^ var_5[var_11 + 2];
        var_8 = var_3->ksleft - 1;
        var_3->ksleft = var_8;
        var_6[var_11 + 3] = *(type_6 *)((long)var_3 + (0x80 - var_8)) ^ var_5[var_11 + 3];
        var_8 = var_3->ksleft - 1;
        var_3->ksleft = var_8;
        var_6[var_11 + 4] = *(type_6 *)((long)var_3 + (0x80 - var_8)) ^ var_5[var_11 + 4];
        var_8 = var_3->ksleft - 1;
        var_3->ksleft = var_8;
        var_6[var_11 + 5] = *(type_6 *)((long)var_3 + (0x80 - var_8)) ^ var_5[var_11 + 5];
        var_8 = var_3->ksleft - 1;
        var_3->ksleft = var_8;
        var_6[var_11 + 6] = *(type_6 *)((long)var_3 + (0x80 - var_8)) ^ var_5[var_11 + 6];
        var_8 = var_3->ksleft - 1;
        var_3->ksleft = var_8;
        var_6[var_11 + 7] = *(type_6 *)((long)var_3 + (0x80 - var_8)) ^ var_5[var_11 + 7];
        var_8 = var_3->ksleft - 1;
        var_3->ksleft = var_8;
      }
      var_12 = var_2 - var_9;
      if (var_12 == 0) goto LAB_0018a411;
      var_6 = var_6 + var_9;
      var_5 = var_5 + var_9;
      var_7 = var_3->ivlen;
      var_2 = var_12;
    }
    do {
      pbVar31 = var_6 + (var_2 - var_12);
      var_13 = var_3->rounds;
      pbVar12 = var_5 + (var_2 - var_12);
      x[1] = (type_7)((type_3)*(type_8 *)var_3->input >> 0x20);
      x[0] = (type_7)*(type_8 *)var_3->input;
      x[3] = (type_7)((type_3)*(type_8 *)(var_3->input + 2) >> 0x20);
      x[2] = (type_7)*(type_8 *)(var_3->input + 2);
      x[5] = (type_7)((type_3)*(type_8 *)(var_3->input + 4) >> 0x20);
      x[4] = (type_7)*(type_8 *)(var_3->input + 4);
      x[7] = (type_7)((type_3)*(type_8 *)(var_3->input + 6) >> 0x20);
      x[6] = (type_7)*(type_8 *)(var_3->input + 6);
      x[9] = (type_7)((type_3)*(type_8 *)(var_3->input + 8) >> 0x20);
      x[8] = (type_7)*(type_8 *)(var_3->input + 8);
      x[0xb] = (type_7)((type_3)*(type_8 *)(var_3->input + 10) >> 0x20);
      x[10] = (type_7)*(type_8 *)(var_3->input + 10);
      x[0xd] = (type_7)((type_3)*(type_8 *)(var_3->input + 0xc) >> 0x20);
      x[0xc] = (type_7)*(type_8 *)(var_3->input + 0xc);
      x[0xf] = (type_7)((type_3)*(type_8 *)(var_3->input + 0xe) >> 0x20);
      x[0xe] = (type_7)*(type_8 *)(var_3->input + 0xe);
      if (0 < var_13) {
        var_26 = x[7];
        var_21 = x[10];
        var_25 = x[0xf];
        do {
          var_14 = x[0xc] ^ x[0] + x[4];
          var_10 = x[0xd] ^ x[1] + x[5];
          var_20 = x[0xe] ^ x[2] + x[6];
          var_14 = var_14 << 0x10 | var_14 >> 0x10;
          var_15 = x[8] + var_14;
          var_16 = x[4] ^ var_15;
          var_17 = var_16 << 0xc | var_16 >> 0x14;
          var_18 = x[0] + x[4] + var_17;
          var_14 = var_14 ^ var_18;
          var_16 = var_14 << 8 | var_14 >> 0x18;
          var_15 = var_15 + var_16;
          var_17 = var_17 ^ var_15;
          var_30 = var_17 << 7 | var_17 >> 0x19;
          var_14 = var_10 << 0x10 | var_10 >> 0x10;
          var_10 = x[9] + var_14;
          var_17 = x[5] ^ var_10;
          var_17 = var_17 << 0xc | var_17 >> 0x14;
          var_19 = x[1] + x[5] + var_17;
          var_14 = var_14 ^ var_19;
          var_14 = var_14 << 8 | var_14 >> 0x18;
          var_10 = var_10 + var_14;
          var_17 = var_17 ^ var_10;
          var_24 = var_17 << 7 | var_17 >> 0x19;
          var_17 = var_20 << 0x10 | var_20 >> 0x10;
          var_21 = var_21 + var_17;
          var_20 = x[6] ^ var_21;
          var_22 = var_20 << 0xc | var_20 >> 0x14;
          var_20 = x[2] + x[6] + var_22;
          var_17 = var_17 ^ var_20;
          var_23 = var_17 << 8 | var_17 >> 0x18;
          var_21 = var_21 + var_23;
          var_18 = var_18 + var_24;
          var_22 = var_22 ^ var_21;
          var_25 = var_25 ^ x[3] + var_26;
          var_27 = var_22 << 7 | var_22 >> 0x19;
          var_19 = var_19 + var_27;
          var_28 = var_25 << 0x10 | var_25 >> 0x10;
          var_17 = x[0xb] + var_28;
          var_16 = var_16 ^ var_19;
          var_22 = var_26 ^ var_17;
          var_22 = var_22 << 0xc | var_22 >> 0x14;
          var_29 = x[3] + var_26 + var_22;
          var_28 = var_28 ^ var_29;
          var_28 = var_28 << 8 | var_28 >> 0x18;
          var_17 = var_17 + var_28;
          var_28 = var_28 ^ var_18;
          var_22 = var_22 ^ var_17;
          var_22 = var_22 << 7 | var_22 >> 0x19;
          var_28 = var_28 << 0x10 | var_28 >> 0x10;
          var_21 = var_21 + var_28;
          var_24 = var_24 ^ var_21;
          var_24 = var_24 << 0xc | var_24 >> 0x14;
          x[0] = var_18 + var_24;
          var_28 = var_28 ^ x[0];
          var_25 = var_28 << 8 | var_28 >> 0x18;
          var_21 = var_21 + var_25;
          var_24 = var_24 ^ var_21;
          x[5] = var_24 << 7 | var_24 >> 0x19;
          var_16 = var_16 << 0x10 | var_16 >> 0x10;
          var_17 = var_17 + var_16;
          var_27 = var_27 ^ var_17;
          var_28 = var_27 << 0xc | var_27 >> 0x14;
          x[1] = var_19 + var_28;
          var_20 = var_20 + var_22;
          var_29 = var_29 + var_30;
          var_16 = var_16 ^ x[1];
          var_14 = var_14 ^ var_20;
          var_23 = var_23 ^ var_29;
          var_13 = var_13 + -2;
          x[0xc] = var_16 << 8 | var_16 >> 0x18;
          x[0xb] = var_17 + x[0xc];
          var_28 = var_28 ^ x[0xb];
          x[6] = var_28 << 7 | var_28 >> 0x19;
          var_14 = var_14 << 0x10 | var_14 >> 0x10;
          var_15 = var_15 + var_14;
          var_22 = var_22 ^ var_15;
          var_16 = var_22 << 0xc | var_22 >> 0x14;
          x[2] = var_20 + var_16;
          var_14 = var_14 ^ x[2];
          x[0xd] = var_14 << 8 | var_14 >> 0x18;
          x[8] = var_15 + x[0xd];
          var_16 = var_16 ^ x[8];
          var_26 = var_16 << 7 | var_16 >> 0x19;
          var_14 = var_23 << 0x10 | var_23 >> 0x10;
          var_10 = var_10 + var_14;
          var_30 = var_30 ^ var_10;
          var_16 = var_30 << 0xc | var_30 >> 0x14;
          x[3] = var_29 + var_16;
          var_14 = var_14 ^ x[3];
          x[0xe] = var_14 << 8 | var_14 >> 0x18;
          x[9] = var_10 + x[0xe];
          var_16 = var_16 ^ x[9];
          x[4] = var_16 << 7 | var_16 >> 0x19;
          x[7] = var_26;
          x[10] = var_21;
          x[0xf] = var_25;
        } while (0 < var_13);
      }
      buf._0_4_ = x[0] + var_3->input[0];
      uVar9 = buf._0_4_;
      buf._8_4_ = var_3->input[2] + x[2];
      buf._12_4_ = var_3->input[3] + x[3];
      buf._4_4_ = var_3->input[1] + x[1];
      buf._16_4_ = var_3->input[4] + x[4];
      buf._20_4_ = var_3->input[5] + x[5];
      buf._24_4_ = var_3->input[6] + x[6];
      buf._28_4_ = var_3->input[7] + x[7];
      buf._32_4_ = var_3->input[8] + x[8];
      buf._36_4_ = var_3->input[9] + x[9];
      buf._40_4_ = var_3->input[10] + x[10];
      var_31 = var_3->input[0xc] + 1;
      buf._44_4_ = var_3->input[0xb] + x[0xb];
      buf._48_4_ = x[0xc] + var_3->input[0xc];
      buf._52_4_ = x[0xd] + var_3->input[0xd];
      buf._56_4_ = var_3->input[0xe] + x[0xe];
      buf._60_4_ = x[0xf] + var_3->input[0xf];
      if (var_7 == 8) {
        var_3->input[0xc] = var_31;
        if (var_31 == 0) {
          var_31 = var_3->input[0xd] + 1;
          var_3->input[0xd] = var_31;
          goto joined_r0x0018a0dd;
        }
      }
      else {
        var_3->input[0xc] = var_31;
joined_r0x0018a0dd:
        if (var_31 == 0) {
          iVar10 = 0x13;
          goto LAB_0018a413;
        }
      }
      if (var_12 < 0x41) goto LAB_0018a0ed;
      var_32 = 0;
      do {
        pbVar31[var_32] = pbVar12[var_32] ^ buf[var_32];
        pbVar31[var_32 + 1] = pbVar12[var_32 + 1] ^ buf[var_32 + 1];
        pbVar31[var_32 + 2] = pbVar12[var_32 + 2] ^ buf[var_32 + 2];
        pbVar31[var_32 + 3] = pbVar12[var_32 + 3] ^ buf[var_32 + 3];
        pbVar31[var_32 + 4] = pbVar12[var_32 + 4] ^ buf[var_32 + 4];
        pbVar31[var_32 + 5] = pbVar12[var_32 + 5] ^ buf[var_32 + 5];
        pbVar31[var_32 + 6] = pbVar12[var_32 + 6] ^ buf[var_32 + 6];
        pbVar31[var_32 + 7] = pbVar12[var_32 + 7] ^ buf[var_32 + 7];
        var_32 = var_32 + 8;
      } while (var_32 != 0x40);
      var_12 = var_12 - 0x40;
      var_7 = var_3->ivlen;
    } while( true );
  }
  goto LAB_0018a411;
LAB_0018a0ed:
  var_8 = 0;
  var_10 = (type_5)var_12 & 7;
  if ((var_12 & 7) == 0) goto LAB_0018a1e3;
  if (var_10 != 1) {
    if (var_10 != 2) {
      if (var_10 != 3) {
        if (var_10 != 4) {
          if (var_10 != 5) {
            if (var_10 != 6) {
              *pbVar31 = *pbVar12 ^ buf[0];
            }
            var_8 = (type_3)(var_10 != 6);
            pbVar31[var_8] = pbVar12[var_8] ^ buf[var_8];
            var_8 = var_8 + 1;
          }
          pbVar31[var_8] = pbVar12[var_8] ^ buf[var_8];
          var_8 = var_8 + 1;
        }
        pbVar31[var_8] = pbVar12[var_8] ^ buf[var_8];
        var_8 = var_8 + 1;
      }
      pbVar31[var_8] = pbVar12[var_8] ^ buf[var_8];
      var_8 = var_8 + 1;
    }
    pbVar31[var_8] = pbVar12[var_8] ^ buf[var_8];
    var_8 = var_8 + 1;
  }
  pbVar31[var_8] = pbVar12[var_8] ^ buf[var_8];
  for (var_8 = var_8 + 1; var_12 != var_8; var_8 = var_8 + 8) {
LAB_0018a1e3:
    pbVar31[var_8] = pbVar12[var_8] ^ buf[var_8];
    pbVar31[var_8 + 1] = pbVar12[var_8 + 1] ^ buf[var_8 + 1];
    pbVar31[var_8 + 2] = pbVar12[var_8 + 2] ^ buf[var_8 + 2];
    pbVar31[var_8 + 3] = pbVar12[var_8 + 3] ^ buf[var_8 + 3];
    pbVar31[var_8 + 4] = pbVar12[var_8 + 4] ^ buf[var_8 + 4];
    pbVar31[var_8 + 5] = pbVar12[var_8 + 5] ^ buf[var_8 + 5];
    pbVar31[var_8 + 6] = pbVar12[var_8 + 6] ^ buf[var_8 + 6];
    pbVar31[var_8 + 7] = pbVar12[var_8 + 7] ^ buf[var_8 + 7];
  }
  var_3->ksleft = 0x40 - var_12;
  buf._0_4_ = uVar9;
  if (var_12 != 0x40) {
    var_10 = (type_5)-var_12 & 7;
    if ((-var_12 & 7) != 0) {
      if (var_10 != 1) {
        if (var_10 != 2) {
          if (var_10 != 3) {
            if (var_10 != 4) {
              if (var_10 != 5) {
                if (var_10 != 6) {
                  var_3->kstream[var_12] = buf[var_12];
                  var_12 = var_12 + 1;
                }
                var_3->kstream[var_12] = buf[var_12];
                var_12 = var_12 + 1;
              }
              var_3->kstream[var_12] = buf[var_12];
              var_12 = var_12 + 1;
            }
            var_3->kstream[var_12] = buf[var_12];
            var_12 = var_12 + 1;
          }
          var_3->kstream[var_12] = buf[var_12];
          var_12 = var_12 + 1;
        }
        var_3->kstream[var_12] = buf[var_12];
        var_12 = var_12 + 1;
      }
      var_3->kstream[var_12] = buf[var_12];
      var_12 = var_12 + 1;
      if (var_12 == 0x40) goto LAB_0018a411;
    }
    do {
      uVar1 = buf[var_12 + 1];
      uVar2 = buf[var_12 + 2];
      uVar3 = buf[var_12 + 3];
      uVar4 = buf[var_12 + 4];
      uVar5 = buf[var_12 + 5];
      var_3->kstream[var_12] = buf[var_12];
      uVar6 = buf[var_12 + 6];
      uVar7 = buf[var_12 + 7];
      var_3->kstream[var_12 + 1] = uVar1;
      var_3->kstream[var_12 + 2] = uVar2;
      var_3->kstream[var_12 + 3] = uVar3;
      var_3->kstream[var_12 + 4] = uVar4;
      var_3->kstream[var_12 + 5] = uVar5;
      var_3->kstream[var_12 + 6] = uVar6;
      var_3->kstream[var_12 + 7] = uVar7;
      var_12 = var_12 + 8;
    } while (var_12 != 0x40);
  }
LAB_0018a411:
  iVar10 = 0;
LAB_0018a413:
  if (var_33 == *(long *)(var_1 + 0x28)) {
    return iVar10;
  }
                    /* WARNING: Subroutine does not return */
  var_34();
}


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

undefined8 MASKED(int *param_1,byte *param_2,ulong param_3,byte *param_4)

{
  undefined1 uVar1;
  undefined1 uVar2;
  undefined1 uVar3;
  undefined1 uVar4;
  undefined1 uVar5;
  undefined1 uVar6;
  undefined1 uVar7;
  int iVar8;
  undefined8 uVar9;
  byte *pbVar10;
  long lVar11;
  uint uVar12;
  uint uVar13;
  ulong uVar14;
  uint uVar15;
  ulong uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  int iVar21;
  uint uVar22;
  ulong uVar23;
  byte *pbVar24;
  long in_FS_OFFSET;
  int local_138;
  uint local_11c;
  uint local_118;
  uint local_114;
  ulong local_100;
  long local_f0;
  uint local_c8;
  uint uStack_c4;
  uint uStack_c0;
  uint uStack_bc;
  uint local_b8;
  uint uStack_b4;
  uint uStack_b0;
  uint uStack_ac;
  uint local_a8;
  uint uStack_a4;
  uint uStack_a0;
  uint uStack_9c;
  uint local_98;
  uint uStack_94;
  uint uStack_90;
  uint uStack_8c;
  undefined4 local_88;
  undefined4 local_84;
  int local_80;
  int local_7c;
  int local_78;
  int local_74;
  int local_70;
  int local_6c;
  int local_68;
  int local_64;
  int local_60;
  int local_5c;
  int local_58;
  int local_54;
  int local_50;
  int local_4c;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_3 != 0) {
    if (param_1 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("st != NULL","src/stream/chacha/MASKED.c",0x3d);
    }
    if (param_2 == (byte *)0x0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("in != NULL","src/stream/chacha/MASKED.c",0x3e);
    }
    if (param_4 == (byte *)0x0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("out != NULL","src/stream/chacha/MASKED.c",0x3f);
    }
    local_f0 = *(long *)(param_1 + 0x22);
    if (local_f0 == 0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("st->ivlen != 0","src/stream/chacha/MASKED.c",0x40);
    }
    uVar14 = *(ulong *)(param_1 + 0x20);
    local_100 = param_3;
    if (uVar14 != 0) {
      uVar16 = param_3;
      if (uVar14 <= param_3) {
        uVar16 = uVar14;
      }
      uVar23 = 0;
      uVar17 = (uint)uVar16 & 7;
      if ((uVar16 & 7) == 0) goto LAB_001899d0;
      if (uVar17 != 1) {
        if (uVar17 != 2) {
          if (uVar17 != 3) {
            if (uVar17 != 4) {
              if (uVar17 != 5) {
                if (uVar17 != 6) {
                  *param_4 = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ *param_2;
                  uVar14 = *(long *)(param_1 + 0x20) - 1;
                  *(ulong *)(param_1 + 0x20) = uVar14;
                }
                uVar23 = (ulong)(uVar17 != 6);
                param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];
                uVar23 = uVar23 + 1;
                uVar14 = *(long *)(param_1 + 0x20) - 1;
                *(ulong *)(param_1 + 0x20) = uVar14;
              }
              param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];
              uVar23 = uVar23 + 1;
              uVar14 = *(long *)(param_1 + 0x20) - 1;
              *(ulong *)(param_1 + 0x20) = uVar14;
            }
            param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];
            uVar23 = uVar23 + 1;
            uVar14 = *(long *)(param_1 + 0x20) - 1;
            *(ulong *)(param_1 + 0x20) = uVar14;
          }
          param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];
          uVar23 = uVar23 + 1;
          uVar14 = *(long *)(param_1 + 0x20) - 1;
          *(ulong *)(param_1 + 0x20) = uVar14;
        }
        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];
        uVar23 = uVar23 + 1;
        uVar14 = *(long *)(param_1 + 0x20) - 1;
        *(ulong *)(param_1 + 0x20) = uVar14;
      }
      param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];
      uVar14 = *(long *)(param_1 + 0x20) - 1;
      *(ulong *)(param_1 + 0x20) = uVar14;
      for (uVar23 = uVar23 + 1; uVar16 != uVar23; uVar23 = uVar23 + 8) {
LAB_001899d0:
        param_4[uVar23] = *(byte *)((long)param_1 + (0x80 - uVar14)) ^ param_2[uVar23];
        lVar11 = *(long *)(param_1 + 0x20);
        *(long *)(param_1 + 0x20) = lVar11 + -1;
        param_4[uVar23 + 1] =
             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 1];
        lVar11 = *(long *)(param_1 + 0x20);
        *(long *)(param_1 + 0x20) = lVar11 + -1;
        param_4[uVar23 + 2] =
             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 2];
        lVar11 = *(long *)(param_1 + 0x20);
        *(long *)(param_1 + 0x20) = lVar11 + -1;
        param_4[uVar23 + 3] =
             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 3];
        lVar11 = *(long *)(param_1 + 0x20);
        *(long *)(param_1 + 0x20) = lVar11 + -1;
        param_4[uVar23 + 4] =
             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 4];
        lVar11 = *(long *)(param_1 + 0x20);
        *(long *)(param_1 + 0x20) = lVar11 + -1;
        param_4[uVar23 + 5] =
             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 5];
        lVar11 = *(long *)(param_1 + 0x20);
        *(long *)(param_1 + 0x20) = lVar11 + -1;
        param_4[uVar23 + 6] =
             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 6];
        lVar11 = *(long *)(param_1 + 0x20);
        *(long *)(param_1 + 0x20) = lVar11 + -1;
        param_4[uVar23 + 7] =
             *(byte *)((long)param_1 + (0x80 - (lVar11 + -1))) ^ param_2[uVar23 + 7];
        uVar14 = *(long *)(param_1 + 0x20) - 1;
        *(ulong *)(param_1 + 0x20) = uVar14;
      }
      local_100 = param_3 - uVar16;
      if (local_100 == 0) goto LAB_0018a411;
      param_4 = param_4 + uVar16;
      param_2 = param_2 + uVar16;
      local_f0 = *(long *)(param_1 + 0x22);
      param_3 = local_100;
    }
    do {
      pbVar24 = param_4 + (param_3 - local_100);
      local_138 = param_1[0x24];
      pbVar10 = param_2 + (param_3 - local_100);
      uStack_c4 = (uint)((ulong)*(undefined8 *)param_1 >> 0x20);
      local_c8 = (uint)*(undefined8 *)param_1;
      uStack_bc = (uint)((ulong)*(undefined8 *)(param_1 + 2) >> 0x20);
      uStack_c0 = (uint)*(undefined8 *)(param_1 + 2);
      uStack_b4 = (uint)((ulong)*(undefined8 *)(param_1 + 4) >> 0x20);
      local_b8 = (uint)*(undefined8 *)(param_1 + 4);
      uStack_ac = (uint)((ulong)*(undefined8 *)(param_1 + 6) >> 0x20);
      uStack_b0 = (uint)*(undefined8 *)(param_1 + 6);
      uStack_a4 = (uint)((ulong)*(undefined8 *)(param_1 + 8) >> 0x20);
      local_a8 = (uint)*(undefined8 *)(param_1 + 8);
      uStack_9c = (uint)((ulong)*(undefined8 *)(param_1 + 10) >> 0x20);
      uStack_a0 = (uint)*(undefined8 *)(param_1 + 10);
      uStack_94 = (uint)((ulong)*(undefined8 *)(param_1 + 0xc) >> 0x20);
      local_98 = (uint)*(undefined8 *)(param_1 + 0xc);
      uStack_8c = (uint)((ulong)*(undefined8 *)(param_1 + 0xe) >> 0x20);
      uStack_90 = (uint)*(undefined8 *)(param_1 + 0xe);
      if (0 < local_138) {
        local_118 = uStack_ac;
        local_114 = uStack_a0;
        local_11c = uStack_8c;
        do {
          local_98 = local_98 ^ local_c8 + local_b8;
          uStack_94 = uStack_94 ^ uStack_c4 + uStack_b4;
          uStack_90 = uStack_90 ^ uStack_c0 + uStack_b0;
          uVar17 = local_98 << 0x10 | local_98 >> 0x10;
          local_a8 = local_a8 + uVar17;
          uVar12 = local_b8 ^ local_a8;
          uVar13 = uVar12 << 0xc | uVar12 >> 0x14;
          local_c8 = local_c8 + local_b8 + uVar13;
          uVar17 = uVar17 ^ local_c8;
          uVar12 = uVar17 << 8 | uVar17 >> 0x18;
          local_a8 = local_a8 + uVar12;
          uVar13 = uVar13 ^ local_a8;
          uVar22 = uVar13 << 7 | uVar13 >> 0x19;
          uVar17 = uStack_94 << 0x10 | uStack_94 >> 0x10;
          uStack_a4 = uStack_a4 + uVar17;
          uVar13 = uStack_b4 ^ uStack_a4;
          uVar13 = uVar13 << 0xc | uVar13 >> 0x14;
          uStack_c4 = uStack_c4 + uStack_b4 + uVar13;
          uVar17 = uVar17 ^ uStack_c4;
          uVar17 = uVar17 << 8 | uVar17 >> 0x18;
          uStack_a4 = uStack_a4 + uVar17;
          uVar13 = uVar13 ^ uStack_a4;
          uVar18 = uVar13 << 7 | uVar13 >> 0x19;
          uVar13 = uStack_90 << 0x10 | uStack_90 >> 0x10;
          local_114 = local_114 + uVar13;
          uVar19 = uStack_b0 ^ local_114;
          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;
          uStack_c0 = uStack_c0 + uStack_b0 + uVar19;
          uVar13 = uVar13 ^ uStack_c0;
          uVar13 = uVar13 << 8 | uVar13 >> 0x18;
          local_114 = local_114 + uVar13;
          local_c8 = local_c8 + uVar18;
          uVar19 = uVar19 ^ local_114;
          local_11c = local_11c ^ uStack_bc + local_118;
          uVar20 = uVar19 << 7 | uVar19 >> 0x19;
          uStack_c4 = uStack_c4 + uVar20;
          uVar15 = local_11c << 0x10 | local_11c >> 0x10;
          uStack_9c = uStack_9c + uVar15;
          uVar12 = uVar12 ^ uStack_c4;
          uVar19 = local_118 ^ uStack_9c;
          uVar19 = uVar19 << 0xc | uVar19 >> 0x14;
          uStack_bc = uStack_bc + local_118 + uVar19;
          uVar15 = uVar15 ^ uStack_bc;
          uVar15 = uVar15 << 8 | uVar15 >> 0x18;
          uStack_9c = uStack_9c + uVar15;
          uVar15 = uVar15 ^ local_c8;
          uVar19 = uVar19 ^ uStack_9c;
          uVar19 = uVar19 << 7 | uVar19 >> 0x19;
          uVar15 = uVar15 << 0x10 | uVar15 >> 0x10;
          local_114 = local_114 + uVar15;
          uVar18 = uVar18 ^ local_114;
          uVar18 = uVar18 << 0xc | uVar18 >> 0x14;
          local_c8 = local_c8 + uVar18;
          uVar15 = uVar15 ^ local_c8;
          local_11c = uVar15 << 8 | uVar15 >> 0x18;
          local_114 = local_114 + local_11c;
          uVar18 = uVar18 ^ local_114;
          uStack_b4 = uVar18 << 7 | uVar18 >> 0x19;
          uVar12 = uVar12 << 0x10 | uVar12 >> 0x10;
          uStack_9c = uStack_9c + uVar12;
          uVar20 = uVar20 ^ uStack_9c;
          uVar15 = uVar20 << 0xc | uVar20 >> 0x14;
          uStack_c4 = uStack_c4 + uVar15;
          uStack_c0 = uStack_c0 + uVar19;
          uStack_bc = uStack_bc + uVar22;
          uVar12 = uVar12 ^ uStack_c4;
          uVar17 = uVar17 ^ uStack_c0;
          uVar13 = uVar13 ^ uStack_bc;
          local_138 = local_138 + -2;
          local_98 = uVar12 << 8 | uVar12 >> 0x18;
          uStack_9c = uStack_9c + local_98;
          uVar15 = uVar15 ^ uStack_9c;
          uStack_b0 = uVar15 << 7 | uVar15 >> 0x19;
          uVar17 = uVar17 << 0x10 | uVar17 >> 0x10;
          local_a8 = local_a8 + uVar17;
          uVar19 = uVar19 ^ local_a8;
          uVar12 = uVar19 << 0xc | uVar19 >> 0x14;
          uStack_c0 = uStack_c0 + uVar12;
          uVar17 = uVar17 ^ uStack_c0;
          uStack_94 = uVar17 << 8 | uVar17 >> 0x18;
          local_a8 = local_a8 + uStack_94;
          uVar12 = uVar12 ^ local_a8;
          local_118 = uVar12 << 7 | uVar12 >> 0x19;
          uVar17 = uVar13 << 0x10 | uVar13 >> 0x10;
          uStack_a4 = uStack_a4 + uVar17;
          uVar22 = uVar22 ^ uStack_a4;
          uVar12 = uVar22 << 0xc | uVar22 >> 0x14;
          uStack_bc = uStack_bc + uVar12;
          uVar17 = uVar17 ^ uStack_bc;
          uStack_90 = uVar17 << 8 | uVar17 >> 0x18;
          uStack_a4 = uStack_a4 + uStack_90;
          uVar12 = uVar12 ^ uStack_a4;
          local_b8 = uVar12 << 7 | uVar12 >> 0x19;
          uStack_ac = local_118;
          uStack_a0 = local_114;
          uStack_8c = local_11c;
        } while (0 < local_138);
      }
      local_88 = local_c8 + *param_1;
      iVar8 = local_88;
      local_80 = param_1[2] + uStack_c0;
      local_7c = param_1[3] + uStack_bc;
      local_84 = param_1[1] + uStack_c4;
      local_78 = param_1[4] + local_b8;
      local_74 = param_1[5] + uStack_b4;
      local_70 = param_1[6] + uStack_b0;
      local_6c = param_1[7] + uStack_ac;
      local_68 = param_1[8] + local_a8;
      local_64 = param_1[9] + uStack_a4;
      local_60 = param_1[10] + uStack_a0;
      iVar21 = param_1[0xc] + 1;
      local_5c = param_1[0xb] + uStack_9c;
      local_58 = local_98 + param_1[0xc];
      local_54 = uStack_94 + param_1[0xd];
      local_50 = param_1[0xe] + uStack_90;
      local_4c = uStack_8c + param_1[0xf];
      if (local_f0 == 8) {
        param_1[0xc] = iVar21;
        if (iVar21 == 0) {
          iVar21 = param_1[0xd] + 1;
          param_1[0xd] = iVar21;
          goto joined_r0x0018a0dd;
        }
      }
      else {
        param_1[0xc] = iVar21;
joined_r0x0018a0dd:
        if (iVar21 == 0) {
          uVar9 = 0x13;
          goto LAB_0018a413;
        }
      }
      if (local_100 < 0x41) goto LAB_0018a0ed;
      lVar11 = 0;
      do {
        pbVar24[lVar11] = pbVar10[lVar11] ^ *(byte *)((long)&local_88 + lVar11);
        pbVar24[lVar11 + 1] = pbVar10[lVar11 + 1] ^ *(byte *)((long)&local_88 + lVar11 + 1);
        pbVar24[lVar11 + 2] = pbVar10[lVar11 + 2] ^ *(byte *)((long)&local_88 + lVar11 + 2);
        pbVar24[lVar11 + 3] = pbVar10[lVar11 + 3] ^ *(byte *)((long)&local_88 + lVar11 + 3);
        pbVar24[lVar11 + 4] = pbVar10[lVar11 + 4] ^ *(byte *)((long)&local_84 + lVar11);
        pbVar24[lVar11 + 5] = pbVar10[lVar11 + 5] ^ *(byte *)((long)&local_84 + lVar11 + 1);
        pbVar24[lVar11 + 6] = pbVar10[lVar11 + 6] ^ *(byte *)((long)&local_84 + lVar11 + 2);
        pbVar24[lVar11 + 7] = pbVar10[lVar11 + 7] ^ *(byte *)((long)&local_84 + lVar11 + 3);
        lVar11 = lVar11 + 8;
      } while (lVar11 != 0x40);
      local_100 = local_100 - 0x40;
      local_f0 = *(long *)(param_1 + 0x22);
    } while( true );
  }
  goto LAB_0018a411;
LAB_0018a0ed:
  uVar14 = 0;
  uVar17 = (uint)local_100 & 7;
  if ((local_100 & 7) == 0) goto LAB_0018a1e3;
  if (uVar17 != 1) {
    if (uVar17 != 2) {
      if (uVar17 != 3) {
        if (uVar17 != 4) {
          if (uVar17 != 5) {
            if (uVar17 != 6) {
              local_88._0_1_ = (byte)(local_c8 + *param_1);
              *pbVar24 = *pbVar10 ^ (byte)local_88;
            }
            uVar14 = (ulong)(uVar17 != 6);
            pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);
            uVar14 = uVar14 + 1;
          }
          pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);
          uVar14 = uVar14 + 1;
        }
        pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);
        uVar14 = uVar14 + 1;
      }
      pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);
      uVar14 = uVar14 + 1;
    }
    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);
    uVar14 = uVar14 + 1;
  }
  pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);
  for (uVar14 = uVar14 + 1; local_100 != uVar14; uVar14 = uVar14 + 8) {
LAB_0018a1e3:
    pbVar24[uVar14] = pbVar10[uVar14] ^ *(byte *)((long)&local_88 + uVar14);
    pbVar24[uVar14 + 1] = pbVar10[uVar14 + 1] ^ *(byte *)((long)&local_88 + uVar14 + 1);
    pbVar24[uVar14 + 2] = pbVar10[uVar14 + 2] ^ *(byte *)((long)&local_88 + uVar14 + 2);
    pbVar24[uVar14 + 3] = pbVar10[uVar14 + 3] ^ *(byte *)((long)&local_88 + uVar14 + 3);
    pbVar24[uVar14 + 4] = pbVar10[uVar14 + 4] ^ *(byte *)((long)&local_84 + uVar14);
    pbVar24[uVar14 + 5] = pbVar10[uVar14 + 5] ^ *(byte *)((long)&local_84 + uVar14 + 1);
    pbVar24[uVar14 + 6] = pbVar10[uVar14 + 6] ^ *(byte *)((long)&local_84 + uVar14 + 2);
    pbVar24[uVar14 + 7] = pbVar10[uVar14 + 7] ^ *(byte *)((long)&local_84 + uVar14 + 3);
  }
  *(ulong *)(param_1 + 0x20) = 0x40 - local_100;
  local_88 = iVar8;
  if (local_100 != 0x40) {
    uVar17 = (uint)-local_100 & 7;
    if ((-local_100 & 7) != 0) {
      if (uVar17 != 1) {
        if (uVar17 != 2) {
          if (uVar17 != 3) {
            if (uVar17 != 4) {
              if (uVar17 != 5) {
                if (uVar17 != 6) {
                  *(undefined1 *)((long)param_1 + local_100 + 0x40) =
                       *(undefined1 *)((long)&local_88 + local_100);
                  local_100 = local_100 + 1;
                }
                *(undefined1 *)((long)param_1 + local_100 + 0x40) =
                     *(undefined1 *)((long)&local_88 + local_100);
                local_100 = local_100 + 1;
              }
              *(undefined1 *)((long)param_1 + local_100 + 0x40) =
                   *(undefined1 *)((long)&local_88 + local_100);
              local_100 = local_100 + 1;
            }
            *(undefined1 *)((long)param_1 + local_100 + 0x40) =
                 *(undefined1 *)((long)&local_88 + local_100);
            local_100 = local_100 + 1;
          }
          *(undefined1 *)((long)param_1 + local_100 + 0x40) =
               *(undefined1 *)((long)&local_88 + local_100);
          local_100 = local_100 + 1;
        }
        *(undefined1 *)((long)param_1 + local_100 + 0x40) =
             *(undefined1 *)((long)&local_88 + local_100);
        local_100 = local_100 + 1;
      }
      *(undefined1 *)((long)param_1 + local_100 + 0x40) =
           *(undefined1 *)((long)&local_88 + local_100);
      local_100 = local_100 + 1;
      if (local_100 == 0x40) goto LAB_0018a411;
    }
    do {
      uVar1 = *(undefined1 *)((long)&local_88 + local_100 + 1);
      uVar2 = *(undefined1 *)((long)&local_88 + local_100 + 2);
      uVar3 = *(undefined1 *)((long)&local_88 + local_100 + 3);
      uVar4 = *(undefined1 *)((long)&local_84 + local_100);
      uVar5 = *(undefined1 *)((long)&local_84 + local_100 + 1);
      *(undefined1 *)((long)param_1 + local_100 + 0x40) =
           *(undefined1 *)((long)&local_88 + local_100);
      uVar6 = *(undefined1 *)((long)&local_84 + local_100 + 2);
      uVar7 = *(undefined1 *)((long)&local_84 + local_100 + 3);
      *(undefined1 *)((long)param_1 + local_100 + 0x41) = uVar1;
      *(undefined1 *)((long)param_1 + local_100 + 0x42) = uVar2;
      *(undefined1 *)((long)param_1 + local_100 + 0x43) = uVar3;
      *(undefined1 *)((long)param_1 + local_100 + 0x44) = uVar4;
      *(undefined1 *)((long)param_1 + local_100 + 0x45) = uVar5;
      *(undefined1 *)((long)param_1 + local_100 + 0x46) = uVar6;
      *(undefined1 *)((long)param_1 + local_100 + 0x47) = uVar7;
      local_100 = local_100 + 8;
    } while (local_100 != 0x40);
  }
LAB_0018a411:
  uVar9 = 0;
LAB_0018a413:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return uVar9;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

