
/* WARNING: Switch with 1 destination removed at 0x001145e0 */

int rc2_setup_ex(uchar *key,int keylen,int bits,int num_rounds,symmetric_key *skey)

{
  byte bVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  ulong uVar5;
  byte *pbVar6;
  byte *pbVar7;
  byte *pbVar8;
  byte *pbVar9;
  byte *pbVar10;
  byte *pbVar11;
  byte *pbVar12;
  int iVar13;
  long lVar14;
  uint uVar15;
  byte *pbVar16;
  long in_FS_OFFSET;
  undefined8 uStack_a0;
  byte abStack_98 [136];
  long lStack_10;
  
  pbVar6 = abStack_98;
  pbVar7 = abStack_98;
  pbVar8 = abStack_98;
  pbVar9 = abStack_98;
  pbVar10 = abStack_98;
  pbVar11 = abStack_98;
  pbVar12 = abStack_98;
  pbVar16 = abStack_98;
  lStack_10 = *(long *)(in_FS_OFFSET + 0x28);
  if (key == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
    uStack_a0 = (code *)0x1203b8;
    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);
  }
  if (skey == (symmetric_key *)0x0) {
                    /* WARNING: Subroutine does not return */
    uStack_a0 = (code *)0x1203d0;
    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);
  }
  if ((keylen == 0 || 0x80 < keylen) || (0x400 < bits)) {
    iVar4 = 3;
    goto LAB_001207e0;
  }
  iVar4 = 0x400;
  if (bits != 0) {
    iVar4 = bits;
  }
  if ((num_rounds & 0xffffffefU) != 0) {
    iVar4 = 4;
    goto LAB_001207e0;
  }
  if (0 < keylen) {
    uVar5 = 0;
    uVar3 = keylen - 1U & 7;
    if (uVar3 != 0) {
      abStack_98[0] = *key;
      uVar5 = 1;
      if (uVar3 != 1) {
        if (uVar3 != 2) {
          if (uVar3 != 3) {
            if (uVar3 != 4) {
              if (uVar3 != 5) {
                if (uVar3 != 6) {
                  abStack_98[1] = key[1];
                  uVar5 = 2;
                }
                abStack_98[uVar5] = key[uVar5];
                uVar5 = uVar5 + 1;
              }
              abStack_98[uVar5] = key[uVar5];
              uVar5 = uVar5 + 1;
            }
            abStack_98[uVar5] = key[uVar5];
            uVar5 = uVar5 + 1;
          }
          abStack_98[uVar5] = key[uVar5];
          uVar5 = uVar5 + 1;
        }
        abStack_98[uVar5] = key[uVar5];
        uVar5 = uVar5 + 1;
      }
    }
    while( true ) {
      abStack_98[uVar5] = key[uVar5];
      if (uVar5 == keylen - 1U) break;
      abStack_98[uVar5 + 1] = key[uVar5 + 1];
      abStack_98[uVar5 + 2] = key[uVar5 + 2];
      abStack_98[uVar5 + 3] = key[uVar5 + 3];
      abStack_98[uVar5 + 4] = key[uVar5 + 4];
      abStack_98[uVar5 + 5] = key[uVar5 + 5];
      abStack_98[uVar5 + 6] = key[uVar5 + 6];
      abStack_98[uVar5 + 7] = key[uVar5 + 7];
      uVar5 = uVar5 + 8;
    }
  }
  if (keylen < 0x80) {
    uVar3 = -keylen + 0x80U & 7;
    if (uVar3 != 0) {
      if (uVar3 != 1) {
        if (uVar3 != 2) {
          if (uVar3 != 3) {
            if (uVar3 != 4) {
              if (uVar3 != 5) {
                if (uVar3 != 6) {
                  abStack_98[keylen] =
                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];
                  pbVar6 = abStack_98 + 1;
                }
                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];
                pbVar7 = pbVar6 + 1;
              }
              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];
              pbVar8 = pbVar7 + 1;
            }
            pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])];
            pbVar9 = pbVar8 + 1;
          }
          pbVar9[keylen] = permute[(byte)(*pbVar9 + pbVar9[(long)keylen + -1])];
          pbVar10 = pbVar9 + 1;
        }
        pbVar10[keylen] = permute[(byte)(*pbVar10 + pbVar10[(long)keylen + -1])];
        pbVar11 = pbVar10 + 1;
      }
      pbVar11[keylen] = permute[(byte)(*pbVar11 + pbVar11[(long)keylen + -1])];
      pbVar12 = pbVar11 + 1;
      if (pbVar12 == abStack_98 + (ulong)(-keylen + 0x7f) + 1) goto LAB_001205db;
    }
    do {
      bVar1 = permute[(byte)(*pbVar12 + pbVar12[(long)keylen + -1])];
      pbVar12[keylen] = bVar1;
      pbVar12[(long)keylen + 1] = permute[(byte)(bVar1 + pbVar12[1])];
      bVar1 = permute[(byte)(pbVar12[2] + pbVar12[(long)keylen + 1])];
      pbVar12[(long)keylen + 2] = bVar1;
      bVar1 = permute[(byte)(bVar1 + pbVar12[3])];
      pbVar12[(long)keylen + 3] = bVar1;
      bVar1 = permute[(byte)(bVar1 + pbVar12[4])];
      pbVar12[(long)keylen + 4] = bVar1;
      bVar1 = permute[(byte)(bVar1 + pbVar12[5])];
      pbVar12[(long)keylen + 5] = bVar1;
      bVar1 = permute[(byte)(bVar1 + pbVar12[6])];
      pbVar12[(long)keylen + 6] = bVar1;
      pbVar12[(long)keylen + 7] = permute[(byte)(bVar1 + pbVar12[7])];
      pbVar12 = pbVar12 + 8;
    } while (pbVar12 != abStack_98 + (ulong)(-keylen + 0x7f) + 1);
  }
LAB_001205db:
  uVar3 = iVar4 + 7U >> 3;
  uVar15 = 0x80 - uVar3;
  abStack_98[uVar15] = permute[(byte)(0xff >> (-(char)iVar4 & 7U)) & abStack_98[uVar15]];
  uVar3 = 0x7f - uVar3;
  if (-1 < (int)uVar3) {
    lVar14 = (long)(int)uVar3;
    pbVar12 = abStack_98 + lVar14;
    pbVar6 = abStack_98 + (lVar14 - (ulong)uVar3) + -1;
    iVar4 = (int)pbVar12;
    iVar13 = -iVar4 + 0x7f;
    uVar3 = iVar4 - (int)pbVar6 & 3;
    if (uVar3 != 0) {
      if (uVar3 != 1) {
        if (uVar3 != 2) {
          *pbVar12 = permute[abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]];
          pbVar12 = abStack_98 + lVar14 + -1;
        }
        *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];
        pbVar12 = pbVar12 + -1;
      }
      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];
      pbVar12 = pbVar12 + -1;
      if (pbVar12 == pbVar6) goto LAB_0012071d;
    }
    do {
      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];
      iVar2 = (int)(pbVar12 + -1);
      pbVar12[-1] = permute[abStack_98[(uint)(iVar13 + iVar2)] ^ *pbVar12];
      pbVar12[-2] = permute[abStack_98[(uint)(iVar13 + (int)pbVar12 + -2)] ^ pbVar12[-1]];
      pbVar12[-3] = permute[abStack_98[(uint)(-iVar4 + 0x7d + iVar2)] ^ pbVar12[-2]];
      pbVar12 = pbVar12 + -4;
    } while (pbVar12 != pbVar6);
  }
LAB_0012071d:
  do {
    (skey->des).ek[0] = (uint)pbVar16[1] * 0x100 + (uint)*pbVar16;
    (skey->des).ek[1] = (uint)pbVar16[2] + (uint)pbVar16[3] * 0x100;
    (skey->des).ek[2] = (uint)pbVar16[5] * 0x100 + (uint)pbVar16[4];
    (skey->des).ek[3] = (uint)pbVar16[7] * 0x100 + (uint)pbVar16[6];
    (skey->des).ek[4] = (uint)pbVar16[9] * 0x100 + (uint)pbVar16[8];
    (skey->des).ek[5] = (uint)pbVar16[0xb] * 0x100 + (uint)pbVar16[10];
    (skey->des).ek[6] = (uint)pbVar16[0xd] * 0x100 + (uint)pbVar16[0xc];
    (skey->des).ek[7] = (uint)pbVar16[0xf] * 0x100 + (uint)pbVar16[0xe];
    pbVar16 = pbVar16 + 0x10;
    skey = (symmetric_key *)((skey->des).ek + 8);
  } while (pbVar16 != abStack_98 + 0x80);
  iVar4 = 0;
LAB_001207e0:
  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    uStack_a0 = rc2_setup;
    __stack_chk_fail();
  }
  return iVar4;
}



/* WARNING: Switch with 1 destination removed at 0x001145e0 */

uint rc2_setup_ex(byte *param_1,int param_2,int param_3,uint param_4,int *param_5)

{
  byte bVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  ulong uVar6;
  byte *pbVar7;
  byte *pbVar8;
  byte *pbVar9;
  byte *pbVar10;
  byte *pbVar11;
  byte *pbVar12;
  byte *pbVar13;
  int iVar14;
  long lVar15;
  uint uVar16;
  byte *pbVar17;
  long in_FS_OFFSET;
  undefined8 uStack_a0;
  byte abStack_98 [136];
  long lStack_10;
  
  pbVar7 = abStack_98;
  pbVar8 = abStack_98;
  pbVar9 = abStack_98;
  pbVar10 = abStack_98;
  pbVar11 = abStack_98;
  pbVar12 = abStack_98;
  pbVar13 = abStack_98;
  pbVar17 = abStack_98;
  lStack_10 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == (byte *)0x0) {
                    /* WARNING: Subroutine does not return */
    uStack_a0 = (code *)0x1203b8;
    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);
  }
  if (param_5 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    uStack_a0 = (code *)0x1203d0;
    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);
  }
  if ((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)) {
    uVar3 = 3;
    goto LAB_001207e0;
  }
  iVar5 = 0x400;
  if (param_3 != 0) {
    iVar5 = param_3;
  }
  uVar3 = param_4 & 0xffffffef;
  if ((param_4 & 0xffffffef) != 0) {
    uVar3 = 4;
    goto LAB_001207e0;
  }
  if (0 < param_2) {
    uVar6 = 0;
    uVar4 = param_2 - 1U & 7;
    if (uVar4 != 0) {
      abStack_98[0] = *param_1;
      uVar6 = 1;
      if (uVar4 != 1) {
        if (uVar4 != 2) {
          if (uVar4 != 3) {
            if (uVar4 != 4) {
              if (uVar4 != 5) {
                if (uVar4 != 6) {
                  abStack_98[1] = param_1[1];
                  uVar6 = 2;
                }
                abStack_98[uVar6] = param_1[uVar6];
                uVar6 = uVar6 + 1;
              }
              abStack_98[uVar6] = param_1[uVar6];
              uVar6 = uVar6 + 1;
            }
            abStack_98[uVar6] = param_1[uVar6];
            uVar6 = uVar6 + 1;
          }
          abStack_98[uVar6] = param_1[uVar6];
          uVar6 = uVar6 + 1;
        }
        abStack_98[uVar6] = param_1[uVar6];
        uVar6 = uVar6 + 1;
      }
    }
    while( true ) {
      abStack_98[uVar6] = param_1[uVar6];
      if (uVar6 == param_2 - 1U) break;
      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];
      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];
      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];
      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];
      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];
      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];
      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];
      uVar6 = uVar6 + 8;
    }
  }
  if (param_2 < 0x80) {
    uVar4 = -param_2 + 0x80U & 7;
    if (uVar4 != 0) {
      if (uVar4 != 1) {
        if (uVar4 != 2) {
          if (uVar4 != 3) {
            if (uVar4 != 4) {
              if (uVar4 != 5) {
                if (uVar4 != 6) {
                  abStack_98[param_2] =
                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];
                  pbVar7 = abStack_98 + 1;
                }
                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];
                pbVar8 = pbVar7 + 1;
              }
              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];
              pbVar9 = pbVar8 + 1;
            }
            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];
            pbVar10 = pbVar9 + 1;
          }
          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];
          pbVar11 = pbVar10 + 1;
        }
        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];
        pbVar12 = pbVar11 + 1;
      }
      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];
      pbVar13 = pbVar12 + 1;
      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;
    }
    do {
      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];
      pbVar13[param_2] = bVar1;
      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];
      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];
      pbVar13[(long)param_2 + 2] = bVar1;
      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];
      pbVar13[(long)param_2 + 3] = bVar1;
      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];
      pbVar13[(long)param_2 + 4] = bVar1;
      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];
      pbVar13[(long)param_2 + 5] = bVar1;
      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];
      pbVar13[(long)param_2 + 6] = bVar1;
      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];
      pbVar13 = pbVar13 + 8;
    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);
  }
LAB_001205db:
  uVar4 = iVar5 + 7U >> 3;
  uVar16 = 0x80 - uVar4;
  abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]];
  uVar4 = 0x7f - uVar4;
  if (-1 < (int)uVar4) {
    lVar15 = (long)(int)uVar4;
    pbVar13 = abStack_98 + lVar15;
    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;
    iVar5 = (int)pbVar13;
    iVar14 = -iVar5 + 0x7f;
    uVar4 = iVar5 - (int)pbVar7 & 3;
    if (uVar4 != 0) {
      if (uVar4 != 1) {
        if (uVar4 != 2) {
          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];
          pbVar13 = abStack_98 + lVar15 + -1;
        }
        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];
        pbVar13 = pbVar13 + -1;
      }
      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];
      pbVar13 = pbVar13 + -1;
      if (pbVar13 == pbVar7) goto LAB_0012071d;
    }
    do {
      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];
      iVar2 = (int)(pbVar13 + -1);
      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];
      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];
      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];
      pbVar13 = pbVar13 + -4;
    } while (pbVar13 != pbVar7);
  }
LAB_0012071d:
  do {
    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;
    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;
    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];
    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];
    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];
    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];
    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];
    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];
    pbVar17 = pbVar17 + 0x10;
    param_5 = param_5 + 8;
  } while (pbVar17 != abStack_98 + 0x80);
LAB_001207e0:
  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    uStack_a0 = rc2_setup;
    __stack_chk_fail();
  }
  return uVar3;
}


JMP qword ptr [0x001df8f0]
(translation_unit "/* WARNING: Switch with 1 destination removed at 0x001145e0 */\n\nuint rc2_setup_ex(byte *param_1,int param_2,int param_3,uint param_4,int *param_5)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  int iVar14;\n  long lVar15;\n  uint uVar16;\n  byte *pbVar17;\n  long in_FS_OFFSET;\n  undefined8 uStack_a0;\n  byte abStack_98 [136];\n  long lStack_10;\n  \n  pbVar7 = abStack_98;\n  pbVar8 = abStack_98;\n  pbVar9 = abStack_98;\n  pbVar10 = abStack_98;\n  pbVar11 = abStack_98;\n  pbVar12 = abStack_98;\n  pbVar13 = abStack_98;\n  pbVar17 = abStack_98;\n  lStack_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }\n  if (param_5 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }\n  if ((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)) {\n    uVar3 = 3;\n    goto LAB_001207e0;\n  }\n  iVar5 = 0x400;\n  if (param_3 != 0) {\n    iVar5 = param_3;\n  }\n  uVar3 = param_4 & 0xffffffef;\n  if ((param_4 & 0xffffffef) != 0) {\n    uVar3 = 4;\n    goto LAB_001207e0;\n  }\n  if (0 < param_2) {\n    uVar6 = 0;\n    uVar4 = param_2 - 1U & 7;\n    if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }\n  }\n  if (param_2 < 0x80) {\n    uVar4 = -param_2 + 0x80U & 7;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);\n  }\nLAB_001205db:\n  uVar4 = iVar5 + 7U >> 3;\n  uVar16 = 0x80 - uVar4;\n  abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]];\n  uVar4 = 0x7f - uVar4;\n  if (-1 < (int)uVar4) {\n    lVar15 = (long)(int)uVar4;\n    pbVar13 = abStack_98 + lVar15;\n    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;\n    iVar5 = (int)pbVar13;\n    iVar14 = -iVar5 + 0x7f;\n    uVar4 = iVar5 - (int)pbVar7 & 3;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }\n    do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);\n  }\nLAB_0012071d:\n  do {\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  } while (pbVar17 != abStack_98 + 0x80);\nLAB_001207e0:\n  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }\n  return uVar3;\n}\n\n" comment (function_definition "uint rc2_setup_ex(byte *param_1,int param_2,int param_3,uint param_4,int *param_5)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  int iVar14;\n  long lVar15;\n  uint uVar16;\n  byte *pbVar17;\n  long in_FS_OFFSET;\n  undefined8 uStack_a0;\n  byte abStack_98 [136];\n  long lStack_10;\n  \n  pbVar7 = abStack_98;\n  pbVar8 = abStack_98;\n  pbVar9 = abStack_98;\n  pbVar10 = abStack_98;\n  pbVar11 = abStack_98;\n  pbVar12 = abStack_98;\n  pbVar13 = abStack_98;\n  pbVar17 = abStack_98;\n  lStack_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }\n  if (param_5 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }\n  if ((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)) {\n    uVar3 = 3;\n    goto LAB_001207e0;\n  }\n  iVar5 = 0x400;\n  if (param_3 != 0) {\n    iVar5 = param_3;\n  }\n  uVar3 = param_4 & 0xffffffef;\n  if ((param_4 & 0xffffffef) != 0) {\n    uVar3 = 4;\n    goto LAB_001207e0;\n  }\n  if (0 < param_2) {\n    uVar6 = 0;\n    uVar4 = param_2 - 1U & 7;\n    if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }\n  }\n  if (param_2 < 0x80) {\n    uVar4 = -param_2 + 0x80U & 7;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);\n  }\nLAB_001205db:\n  uVar4 = iVar5 + 7U >> 3;\n  uVar16 = 0x80 - uVar4;\n  abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]];\n  uVar4 = 0x7f - uVar4;\n  if (-1 < (int)uVar4) {\n    lVar15 = (long)(int)uVar4;\n    pbVar13 = abStack_98 + lVar15;\n    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;\n    iVar5 = (int)pbVar13;\n    iVar14 = -iVar5 + 0x7f;\n    uVar4 = iVar5 - (int)pbVar7 & 3;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }\n    do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);\n  }\nLAB_0012071d:\n  do {\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  } while (pbVar17 != abStack_98 + 0x80);\nLAB_001207e0:\n  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }\n  return uVar3;\n}" type_identifier (function_declarator "rc2_setup_ex(byte *param_1,int param_2,int param_3,uint param_4,int *param_5)" identifier (parameter_list "(byte *param_1,int param_2,int param_3,uint param_4,int *param_5)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  int iVar14;\n  long lVar15;\n  uint uVar16;\n  byte *pbVar17;\n  long in_FS_OFFSET;\n  undefined8 uStack_a0;\n  byte abStack_98 [136];\n  long lStack_10;\n  \n  pbVar7 = abStack_98;\n  pbVar8 = abStack_98;\n  pbVar9 = abStack_98;\n  pbVar10 = abStack_98;\n  pbVar11 = abStack_98;\n  pbVar12 = abStack_98;\n  pbVar13 = abStack_98;\n  pbVar17 = abStack_98;\n  lStack_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }\n  if (param_5 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }\n  if ((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)) {\n    uVar3 = 3;\n    goto LAB_001207e0;\n  }\n  iVar5 = 0x400;\n  if (param_3 != 0) {\n    iVar5 = param_3;\n  }\n  uVar3 = param_4 & 0xffffffef;\n  if ((param_4 & 0xffffffef) != 0) {\n    uVar3 = 4;\n    goto LAB_001207e0;\n  }\n  if (0 < param_2) {\n    uVar6 = 0;\n    uVar4 = param_2 - 1U & 7;\n    if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }\n  }\n  if (param_2 < 0x80) {\n    uVar4 = -param_2 + 0x80U & 7;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);\n  }\nLAB_001205db:\n  uVar4 = iVar5 + 7U >> 3;\n  uVar16 = 0x80 - uVar4;\n  abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]];\n  uVar4 = 0x7f - uVar4;\n  if (-1 < (int)uVar4) {\n    lVar15 = (long)(int)uVar4;\n    pbVar13 = abStack_98 + lVar15;\n    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;\n    iVar5 = (int)pbVar13;\n    iVar14 = -iVar5 + 0x7f;\n    uVar4 = iVar5 - (int)pbVar7 & 3;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }\n    do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);\n  }\nLAB_0012071d:\n  do {\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  } while (pbVar17 != abStack_98 + 0x80);\nLAB_001207e0:\n  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }\n  return uVar3;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uStack_a0;" type_identifier identifier ;) (declaration "byte abStack_98 [136];" type_identifier (array_declarator "abStack_98 [136]" identifier [ number_literal ]) ;) (declaration "long lStack_10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "pbVar7 = abStack_98;" (assignment_expression "pbVar7 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar8 = abStack_98;" (assignment_expression "pbVar8 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar9 = abStack_98;" (assignment_expression "pbVar9 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar10 = abStack_98;" (assignment_expression "pbVar10 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar11 = abStack_98;" (assignment_expression "pbVar11 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar12 = abStack_98;" (assignment_expression "pbVar12 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar13 = abStack_98;" (assignment_expression "pbVar13 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar17 = abStack_98;" (assignment_expression "pbVar17 = abStack_98" identifier = identifier) ;) (expression_statement "lStack_10 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lStack_10 = *(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_1 == (byte *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (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    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }" { comment (expression_statement "uStack_a0 = (code *)0x1203b8;" (assignment_expression "uStack_a0 = (code *)0x1203b8" identifier = (cast_expression "(code *)0x1203b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);" (call_expression "crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c)" identifier (argument_list "("key != NULL","src/ciphers/rc2.c",0x4c)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/ciphers/rc2.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_5 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }" if (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (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    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }" { comment (expression_statement "uStack_a0 = (code *)0x1203d0;" (assignment_expression "uStack_a0 = (code *)0x1203d0" identifier = (cast_expression "(code *)0x1203d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d)" identifier (argument_list "("skey != NULL","src/ciphers/rc2.c",0x4d)" ( (string_literal ""skey != NULL"" " string_content ") , (string_literal ""src/ciphers/rc2.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if ((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)) {\n    uVar3 = 3;\n    goto LAB_001207e0;\n  }" if (parenthesized_expression "((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3))" ( (binary_expression "(param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)" (parenthesized_expression "(param_2 == 0 || 0x80 < param_2)" ( (binary_expression "param_2 == 0 || 0x80 < param_2" (binary_expression "param_2 == 0" identifier == number_literal) || (binary_expression "0x80 < param_2" number_literal < identifier)) )) || (parenthesized_expression "(0x400 < param_3)" ( (binary_expression "0x400 < param_3" number_literal < identifier) ))) )) (compound_statement "{\n    uVar3 = 3;\n    goto LAB_001207e0;\n  }" { (expression_statement "uVar3 = 3;" (assignment_expression "uVar3 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_001207e0;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0x400;" (assignment_expression "iVar5 = 0x400" identifier = number_literal) ;) (if_statement "if (param_3 != 0) {\n    iVar5 = param_3;\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar5 = param_3;\n  }" { (expression_statement "iVar5 = param_3;" (assignment_expression "iVar5 = param_3" identifier = identifier) ;) })) (expression_statement "uVar3 = param_4 & 0xffffffef;" (assignment_expression "uVar3 = param_4 & 0xffffffef" identifier = (binary_expression "param_4 & 0xffffffef" identifier & number_literal)) ;) (if_statement "if ((param_4 & 0xffffffef) != 0) {\n    uVar3 = 4;\n    goto LAB_001207e0;\n  }" if (parenthesized_expression "((param_4 & 0xffffffef) != 0)" ( (binary_expression "(param_4 & 0xffffffef) != 0" (parenthesized_expression "(param_4 & 0xffffffef)" ( (binary_expression "param_4 & 0xffffffef" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar3 = 4;\n    goto LAB_001207e0;\n  }" { (expression_statement "uVar3 = 4;" (assignment_expression "uVar3 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_001207e0;" goto statement_identifier ;) })) (if_statement "if (0 < param_2) {\n    uVar6 = 0;\n    uVar4 = param_2 - 1U & 7;\n    if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }\n  }" if (parenthesized_expression "(0 < param_2)" ( (binary_expression "0 < param_2" number_literal < identifier) )) (compound_statement "{\n    uVar6 = 0;\n    uVar4 = param_2 - 1U & 7;\n    if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }\n  }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = param_2 - 1U & 7;" (assignment_expression "uVar4 = param_2 - 1U & 7" identifier = (binary_expression "param_2 - 1U & 7" (binary_expression "param_2 - 1U" identifier - number_literal) & number_literal)) ;) (if_statement "if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }" { (expression_statement "abStack_98[0] = *param_1;" (assignment_expression "abStack_98[0] = *param_1" (subscript_expression "abStack_98[0]" identifier [ number_literal ]) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (if_statement "if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }" if (parenthesized_expression "(uVar4 != 1)" ( (binary_expression "uVar4 != 1" identifier != number_literal) )) (compound_statement "{\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }" { (if_statement "if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }" if (parenthesized_expression "(uVar4 != 2)" ( (binary_expression "uVar4 != 2" identifier != number_literal) )) (compound_statement "{\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }" { (if_statement "if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }" if (parenthesized_expression "(uVar4 != 3)" ( (binary_expression "uVar4 != 3" identifier != number_literal) )) (compound_statement "{\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }" { (if_statement "if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }" if (parenthesized_expression "(uVar4 != 4)" ( (binary_expression "uVar4 != 4" identifier != number_literal) )) (compound_statement "{\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }" { (if_statement "if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }" if (parenthesized_expression "(uVar4 != 5)" ( (binary_expression "uVar4 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }" { (if_statement "if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }" if (parenthesized_expression "(uVar4 != 6)" ( (binary_expression "uVar4 != 6" identifier != number_literal) )) (compound_statement "{\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }" { (expression_statement "abStack_98[1] = param_1[1];" (assignment_expression "abStack_98[1] = param_1[1]" (subscript_expression "abStack_98[1]" identifier [ number_literal ]) = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = 2;" (assignment_expression "uVar6 = 2" identifier = number_literal) ;) })) (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" identifier [ identifier ]) = (subscript_expression "param_1[uVar6]" identifier [ identifier ])) ;) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) })) (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" identifier [ identifier ]) = (subscript_expression "param_1[uVar6]" identifier [ identifier ])) ;) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) })) (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" identifier [ identifier ]) = (subscript_expression "param_1[uVar6]" identifier [ identifier ])) ;) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) })) (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" identifier [ identifier ]) = (subscript_expression "param_1[uVar6]" identifier [ identifier ])) ;) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) })) (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" identifier [ identifier ]) = (subscript_expression "param_1[uVar6]" identifier [ identifier ])) ;) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) })) })) (while_statement "while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }" { (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" identifier [ identifier ]) = (subscript_expression "param_1[uVar6]" identifier [ identifier ])) ;) (if_statement "if (uVar6 == param_2 - 1U) break;" if (parenthesized_expression "(uVar6 == param_2 - 1U)" ( (binary_expression "uVar6 == param_2 - 1U" identifier == (binary_expression "param_2 - 1U" identifier - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "abStack_98[uVar6 + 1] = param_1[uVar6 + 1];" (assignment_expression "abStack_98[uVar6 + 1] = param_1[uVar6 + 1]" (subscript_expression "abStack_98[uVar6 + 1]" identifier [ (binary_expression "uVar6 + 1" identifier + number_literal) ]) = (subscript_expression "param_1[uVar6 + 1]" identifier [ (binary_expression "uVar6 + 1" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar6 + 2] = param_1[uVar6 + 2];" (assignment_expression "abStack_98[uVar6 + 2] = param_1[uVar6 + 2]" (subscript_expression "abStack_98[uVar6 + 2]" identifier [ (binary_expression "uVar6 + 2" identifier + number_literal) ]) = (subscript_expression "param_1[uVar6 + 2]" identifier [ (binary_expression "uVar6 + 2" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar6 + 3] = param_1[uVar6 + 3];" (assignment_expression "abStack_98[uVar6 + 3] = param_1[uVar6 + 3]" (subscript_expression "abStack_98[uVar6 + 3]" identifier [ (binary_expression "uVar6 + 3" identifier + number_literal) ]) = (subscript_expression "param_1[uVar6 + 3]" identifier [ (binary_expression "uVar6 + 3" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar6 + 4] = param_1[uVar6 + 4];" (assignment_expression "abStack_98[uVar6 + 4] = param_1[uVar6 + 4]" (subscript_expression "abStack_98[uVar6 + 4]" identifier [ (binary_expression "uVar6 + 4" identifier + number_literal) ]) = (subscript_expression "param_1[uVar6 + 4]" identifier [ (binary_expression "uVar6 + 4" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar6 + 5] = param_1[uVar6 + 5];" (assignment_expression "abStack_98[uVar6 + 5] = param_1[uVar6 + 5]" (subscript_expression "abStack_98[uVar6 + 5]" identifier [ (binary_expression "uVar6 + 5" identifier + number_literal) ]) = (subscript_expression "param_1[uVar6 + 5]" identifier [ (binary_expression "uVar6 + 5" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar6 + 6] = param_1[uVar6 + 6];" (assignment_expression "abStack_98[uVar6 + 6] = param_1[uVar6 + 6]" (subscript_expression "abStack_98[uVar6 + 6]" identifier [ (binary_expression "uVar6 + 6" identifier + number_literal) ]) = (subscript_expression "param_1[uVar6 + 6]" identifier [ (binary_expression "uVar6 + 6" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar6 + 7] = param_1[uVar6 + 7];" (assignment_expression "abStack_98[uVar6 + 7] = param_1[uVar6 + 7]" (subscript_expression "abStack_98[uVar6 + 7]" identifier [ (binary_expression "uVar6 + 7" identifier + number_literal) ]) = (subscript_expression "param_1[uVar6 + 7]" identifier [ (binary_expression "uVar6 + 7" identifier + number_literal) ])) ;) (expression_statement "uVar6 = uVar6 + 8;" (assignment_expression "uVar6 = uVar6 + 8" identifier = (binary_expression "uVar6 + 8" identifier + number_literal)) ;) })) })) (if_statement "if (param_2 < 0x80) {\n    uVar4 = -param_2 + 0x80U & 7;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);\n  }" if (parenthesized_expression "(param_2 < 0x80)" ( (binary_expression "param_2 < 0x80" identifier < number_literal) )) (compound_statement "{\n    uVar4 = -param_2 + 0x80U & 7;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);\n  }" { (expression_statement "uVar4 = -param_2 + 0x80U & 7;" (assignment_expression "uVar4 = -param_2 + 0x80U & 7" identifier = (binary_expression "-param_2 + 0x80U & 7" (binary_expression "-param_2 + 0x80U" (unary_expression "-param_2" - identifier) + number_literal) & number_literal)) ;) (if_statement "if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }" { (if_statement "if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }" if (parenthesized_expression "(uVar4 != 1)" ( (binary_expression "uVar4 != 1" identifier != number_literal) )) (compound_statement "{\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }" { (if_statement "if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }" if (parenthesized_expression "(uVar4 != 2)" ( (binary_expression "uVar4 != 2" identifier != number_literal) )) (compound_statement "{\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }" { (if_statement "if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }" if (parenthesized_expression "(uVar4 != 3)" ( (binary_expression "uVar4 != 3" identifier != number_literal) )) (compound_statement "{\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }" { (if_statement "if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }" if (parenthesized_expression "(uVar4 != 4)" ( (binary_expression "uVar4 != 4" identifier != number_literal) )) (compound_statement "{\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }" { (if_statement "if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }" if (parenthesized_expression "(uVar4 != 5)" ( (binary_expression "uVar4 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }" { (if_statement "if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }" if (parenthesized_expression "(uVar4 != 6)" ( (binary_expression "uVar4 != 6" identifier != number_literal) )) (compound_statement "{\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }" { (expression_statement "abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];" (assignment_expression "abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])]" (subscript_expression "abStack_98[param_2]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(abStack_98[0] + abStack_98[(long)param_2 + -1])" ( (binary_expression "abStack_98[0] + abStack_98[(long)param_2 + -1]" (subscript_expression "abStack_98[0]" identifier [ number_literal ]) + (subscript_expression "abStack_98[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar7 = abStack_98 + 1;" (assignment_expression "pbVar7 = abStack_98 + 1" identifier = (binary_expression "abStack_98 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];" (assignment_expression "pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])]" (subscript_expression "pbVar7[param_2]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar7 + pbVar7[(long)param_2 + -1])" ( (binary_expression "*pbVar7 + pbVar7[(long)param_2 + -1]" (pointer_expression "*pbVar7" * identifier) + (subscript_expression "pbVar7[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar8 = pbVar7 + 1;" (assignment_expression "pbVar8 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];" (assignment_expression "pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])]" (subscript_expression "pbVar8[param_2]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar8 + pbVar8[(long)param_2 + -1])" ( (binary_expression "*pbVar8 + pbVar8[(long)param_2 + -1]" (pointer_expression "*pbVar8" * identifier) + (subscript_expression "pbVar8[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar9 = pbVar8 + 1;" (assignment_expression "pbVar9 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];" (assignment_expression "pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])]" (subscript_expression "pbVar9[param_2]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar9 + pbVar9[(long)param_2 + -1])" ( (binary_expression "*pbVar9 + pbVar9[(long)param_2 + -1]" (pointer_expression "*pbVar9" * identifier) + (subscript_expression "pbVar9[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar10 = pbVar9 + 1;" (assignment_expression "pbVar10 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];" (assignment_expression "pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])]" (subscript_expression "pbVar10[param_2]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar10 + pbVar10[(long)param_2 + -1])" ( (binary_expression "*pbVar10 + pbVar10[(long)param_2 + -1]" (pointer_expression "*pbVar10" * identifier) + (subscript_expression "pbVar10[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar11 = pbVar10 + 1;" (assignment_expression "pbVar11 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];" (assignment_expression "pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])]" (subscript_expression "pbVar11[param_2]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar11 + pbVar11[(long)param_2 + -1])" ( (binary_expression "*pbVar11 + pbVar11[(long)param_2 + -1]" (pointer_expression "*pbVar11" * identifier) + (subscript_expression "pbVar11[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar12 = pbVar11 + 1;" (assignment_expression "pbVar12 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];" (assignment_expression "pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])]" (subscript_expression "pbVar12[param_2]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar12 + pbVar12[(long)param_2 + -1])" ( (binary_expression "*pbVar12 + pbVar12[(long)param_2 + -1]" (pointer_expression "*pbVar12" * identifier) + (subscript_expression "pbVar12[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar13 = pbVar12 + 1;" (assignment_expression "pbVar13 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;" if (parenthesized_expression "(pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1)" ( (binary_expression "pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1" identifier == (binary_expression "abStack_98 + (ulong)(-param_2 + 0x7f) + 1" (binary_expression "abStack_98 + (ulong)(-param_2 + 0x7f)" identifier + (call_expression "(ulong)(-param_2 + 0x7f)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(-param_2 + 0x7f)" ( (binary_expression "-param_2 + 0x7f" (unary_expression "-param_2" - identifier) + number_literal) )))) + number_literal)) )) (goto_statement "goto LAB_001205db;" goto statement_identifier ;)) })) (do_statement "do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);" do (compound_statement "{\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    }" { (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])]" identifier = (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar13 + pbVar13[(long)param_2 + -1])" ( (binary_expression "*pbVar13 + pbVar13[(long)param_2 + -1]" (pointer_expression "*pbVar13" * identifier) + (subscript_expression "pbVar13[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar13[param_2] = bVar1;" (assignment_expression "pbVar13[param_2] = bVar1" (subscript_expression "pbVar13[param_2]" identifier [ identifier ]) = identifier) ;) (expression_statement "pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];" (assignment_expression "pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])]" (subscript_expression "pbVar13[(long)param_2 + 1]" identifier [ (binary_expression "(long)param_2 + 1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(bVar1 + pbVar13[1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar13[1])" ( (binary_expression "bVar1 + pbVar13[1]" identifier + (subscript_expression "pbVar13[1]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])]" identifier = (subscript_expression "(&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pbVar13[2] + pbVar13[(long)param_2 + 1])" ( (binary_expression "pbVar13[2] + pbVar13[(long)param_2 + 1]" (subscript_expression "pbVar13[2]" identifier [ number_literal ]) + (subscript_expression "pbVar13[(long)param_2 + 1]" identifier [ (binary_expression "(long)param_2 + 1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar13[(long)param_2 + 2] = bVar1;" (assignment_expression "pbVar13[(long)param_2 + 2] = bVar1" (subscript_expression "pbVar13[(long)param_2 + 2]" identifier [ (binary_expression "(long)param_2 + 2" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = identifier) ;) (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])]" identifier = (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(bVar1 + pbVar13[3])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar13[3])" ( (binary_expression "bVar1 + pbVar13[3]" identifier + (subscript_expression "pbVar13[3]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "pbVar13[(long)param_2 + 3] = bVar1;" (assignment_expression "pbVar13[(long)param_2 + 3] = bVar1" (subscript_expression "pbVar13[(long)param_2 + 3]" identifier [ (binary_expression "(long)param_2 + 3" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = identifier) ;) (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])]" identifier = (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(bVar1 + pbVar13[4])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar13[4])" ( (binary_expression "bVar1 + pbVar13[4]" identifier + (subscript_expression "pbVar13[4]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "pbVar13[(long)param_2 + 4] = bVar1;" (assignment_expression "pbVar13[(long)param_2 + 4] = bVar1" (subscript_expression "pbVar13[(long)param_2 + 4]" identifier [ (binary_expression "(long)param_2 + 4" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = identifier) ;) (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])]" identifier = (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(bVar1 + pbVar13[5])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar13[5])" ( (binary_expression "bVar1 + pbVar13[5]" identifier + (subscript_expression "pbVar13[5]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "pbVar13[(long)param_2 + 5] = bVar1;" (assignment_expression "pbVar13[(long)param_2 + 5] = bVar1" (subscript_expression "pbVar13[(long)param_2 + 5]" identifier [ (binary_expression "(long)param_2 + 5" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = identifier) ;) (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])]" identifier = (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(bVar1 + pbVar13[6])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar13[6])" ( (binary_expression "bVar1 + pbVar13[6]" identifier + (subscript_expression "pbVar13[6]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "pbVar13[(long)param_2 + 6] = bVar1;" (assignment_expression "pbVar13[(long)param_2 + 6] = bVar1" (subscript_expression "pbVar13[(long)param_2 + 6]" identifier [ (binary_expression "(long)param_2 + 6" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = identifier) ;) (expression_statement "pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];" (assignment_expression "pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])]" (subscript_expression "pbVar13[(long)param_2 + 7]" identifier [ (binary_expression "(long)param_2 + 7" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(bVar1 + pbVar13[7])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar13[7])" ( (binary_expression "bVar1 + pbVar13[7]" identifier + (subscript_expression "pbVar13[7]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "pbVar13 = pbVar13 + 8;" (assignment_expression "pbVar13 = pbVar13 + 8" identifier = (binary_expression "pbVar13 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1)" ( (binary_expression "pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1" identifier != (binary_expression "abStack_98 + (ulong)(-param_2 + 0x7f) + 1" (binary_expression "abStack_98 + (ulong)(-param_2 + 0x7f)" identifier + (call_expression "(ulong)(-param_2 + 0x7f)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(-param_2 + 0x7f)" ( (binary_expression "-param_2 + 0x7f" (unary_expression "-param_2" - identifier) + number_literal) )))) + number_literal)) )) ;) })) (labeled_statement "LAB_001205db:\n  uVar4 = iVar5 + 7U >> 3;" statement_identifier : (expression_statement "uVar4 = iVar5 + 7U >> 3;" (assignment_expression "uVar4 = iVar5 + 7U >> 3" identifier = (binary_expression "iVar5 + 7U >> 3" (binary_expression "iVar5 + 7U" identifier + number_literal) >> number_literal)) ;)) (expression_statement "uVar16 = 0x80 - uVar4;" (assignment_expression "uVar16 = 0x80 - uVar4" identifier = (binary_expression "0x80 - uVar4" number_literal - identifier)) ;) (expression_statement "abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]];" (assignment_expression "abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]]" (subscript_expression "abStack_98[uVar16]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]" (call_expression "(byte)(0xff >> (-(char)iVar5 & 7U))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(0xff >> (-(char)iVar5 & 7U))" ( (binary_expression "0xff >> (-(char)iVar5 & 7U)" number_literal >> (parenthesized_expression "(-(char)iVar5 & 7U)" ( (binary_expression "-(char)iVar5 & 7U" (unary_expression "-(char)iVar5" - (cast_expression "(char)iVar5" ( (type_descriptor "char" primitive_type) ) identifier)) & number_literal) ))) ))) & (subscript_expression "abStack_98[uVar16]" identifier [ identifier ])) ])) ;) (expression_statement "uVar4 = 0x7f - uVar4;" (assignment_expression "uVar4 = 0x7f - uVar4" identifier = (binary_expression "0x7f - uVar4" number_literal - identifier)) ;) (if_statement "if (-1 < (int)uVar4) {\n    lVar15 = (long)(int)uVar4;\n    pbVar13 = abStack_98 + lVar15;\n    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;\n    iVar5 = (int)pbVar13;\n    iVar14 = -iVar5 + 0x7f;\n    uVar4 = iVar5 - (int)pbVar7 & 3;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }\n    do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);\n  }" if (parenthesized_expression "(-1 < (int)uVar4)" ( (binary_expression "-1 < (int)uVar4" number_literal < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    lVar15 = (long)(int)uVar4;\n    pbVar13 = abStack_98 + lVar15;\n    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;\n    iVar5 = (int)pbVar13;\n    iVar14 = -iVar5 + 0x7f;\n    uVar4 = iVar5 - (int)pbVar7 & 3;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }\n    do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);\n  }" { (expression_statement "lVar15 = (long)(int)uVar4;" (assignment_expression "lVar15 = (long)(int)uVar4" identifier = (cast_expression "(long)(int)uVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar13 = abStack_98 + lVar15;" (assignment_expression "pbVar13 = abStack_98 + lVar15" identifier = (binary_expression "abStack_98 + lVar15" identifier + identifier)) ;) (expression_statement "pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;" (assignment_expression "pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1" identifier = (binary_expression "abStack_98 + (lVar15 - (ulong)uVar4) + -1" (binary_expression "abStack_98 + (lVar15 - (ulong)uVar4)" identifier + (parenthesized_expression "(lVar15 - (ulong)uVar4)" ( (binary_expression "lVar15 - (ulong)uVar4" identifier - (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ))) + number_literal)) ;) (expression_statement "iVar5 = (int)pbVar13;" (assignment_expression "iVar5 = (int)pbVar13" identifier = (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar14 = -iVar5 + 0x7f;" (assignment_expression "iVar14 = -iVar5 + 0x7f" identifier = (binary_expression "-iVar5 + 0x7f" (unary_expression "-iVar5" - identifier) + number_literal)) ;) (expression_statement "uVar4 = iVar5 - (int)pbVar7 & 3;" (assignment_expression "uVar4 = iVar5 - (int)pbVar7 & 3" identifier = (binary_expression "iVar5 - (int)pbVar7 & 3" (binary_expression "iVar5 - (int)pbVar7" identifier - (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal)) ;) (if_statement "if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }" { (if_statement "if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }" if (parenthesized_expression "(uVar4 != 1)" ( (binary_expression "uVar4 != 1" identifier != number_literal) )) (compound_statement "{\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }" { (if_statement "if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }" if (parenthesized_expression "(uVar4 != 2)" ( (binary_expression "uVar4 != 2" identifier != number_literal) )) (compound_statement "{\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }" { (expression_statement "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];" (assignment_expression "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]]" (pointer_expression "*pbVar13" * identifier) = (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]" (subscript_expression "abStack_98[(uint)(iVar14 + iVar5)]" identifier [ (call_expression "(uint)(iVar14 + iVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 + iVar5)" ( (binary_expression "iVar14 + iVar5" identifier + identifier) ))) ]) ^ (subscript_expression "abStack_98[lVar15 + 1]" identifier [ (binary_expression "lVar15 + 1" identifier + number_literal) ])) ])) ;) (expression_statement "pbVar13 = abStack_98 + lVar15 + -1;" (assignment_expression "pbVar13 = abStack_98 + lVar15 + -1" identifier = (binary_expression "abStack_98 + lVar15 + -1" (binary_expression "abStack_98 + lVar15" identifier + identifier) + number_literal)) ;) })) (expression_statement "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];" (assignment_expression "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (pointer_expression "*pbVar13" * identifier) = (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]" (subscript_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)]" identifier [ (call_expression "(uint)(iVar14 + (int)pbVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 + (int)pbVar13)" ( (binary_expression "iVar14 + (int)pbVar13" identifier + (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ]) ^ (subscript_expression "pbVar13[1]" identifier [ number_literal ])) ])) ;) (expression_statement "pbVar13 = pbVar13 + -1;" (assignment_expression "pbVar13 = pbVar13 + -1" identifier = (binary_expression "pbVar13 + -1" identifier + number_literal)) ;) })) (expression_statement "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];" (assignment_expression "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (pointer_expression "*pbVar13" * identifier) = (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]" (subscript_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)]" identifier [ (call_expression "(uint)(iVar14 + (int)pbVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 + (int)pbVar13)" ( (binary_expression "iVar14 + (int)pbVar13" identifier + (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ]) ^ (subscript_expression "pbVar13[1]" identifier [ number_literal ])) ])) ;) (expression_statement "pbVar13 = pbVar13 + -1;" (assignment_expression "pbVar13 = pbVar13 + -1" identifier = (binary_expression "pbVar13 + -1" identifier + number_literal)) ;) (if_statement "if (pbVar13 == pbVar7) goto LAB_0012071d;" if (parenthesized_expression "(pbVar13 == pbVar7)" ( (binary_expression "pbVar13 == pbVar7" identifier == identifier) )) (goto_statement "goto LAB_0012071d;" goto statement_identifier ;)) })) (do_statement "do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);" do (compound_statement "{\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    }" { (expression_statement "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];" (assignment_expression "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (pointer_expression "*pbVar13" * identifier) = (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]" (subscript_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)]" identifier [ (call_expression "(uint)(iVar14 + (int)pbVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 + (int)pbVar13)" ( (binary_expression "iVar14 + (int)pbVar13" identifier + (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ]) ^ (subscript_expression "pbVar13[1]" identifier [ number_literal ])) ])) ;) (expression_statement "iVar2 = (int)(pbVar13 + -1);" (assignment_expression "iVar2 = (int)(pbVar13 + -1)" identifier = (cast_expression "(int)(pbVar13 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar13 + -1)" ( (binary_expression "pbVar13 + -1" identifier + number_literal) )))) ;) (expression_statement "pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];" (assignment_expression "pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13]" (subscript_expression "pbVar13[-1]" identifier [ number_literal ]) = (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13" (subscript_expression "abStack_98[(uint)(iVar14 + iVar2)]" identifier [ (call_expression "(uint)(iVar14 + iVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 + iVar2)" ( (binary_expression "iVar14 + iVar2" identifier + identifier) ))) ]) ^ (pointer_expression "*pbVar13" * identifier)) ])) ;) (expression_statement "pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];" (assignment_expression "pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]]" (subscript_expression "pbVar13[-2]" identifier [ number_literal ]) = (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]" (subscript_expression "abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)]" identifier [ (call_expression "(uint)(iVar14 + (int)pbVar13 + -2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 + (int)pbVar13 + -2)" ( (binary_expression "iVar14 + (int)pbVar13 + -2" (binary_expression "iVar14 + (int)pbVar13" identifier + (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) ))) ]) ^ (subscript_expression "pbVar13[-1]" identifier [ number_literal ])) ])) ;) (expression_statement "pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];" (assignment_expression "pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]]" (subscript_expression "pbVar13[-3]" identifier [ number_literal ]) = (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]" (subscript_expression "abStack_98[(uint)(-iVar5 + 0x7d + iVar2)]" identifier [ (call_expression "(uint)(-iVar5 + 0x7d + iVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-iVar5 + 0x7d + iVar2)" ( (binary_expression "-iVar5 + 0x7d + iVar2" (binary_expression "-iVar5 + 0x7d" (unary_expression "-iVar5" - identifier) + number_literal) + identifier) ))) ]) ^ (subscript_expression "pbVar13[-2]" identifier [ number_literal ])) ])) ;) (expression_statement "pbVar13 = pbVar13 + -4;" (assignment_expression "pbVar13 = pbVar13 + -4" identifier = (binary_expression "pbVar13 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar13 != pbVar7)" ( (binary_expression "pbVar13 != pbVar7" identifier != identifier) )) ;) })) (labeled_statement "LAB_0012071d:\n  do {\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  } while (pbVar17 != abStack_98 + 0x80);" statement_identifier : (do_statement "do {\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  } while (pbVar17 != abStack_98 + 0x80);" do (compound_statement "{\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  }" { (expression_statement "*param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;" (assignment_expression "*param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17" (pointer_expression "*param_5" * identifier) = (binary_expression "(uint)pbVar17[1] * 0x100 + (uint)*pbVar17" (binary_expression "(uint)pbVar17[1] * 0x100" (cast_expression "(uint)pbVar17[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[1]" identifier [ number_literal ])) * number_literal) + (binary_expression "(uint)*pbVar17" (parenthesized_expression "(uint)" ( identifier )) * identifier))) ;) (expression_statement "param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;" (assignment_expression "param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (binary_expression "(uint)pbVar17[2] + (uint)pbVar17[3] * 0x100" (cast_expression "(uint)pbVar17[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[2]" identifier [ number_literal ])) + (binary_expression "(uint)pbVar17[3] * 0x100" (cast_expression "(uint)pbVar17[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[3]" identifier [ number_literal ])) * number_literal))) ;) (expression_statement "param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];" (assignment_expression "param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4]" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (binary_expression "(uint)pbVar17[5] * 0x100 + (uint)pbVar17[4]" (binary_expression "(uint)pbVar17[5] * 0x100" (cast_expression "(uint)pbVar17[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[5]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar17[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[4]" identifier [ number_literal ])))) ;) (expression_statement "param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];" (assignment_expression "param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6]" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (binary_expression "(uint)pbVar17[7] * 0x100 + (uint)pbVar17[6]" (binary_expression "(uint)pbVar17[7] * 0x100" (cast_expression "(uint)pbVar17[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[7]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar17[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[6]" identifier [ number_literal ])))) ;) (expression_statement "param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];" (assignment_expression "param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8]" (subscript_expression "param_5[4]" identifier [ number_literal ]) = (binary_expression "(uint)pbVar17[9] * 0x100 + (uint)pbVar17[8]" (binary_expression "(uint)pbVar17[9] * 0x100" (cast_expression "(uint)pbVar17[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[9]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar17[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[8]" identifier [ number_literal ])))) ;) (expression_statement "param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];" (assignment_expression "param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10]" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (binary_expression "(uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10]" (binary_expression "(uint)pbVar17[0xb] * 0x100" (cast_expression "(uint)pbVar17[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[0xb]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar17[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[10]" identifier [ number_literal ])))) ;) (expression_statement "param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];" (assignment_expression "param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc]" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (binary_expression "(uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc]" (binary_expression "(uint)pbVar17[0xd] * 0x100" (cast_expression "(uint)pbVar17[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[0xd]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar17[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[0xc]" identifier [ number_literal ])))) ;) (expression_statement "param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];" (assignment_expression "param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe]" (subscript_expression "param_5[7]" identifier [ number_literal ]) = (binary_expression "(uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe]" (binary_expression "(uint)pbVar17[0xf] * 0x100" (cast_expression "(uint)pbVar17[0xf]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[0xf]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar17[0xe]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[0xe]" identifier [ number_literal ])))) ;) (expression_statement "pbVar17 = pbVar17 + 0x10;" (assignment_expression "pbVar17 = pbVar17 + 0x10" identifier = (binary_expression "pbVar17 + 0x10" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + 8;" (assignment_expression "param_5 = param_5 + 8" identifier = (binary_expression "param_5 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar17 != abStack_98 + 0x80)" ( (binary_expression "pbVar17 != abStack_98 + 0x80" identifier != (binary_expression "abStack_98 + 0x80" identifier + number_literal)) )) ;)) (labeled_statement "LAB_001207e0:\n  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lStack_10 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lStack_10 != *(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                    /* WARNING: Subroutine does not return */\n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }" { comment (expression_statement "uStack_a0 = rc2_setup;" (assignment_expression "uStack_a0 = rc2_setup" identifier = identifier) ;) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit "/* WARNING: Switch with 1 destination removed at 0x001145e0 */\n\nint rc2_setup_ex(uchar *key,int keylen,int bits,int num_rounds,symmetric_key *skey)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  int iVar13;\n  long lVar14;\n  uint uVar15;\n  byte *pbVar16;\n  long in_FS_OFFSET;\n  undefined8 uStack_a0;\n  byte abStack_98 [136];\n  long lStack_10;\n  \n  pbVar6 = abStack_98;\n  pbVar7 = abStack_98;\n  pbVar8 = abStack_98;\n  pbVar9 = abStack_98;\n  pbVar10 = abStack_98;\n  pbVar11 = abStack_98;\n  pbVar12 = abStack_98;\n  pbVar16 = abStack_98;\n  lStack_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (key == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }\n  if (skey == (symmetric_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }\n  if ((keylen == 0 || 0x80 < keylen) || (0x400 < bits)) {\n    iVar4 = 3;\n    goto LAB_001207e0;\n  }\n  iVar4 = 0x400;\n  if (bits != 0) {\n    iVar4 = bits;\n  }\n  if ((num_rounds & 0xffffffefU) != 0) {\n    iVar4 = 4;\n    goto LAB_001207e0;\n  }\n  if (0 < keylen) {\n    uVar5 = 0;\n    uVar3 = keylen - 1U & 7;\n    if (uVar3 != 0) {\n      abStack_98[0] = *key;\n      uVar5 = 1;\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }\n              abStack_98[uVar5] = key[uVar5];\n              uVar5 = uVar5 + 1;\n            }\n            abStack_98[uVar5] = key[uVar5];\n            uVar5 = uVar5 + 1;\n          }\n          abStack_98[uVar5] = key[uVar5];\n          uVar5 = uVar5 + 1;\n        }\n        abStack_98[uVar5] = key[uVar5];\n        uVar5 = uVar5 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar5] = key[uVar5];\n      if (uVar5 == keylen - 1U) break;\n      abStack_98[uVar5 + 1] = key[uVar5 + 1];\n      abStack_98[uVar5 + 2] = key[uVar5 + 2];\n      abStack_98[uVar5 + 3] = key[uVar5 + 3];\n      abStack_98[uVar5 + 4] = key[uVar5 + 4];\n      abStack_98[uVar5 + 5] = key[uVar5 + 5];\n      abStack_98[uVar5 + 6] = key[uVar5 + 6];\n      abStack_98[uVar5 + 7] = key[uVar5 + 7];\n      uVar5 = uVar5 + 8;\n    }\n  }\n  if (keylen < 0x80) {\n    uVar3 = -keylen + 0x80U & 7;\n    if (uVar3 != 0) {\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }\n              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];\n              pbVar8 = pbVar7 + 1;\n            }\n            pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])];\n            pbVar9 = pbVar8 + 1;\n          }\n          pbVar9[keylen] = permute[(byte)(*pbVar9 + pbVar9[(long)keylen + -1])];\n          pbVar10 = pbVar9 + 1;\n        }\n        pbVar10[keylen] = permute[(byte)(*pbVar10 + pbVar10[(long)keylen + -1])];\n        pbVar11 = pbVar10 + 1;\n      }\n      pbVar11[keylen] = permute[(byte)(*pbVar11 + pbVar11[(long)keylen + -1])];\n      pbVar12 = pbVar11 + 1;\n      if (pbVar12 == abStack_98 + (ulong)(-keylen + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = permute[(byte)(*pbVar12 + pbVar12[(long)keylen + -1])];\n      pbVar12[keylen] = bVar1;\n      pbVar12[(long)keylen + 1] = permute[(byte)(bVar1 + pbVar12[1])];\n      bVar1 = permute[(byte)(pbVar12[2] + pbVar12[(long)keylen + 1])];\n      pbVar12[(long)keylen + 2] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[3])];\n      pbVar12[(long)keylen + 3] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[4])];\n      pbVar12[(long)keylen + 4] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[5])];\n      pbVar12[(long)keylen + 5] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[6])];\n      pbVar12[(long)keylen + 6] = bVar1;\n      pbVar12[(long)keylen + 7] = permute[(byte)(bVar1 + pbVar12[7])];\n      pbVar12 = pbVar12 + 8;\n    } while (pbVar12 != abStack_98 + (ulong)(-keylen + 0x7f) + 1);\n  }\nLAB_001205db:\n  uVar3 = iVar4 + 7U >> 3;\n  uVar15 = 0x80 - uVar3;\n  abStack_98[uVar15] = permute[(byte)(0xff >> (-(char)iVar4 & 7U)) & abStack_98[uVar15]];\n  uVar3 = 0x7f - uVar3;\n  if (-1 < (int)uVar3) {\n    lVar14 = (long)(int)uVar3;\n    pbVar12 = abStack_98 + lVar14;\n    pbVar6 = abStack_98 + (lVar14 - (ulong)uVar3) + -1;\n    iVar4 = (int)pbVar12;\n    iVar13 = -iVar4 + 0x7f;\n    uVar3 = iVar4 - (int)pbVar6 & 3;\n    if (uVar3 != 0) {\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          *pbVar12 = permute[abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]];\n          pbVar12 = abStack_98 + lVar14 + -1;\n        }\n        *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n        pbVar12 = pbVar12 + -1;\n      }\n      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n      pbVar12 = pbVar12 + -1;\n      if (pbVar12 == pbVar6) goto LAB_0012071d;\n    }\n    do {\n      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n      iVar2 = (int)(pbVar12 + -1);\n      pbVar12[-1] = permute[abStack_98[(uint)(iVar13 + iVar2)] ^ *pbVar12];\n      pbVar12[-2] = permute[abStack_98[(uint)(iVar13 + (int)pbVar12 + -2)] ^ pbVar12[-1]];\n      pbVar12[-3] = permute[abStack_98[(uint)(-iVar4 + 0x7d + iVar2)] ^ pbVar12[-2]];\n      pbVar12 = pbVar12 + -4;\n    } while (pbVar12 != pbVar6);\n  }\nLAB_0012071d:\n  do {\n    (skey->des).ek[0] = (uint)pbVar16[1] * 0x100 + (uint)*pbVar16;\n    (skey->des).ek[1] = (uint)pbVar16[2] + (uint)pbVar16[3] * 0x100;\n    (skey->des).ek[2] = (uint)pbVar16[5] * 0x100 + (uint)pbVar16[4];\n    (skey->des).ek[3] = (uint)pbVar16[7] * 0x100 + (uint)pbVar16[6];\n    (skey->des).ek[4] = (uint)pbVar16[9] * 0x100 + (uint)pbVar16[8];\n    (skey->des).ek[5] = (uint)pbVar16[0xb] * 0x100 + (uint)pbVar16[10];\n    (skey->des).ek[6] = (uint)pbVar16[0xd] * 0x100 + (uint)pbVar16[0xc];\n    (skey->des).ek[7] = (uint)pbVar16[0xf] * 0x100 + (uint)pbVar16[0xe];\n    pbVar16 = pbVar16 + 0x10;\n    skey = (symmetric_key *)((skey->des).ek + 8);\n  } while (pbVar16 != abStack_98 + 0x80);\n  iVar4 = 0;\nLAB_001207e0:\n  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }\n  return iVar4;\n}\n\n" comment (function_definition "int rc2_setup_ex(uchar *key,int keylen,int bits,int num_rounds,symmetric_key *skey)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  int iVar13;\n  long lVar14;\n  uint uVar15;\n  byte *pbVar16;\n  long in_FS_OFFSET;\n  undefined8 uStack_a0;\n  byte abStack_98 [136];\n  long lStack_10;\n  \n  pbVar6 = abStack_98;\n  pbVar7 = abStack_98;\n  pbVar8 = abStack_98;\n  pbVar9 = abStack_98;\n  pbVar10 = abStack_98;\n  pbVar11 = abStack_98;\n  pbVar12 = abStack_98;\n  pbVar16 = abStack_98;\n  lStack_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (key == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }\n  if (skey == (symmetric_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }\n  if ((keylen == 0 || 0x80 < keylen) || (0x400 < bits)) {\n    iVar4 = 3;\n    goto LAB_001207e0;\n  }\n  iVar4 = 0x400;\n  if (bits != 0) {\n    iVar4 = bits;\n  }\n  if ((num_rounds & 0xffffffefU) != 0) {\n    iVar4 = 4;\n    goto LAB_001207e0;\n  }\n  if (0 < keylen) {\n    uVar5 = 0;\n    uVar3 = keylen - 1U & 7;\n    if (uVar3 != 0) {\n      abStack_98[0] = *key;\n      uVar5 = 1;\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }\n              abStack_98[uVar5] = key[uVar5];\n              uVar5 = uVar5 + 1;\n            }\n            abStack_98[uVar5] = key[uVar5];\n            uVar5 = uVar5 + 1;\n          }\n          abStack_98[uVar5] = key[uVar5];\n          uVar5 = uVar5 + 1;\n        }\n        abStack_98[uVar5] = key[uVar5];\n        uVar5 = uVar5 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar5] = key[uVar5];\n      if (uVar5 == keylen - 1U) break;\n      abStack_98[uVar5 + 1] = key[uVar5 + 1];\n      abStack_98[uVar5 + 2] = key[uVar5 + 2];\n      abStack_98[uVar5 + 3] = key[uVar5 + 3];\n      abStack_98[uVar5 + 4] = key[uVar5 + 4];\n      abStack_98[uVar5 + 5] = key[uVar5 + 5];\n      abStack_98[uVar5 + 6] = key[uVar5 + 6];\n      abStack_98[uVar5 + 7] = key[uVar5 + 7];\n      uVar5 = uVar5 + 8;\n    }\n  }\n  if (keylen < 0x80) {\n    uVar3 = -keylen + 0x80U & 7;\n    if (uVar3 != 0) {\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }\n              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];\n              pbVar8 = pbVar7 + 1;\n            }\n            pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])];\n            pbVar9 = pbVar8 + 1;\n          }\n          pbVar9[keylen] = permute[(byte)(*pbVar9 + pbVar9[(long)keylen + -1])];\n          pbVar10 = pbVar9 + 1;\n        }\n        pbVar10[keylen] = permute[(byte)(*pbVar10 + pbVar10[(long)keylen + -1])];\n        pbVar11 = pbVar10 + 1;\n      }\n      pbVar11[keylen] = permute[(byte)(*pbVar11 + pbVar11[(long)keylen + -1])];\n      pbVar12 = pbVar11 + 1;\n      if (pbVar12 == abStack_98 + (ulong)(-keylen + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = permute[(byte)(*pbVar12 + pbVar12[(long)keylen + -1])];\n      pbVar12[keylen] = bVar1;\n      pbVar12[(long)keylen + 1] = permute[(byte)(bVar1 + pbVar12[1])];\n      bVar1 = permute[(byte)(pbVar12[2] + pbVar12[(long)keylen + 1])];\n      pbVar12[(long)keylen + 2] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[3])];\n      pbVar12[(long)keylen + 3] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[4])];\n      pbVar12[(long)keylen + 4] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[5])];\n      pbVar12[(long)keylen + 5] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[6])];\n      pbVar12[(long)keylen + 6] = bVar1;\n      pbVar12[(long)keylen + 7] = permute[(byte)(bVar1 + pbVar12[7])];\n      pbVar12 = pbVar12 + 8;\n    } while (pbVar12 != abStack_98 + (ulong)(-keylen + 0x7f) + 1);\n  }\nLAB_001205db:\n  uVar3 = iVar4 + 7U >> 3;\n  uVar15 = 0x80 - uVar3;\n  abStack_98[uVar15] = permute[(byte)(0xff >> (-(char)iVar4 & 7U)) & abStack_98[uVar15]];\n  uVar3 = 0x7f - uVar3;\n  if (-1 < (int)uVar3) {\n    lVar14 = (long)(int)uVar3;\n    pbVar12 = abStack_98 + lVar14;\n    pbVar6 = abStack_98 + (lVar14 - (ulong)uVar3) + -1;\n    iVar4 = (int)pbVar12;\n    iVar13 = -iVar4 + 0x7f;\n    uVar3 = iVar4 - (int)pbVar6 & 3;\n    if (uVar3 != 0) {\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          *pbVar12 = permute[abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]];\n          pbVar12 = abStack_98 + lVar14 + -1;\n        }\n        *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n        pbVar12 = pbVar12 + -1;\n      }\n      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n      pbVar12 = pbVar12 + -1;\n      if (pbVar12 == pbVar6) goto LAB_0012071d;\n    }\n    do {\n      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n      iVar2 = (int)(pbVar12 + -1);\n      pbVar12[-1] = permute[abStack_98[(uint)(iVar13 + iVar2)] ^ *pbVar12];\n      pbVar12[-2] = permute[abStack_98[(uint)(iVar13 + (int)pbVar12 + -2)] ^ pbVar12[-1]];\n      pbVar12[-3] = permute[abStack_98[(uint)(-iVar4 + 0x7d + iVar2)] ^ pbVar12[-2]];\n      pbVar12 = pbVar12 + -4;\n    } while (pbVar12 != pbVar6);\n  }\nLAB_0012071d:\n  do {\n    (skey->des).ek[0] = (uint)pbVar16[1] * 0x100 + (uint)*pbVar16;\n    (skey->des).ek[1] = (uint)pbVar16[2] + (uint)pbVar16[3] * 0x100;\n    (skey->des).ek[2] = (uint)pbVar16[5] * 0x100 + (uint)pbVar16[4];\n    (skey->des).ek[3] = (uint)pbVar16[7] * 0x100 + (uint)pbVar16[6];\n    (skey->des).ek[4] = (uint)pbVar16[9] * 0x100 + (uint)pbVar16[8];\n    (skey->des).ek[5] = (uint)pbVar16[0xb] * 0x100 + (uint)pbVar16[10];\n    (skey->des).ek[6] = (uint)pbVar16[0xd] * 0x100 + (uint)pbVar16[0xc];\n    (skey->des).ek[7] = (uint)pbVar16[0xf] * 0x100 + (uint)pbVar16[0xe];\n    pbVar16 = pbVar16 + 0x10;\n    skey = (symmetric_key *)((skey->des).ek + 8);\n  } while (pbVar16 != abStack_98 + 0x80);\n  iVar4 = 0;\nLAB_001207e0:\n  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }\n  return iVar4;\n}" primitive_type (function_declarator "rc2_setup_ex(uchar *key,int keylen,int bits,int num_rounds,symmetric_key *skey)" identifier (parameter_list "(uchar *key,int keylen,int bits,int num_rounds,symmetric_key *skey)" ( (parameter_declaration "uchar *key" type_identifier (pointer_declarator "*key" * identifier)) , (parameter_declaration "int keylen" primitive_type identifier) , (parameter_declaration "int bits" primitive_type identifier) , (parameter_declaration "int num_rounds" primitive_type identifier) , (parameter_declaration "symmetric_key *skey" type_identifier (pointer_declarator "*skey" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  int iVar13;\n  long lVar14;\n  uint uVar15;\n  byte *pbVar16;\n  long in_FS_OFFSET;\n  undefined8 uStack_a0;\n  byte abStack_98 [136];\n  long lStack_10;\n  \n  pbVar6 = abStack_98;\n  pbVar7 = abStack_98;\n  pbVar8 = abStack_98;\n  pbVar9 = abStack_98;\n  pbVar10 = abStack_98;\n  pbVar11 = abStack_98;\n  pbVar12 = abStack_98;\n  pbVar16 = abStack_98;\n  lStack_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (key == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }\n  if (skey == (symmetric_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }\n  if ((keylen == 0 || 0x80 < keylen) || (0x400 < bits)) {\n    iVar4 = 3;\n    goto LAB_001207e0;\n  }\n  iVar4 = 0x400;\n  if (bits != 0) {\n    iVar4 = bits;\n  }\n  if ((num_rounds & 0xffffffefU) != 0) {\n    iVar4 = 4;\n    goto LAB_001207e0;\n  }\n  if (0 < keylen) {\n    uVar5 = 0;\n    uVar3 = keylen - 1U & 7;\n    if (uVar3 != 0) {\n      abStack_98[0] = *key;\n      uVar5 = 1;\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }\n              abStack_98[uVar5] = key[uVar5];\n              uVar5 = uVar5 + 1;\n            }\n            abStack_98[uVar5] = key[uVar5];\n            uVar5 = uVar5 + 1;\n          }\n          abStack_98[uVar5] = key[uVar5];\n          uVar5 = uVar5 + 1;\n        }\n        abStack_98[uVar5] = key[uVar5];\n        uVar5 = uVar5 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar5] = key[uVar5];\n      if (uVar5 == keylen - 1U) break;\n      abStack_98[uVar5 + 1] = key[uVar5 + 1];\n      abStack_98[uVar5 + 2] = key[uVar5 + 2];\n      abStack_98[uVar5 + 3] = key[uVar5 + 3];\n      abStack_98[uVar5 + 4] = key[uVar5 + 4];\n      abStack_98[uVar5 + 5] = key[uVar5 + 5];\n      abStack_98[uVar5 + 6] = key[uVar5 + 6];\n      abStack_98[uVar5 + 7] = key[uVar5 + 7];\n      uVar5 = uVar5 + 8;\n    }\n  }\n  if (keylen < 0x80) {\n    uVar3 = -keylen + 0x80U & 7;\n    if (uVar3 != 0) {\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }\n              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];\n              pbVar8 = pbVar7 + 1;\n            }\n            pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])];\n            pbVar9 = pbVar8 + 1;\n          }\n          pbVar9[keylen] = permute[(byte)(*pbVar9 + pbVar9[(long)keylen + -1])];\n          pbVar10 = pbVar9 + 1;\n        }\n        pbVar10[keylen] = permute[(byte)(*pbVar10 + pbVar10[(long)keylen + -1])];\n        pbVar11 = pbVar10 + 1;\n      }\n      pbVar11[keylen] = permute[(byte)(*pbVar11 + pbVar11[(long)keylen + -1])];\n      pbVar12 = pbVar11 + 1;\n      if (pbVar12 == abStack_98 + (ulong)(-keylen + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = permute[(byte)(*pbVar12 + pbVar12[(long)keylen + -1])];\n      pbVar12[keylen] = bVar1;\n      pbVar12[(long)keylen + 1] = permute[(byte)(bVar1 + pbVar12[1])];\n      bVar1 = permute[(byte)(pbVar12[2] + pbVar12[(long)keylen + 1])];\n      pbVar12[(long)keylen + 2] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[3])];\n      pbVar12[(long)keylen + 3] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[4])];\n      pbVar12[(long)keylen + 4] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[5])];\n      pbVar12[(long)keylen + 5] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[6])];\n      pbVar12[(long)keylen + 6] = bVar1;\n      pbVar12[(long)keylen + 7] = permute[(byte)(bVar1 + pbVar12[7])];\n      pbVar12 = pbVar12 + 8;\n    } while (pbVar12 != abStack_98 + (ulong)(-keylen + 0x7f) + 1);\n  }\nLAB_001205db:\n  uVar3 = iVar4 + 7U >> 3;\n  uVar15 = 0x80 - uVar3;\n  abStack_98[uVar15] = permute[(byte)(0xff >> (-(char)iVar4 & 7U)) & abStack_98[uVar15]];\n  uVar3 = 0x7f - uVar3;\n  if (-1 < (int)uVar3) {\n    lVar14 = (long)(int)uVar3;\n    pbVar12 = abStack_98 + lVar14;\n    pbVar6 = abStack_98 + (lVar14 - (ulong)uVar3) + -1;\n    iVar4 = (int)pbVar12;\n    iVar13 = -iVar4 + 0x7f;\n    uVar3 = iVar4 - (int)pbVar6 & 3;\n    if (uVar3 != 0) {\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          *pbVar12 = permute[abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]];\n          pbVar12 = abStack_98 + lVar14 + -1;\n        }\n        *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n        pbVar12 = pbVar12 + -1;\n      }\n      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n      pbVar12 = pbVar12 + -1;\n      if (pbVar12 == pbVar6) goto LAB_0012071d;\n    }\n    do {\n      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n      iVar2 = (int)(pbVar12 + -1);\n      pbVar12[-1] = permute[abStack_98[(uint)(iVar13 + iVar2)] ^ *pbVar12];\n      pbVar12[-2] = permute[abStack_98[(uint)(iVar13 + (int)pbVar12 + -2)] ^ pbVar12[-1]];\n      pbVar12[-3] = permute[abStack_98[(uint)(-iVar4 + 0x7d + iVar2)] ^ pbVar12[-2]];\n      pbVar12 = pbVar12 + -4;\n    } while (pbVar12 != pbVar6);\n  }\nLAB_0012071d:\n  do {\n    (skey->des).ek[0] = (uint)pbVar16[1] * 0x100 + (uint)*pbVar16;\n    (skey->des).ek[1] = (uint)pbVar16[2] + (uint)pbVar16[3] * 0x100;\n    (skey->des).ek[2] = (uint)pbVar16[5] * 0x100 + (uint)pbVar16[4];\n    (skey->des).ek[3] = (uint)pbVar16[7] * 0x100 + (uint)pbVar16[6];\n    (skey->des).ek[4] = (uint)pbVar16[9] * 0x100 + (uint)pbVar16[8];\n    (skey->des).ek[5] = (uint)pbVar16[0xb] * 0x100 + (uint)pbVar16[10];\n    (skey->des).ek[6] = (uint)pbVar16[0xd] * 0x100 + (uint)pbVar16[0xc];\n    (skey->des).ek[7] = (uint)pbVar16[0xf] * 0x100 + (uint)pbVar16[0xe];\n    pbVar16 = pbVar16 + 0x10;\n    skey = (symmetric_key *)((skey->des).ek + 8);\n  } while (pbVar16 != abStack_98 + 0x80);\n  iVar4 = 0;\nLAB_001207e0:\n  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }\n  return iVar4;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uStack_a0;" type_identifier identifier ;) (declaration "byte abStack_98 [136];" type_identifier (array_declarator "abStack_98 [136]" identifier [ number_literal ]) ;) (declaration "long lStack_10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "pbVar6 = abStack_98;" (assignment_expression "pbVar6 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar7 = abStack_98;" (assignment_expression "pbVar7 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar8 = abStack_98;" (assignment_expression "pbVar8 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar9 = abStack_98;" (assignment_expression "pbVar9 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar10 = abStack_98;" (assignment_expression "pbVar10 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar11 = abStack_98;" (assignment_expression "pbVar11 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar12 = abStack_98;" (assignment_expression "pbVar12 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar16 = abStack_98;" (assignment_expression "pbVar16 = abStack_98" identifier = identifier) ;) (expression_statement "lStack_10 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lStack_10 = *(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 (key == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }" if (parenthesized_expression "(key == (uchar *)0x0)" ( (binary_expression "key == (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    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }" { comment (expression_statement "uStack_a0 = (code *)0x1203b8;" (assignment_expression "uStack_a0 = (code *)0x1203b8" identifier = (cast_expression "(code *)0x1203b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);" (call_expression "crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c)" identifier (argument_list "("key != NULL","src/ciphers/rc2.c",0x4c)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/ciphers/rc2.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (skey == (symmetric_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }" if (parenthesized_expression "(skey == (symmetric_key *)0x0)" ( (binary_expression "skey == (symmetric_key *)0x0" identifier == (cast_expression "(symmetric_key *)0x0" ( (type_descriptor "symmetric_key *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }" { comment (expression_statement "uStack_a0 = (code *)0x1203d0;" (assignment_expression "uStack_a0 = (code *)0x1203d0" identifier = (cast_expression "(code *)0x1203d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d)" identifier (argument_list "("skey != NULL","src/ciphers/rc2.c",0x4d)" ( (string_literal ""skey != NULL"" " string_content ") , (string_literal ""src/ciphers/rc2.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if ((keylen == 0 || 0x80 < keylen) || (0x400 < bits)) {\n    iVar4 = 3;\n    goto LAB_001207e0;\n  }" if (parenthesized_expression "((keylen == 0 || 0x80 < keylen) || (0x400 < bits))" ( (binary_expression "(keylen == 0 || 0x80 < keylen) || (0x400 < bits)" (parenthesized_expression "(keylen == 0 || 0x80 < keylen)" ( (binary_expression "keylen == 0 || 0x80 < keylen" (binary_expression "keylen == 0" identifier == number_literal) || (binary_expression "0x80 < keylen" number_literal < identifier)) )) || (parenthesized_expression "(0x400 < bits)" ( (binary_expression "0x400 < bits" number_literal < identifier) ))) )) (compound_statement "{\n    iVar4 = 3;\n    goto LAB_001207e0;\n  }" { (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_001207e0;" goto statement_identifier ;) })) (expression_statement "iVar4 = 0x400;" (assignment_expression "iVar4 = 0x400" identifier = number_literal) ;) (if_statement "if (bits != 0) {\n    iVar4 = bits;\n  }" if (parenthesized_expression "(bits != 0)" ( (binary_expression "bits != 0" identifier != number_literal) )) (compound_statement "{\n    iVar4 = bits;\n  }" { (expression_statement "iVar4 = bits;" (assignment_expression "iVar4 = bits" identifier = identifier) ;) })) (if_statement "if ((num_rounds & 0xffffffefU) != 0) {\n    iVar4 = 4;\n    goto LAB_001207e0;\n  }" if (parenthesized_expression "((num_rounds & 0xffffffefU) != 0)" ( (binary_expression "(num_rounds & 0xffffffefU) != 0" (parenthesized_expression "(num_rounds & 0xffffffefU)" ( (binary_expression "num_rounds & 0xffffffefU" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    iVar4 = 4;\n    goto LAB_001207e0;\n  }" { (expression_statement "iVar4 = 4;" (assignment_expression "iVar4 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_001207e0;" goto statement_identifier ;) })) (if_statement "if (0 < keylen) {\n    uVar5 = 0;\n    uVar3 = keylen - 1U & 7;\n    if (uVar3 != 0) {\n      abStack_98[0] = *key;\n      uVar5 = 1;\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }\n              abStack_98[uVar5] = key[uVar5];\n              uVar5 = uVar5 + 1;\n            }\n            abStack_98[uVar5] = key[uVar5];\n            uVar5 = uVar5 + 1;\n          }\n          abStack_98[uVar5] = key[uVar5];\n          uVar5 = uVar5 + 1;\n        }\n        abStack_98[uVar5] = key[uVar5];\n        uVar5 = uVar5 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar5] = key[uVar5];\n      if (uVar5 == keylen - 1U) break;\n      abStack_98[uVar5 + 1] = key[uVar5 + 1];\n      abStack_98[uVar5 + 2] = key[uVar5 + 2];\n      abStack_98[uVar5 + 3] = key[uVar5 + 3];\n      abStack_98[uVar5 + 4] = key[uVar5 + 4];\n      abStack_98[uVar5 + 5] = key[uVar5 + 5];\n      abStack_98[uVar5 + 6] = key[uVar5 + 6];\n      abStack_98[uVar5 + 7] = key[uVar5 + 7];\n      uVar5 = uVar5 + 8;\n    }\n  }" if (parenthesized_expression "(0 < keylen)" ( (binary_expression "0 < keylen" number_literal < identifier) )) (compound_statement "{\n    uVar5 = 0;\n    uVar3 = keylen - 1U & 7;\n    if (uVar3 != 0) {\n      abStack_98[0] = *key;\n      uVar5 = 1;\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }\n              abStack_98[uVar5] = key[uVar5];\n              uVar5 = uVar5 + 1;\n            }\n            abStack_98[uVar5] = key[uVar5];\n            uVar5 = uVar5 + 1;\n          }\n          abStack_98[uVar5] = key[uVar5];\n          uVar5 = uVar5 + 1;\n        }\n        abStack_98[uVar5] = key[uVar5];\n        uVar5 = uVar5 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar5] = key[uVar5];\n      if (uVar5 == keylen - 1U) break;\n      abStack_98[uVar5 + 1] = key[uVar5 + 1];\n      abStack_98[uVar5 + 2] = key[uVar5 + 2];\n      abStack_98[uVar5 + 3] = key[uVar5 + 3];\n      abStack_98[uVar5 + 4] = key[uVar5 + 4];\n      abStack_98[uVar5 + 5] = key[uVar5 + 5];\n      abStack_98[uVar5 + 6] = key[uVar5 + 6];\n      abStack_98[uVar5 + 7] = key[uVar5 + 7];\n      uVar5 = uVar5 + 8;\n    }\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = keylen - 1U & 7;" (assignment_expression "uVar3 = keylen - 1U & 7" identifier = (binary_expression "keylen - 1U & 7" (binary_expression "keylen - 1U" identifier - number_literal) & number_literal)) ;) (if_statement "if (uVar3 != 0) {\n      abStack_98[0] = *key;\n      uVar5 = 1;\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }\n              abStack_98[uVar5] = key[uVar5];\n              uVar5 = uVar5 + 1;\n            }\n            abStack_98[uVar5] = key[uVar5];\n            uVar5 = uVar5 + 1;\n          }\n          abStack_98[uVar5] = key[uVar5];\n          uVar5 = uVar5 + 1;\n        }\n        abStack_98[uVar5] = key[uVar5];\n        uVar5 = uVar5 + 1;\n      }\n    }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      abStack_98[0] = *key;\n      uVar5 = 1;\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }\n              abStack_98[uVar5] = key[uVar5];\n              uVar5 = uVar5 + 1;\n            }\n            abStack_98[uVar5] = key[uVar5];\n            uVar5 = uVar5 + 1;\n          }\n          abStack_98[uVar5] = key[uVar5];\n          uVar5 = uVar5 + 1;\n        }\n        abStack_98[uVar5] = key[uVar5];\n        uVar5 = uVar5 + 1;\n      }\n    }" { (expression_statement "abStack_98[0] = *key;" (assignment_expression "abStack_98[0] = *key" (subscript_expression "abStack_98[0]" identifier [ number_literal ]) = (pointer_expression "*key" * identifier)) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }\n              abStack_98[uVar5] = key[uVar5];\n              uVar5 = uVar5 + 1;\n            }\n            abStack_98[uVar5] = key[uVar5];\n            uVar5 = uVar5 + 1;\n          }\n          abStack_98[uVar5] = key[uVar5];\n          uVar5 = uVar5 + 1;\n        }\n        abStack_98[uVar5] = key[uVar5];\n        uVar5 = uVar5 + 1;\n      }" if (parenthesized_expression "(uVar3 != 1)" ( (binary_expression "uVar3 != 1" identifier != number_literal) )) (compound_statement "{\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }\n              abStack_98[uVar5] = key[uVar5];\n              uVar5 = uVar5 + 1;\n            }\n            abStack_98[uVar5] = key[uVar5];\n            uVar5 = uVar5 + 1;\n          }\n          abStack_98[uVar5] = key[uVar5];\n          uVar5 = uVar5 + 1;\n        }\n        abStack_98[uVar5] = key[uVar5];\n        uVar5 = uVar5 + 1;\n      }" { (if_statement "if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }\n              abStack_98[uVar5] = key[uVar5];\n              uVar5 = uVar5 + 1;\n            }\n            abStack_98[uVar5] = key[uVar5];\n            uVar5 = uVar5 + 1;\n          }\n          abStack_98[uVar5] = key[uVar5];\n          uVar5 = uVar5 + 1;\n        }" if (parenthesized_expression "(uVar3 != 2)" ( (binary_expression "uVar3 != 2" identifier != number_literal) )) (compound_statement "{\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }\n              abStack_98[uVar5] = key[uVar5];\n              uVar5 = uVar5 + 1;\n            }\n            abStack_98[uVar5] = key[uVar5];\n            uVar5 = uVar5 + 1;\n          }\n          abStack_98[uVar5] = key[uVar5];\n          uVar5 = uVar5 + 1;\n        }" { (if_statement "if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }\n              abStack_98[uVar5] = key[uVar5];\n              uVar5 = uVar5 + 1;\n            }\n            abStack_98[uVar5] = key[uVar5];\n            uVar5 = uVar5 + 1;\n          }" if (parenthesized_expression "(uVar3 != 3)" ( (binary_expression "uVar3 != 3" identifier != number_literal) )) (compound_statement "{\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }\n              abStack_98[uVar5] = key[uVar5];\n              uVar5 = uVar5 + 1;\n            }\n            abStack_98[uVar5] = key[uVar5];\n            uVar5 = uVar5 + 1;\n          }" { (if_statement "if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }\n              abStack_98[uVar5] = key[uVar5];\n              uVar5 = uVar5 + 1;\n            }" if (parenthesized_expression "(uVar3 != 4)" ( (binary_expression "uVar3 != 4" identifier != number_literal) )) (compound_statement "{\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }\n              abStack_98[uVar5] = key[uVar5];\n              uVar5 = uVar5 + 1;\n            }" { (if_statement "if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }" if (parenthesized_expression "(uVar3 != 5)" ( (binary_expression "uVar3 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }\n                abStack_98[uVar5] = key[uVar5];\n                uVar5 = uVar5 + 1;\n              }" { (if_statement "if (uVar3 != 6) {\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }" if (parenthesized_expression "(uVar3 != 6)" ( (binary_expression "uVar3 != 6" identifier != number_literal) )) (compound_statement "{\n                  abStack_98[1] = key[1];\n                  uVar5 = 2;\n                }" { (expression_statement "abStack_98[1] = key[1];" (assignment_expression "abStack_98[1] = key[1]" (subscript_expression "abStack_98[1]" identifier [ number_literal ]) = (subscript_expression "key[1]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = 2;" (assignment_expression "uVar5 = 2" identifier = number_literal) ;) })) (expression_statement "abStack_98[uVar5] = key[uVar5];" (assignment_expression "abStack_98[uVar5] = key[uVar5]" (subscript_expression "abStack_98[uVar5]" identifier [ identifier ]) = (subscript_expression "key[uVar5]" identifier [ identifier ])) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "abStack_98[uVar5] = key[uVar5];" (assignment_expression "abStack_98[uVar5] = key[uVar5]" (subscript_expression "abStack_98[uVar5]" identifier [ identifier ]) = (subscript_expression "key[uVar5]" identifier [ identifier ])) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "abStack_98[uVar5] = key[uVar5];" (assignment_expression "abStack_98[uVar5] = key[uVar5]" (subscript_expression "abStack_98[uVar5]" identifier [ identifier ]) = (subscript_expression "key[uVar5]" identifier [ identifier ])) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "abStack_98[uVar5] = key[uVar5];" (assignment_expression "abStack_98[uVar5] = key[uVar5]" (subscript_expression "abStack_98[uVar5]" identifier [ identifier ]) = (subscript_expression "key[uVar5]" identifier [ identifier ])) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) })) (expression_statement "abStack_98[uVar5] = key[uVar5];" (assignment_expression "abStack_98[uVar5] = key[uVar5]" (subscript_expression "abStack_98[uVar5]" identifier [ identifier ]) = (subscript_expression "key[uVar5]" identifier [ identifier ])) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) })) })) (while_statement "while( true ) {\n      abStack_98[uVar5] = key[uVar5];\n      if (uVar5 == keylen - 1U) break;\n      abStack_98[uVar5 + 1] = key[uVar5 + 1];\n      abStack_98[uVar5 + 2] = key[uVar5 + 2];\n      abStack_98[uVar5 + 3] = key[uVar5 + 3];\n      abStack_98[uVar5 + 4] = key[uVar5 + 4];\n      abStack_98[uVar5 + 5] = key[uVar5 + 5];\n      abStack_98[uVar5 + 6] = key[uVar5 + 6];\n      abStack_98[uVar5 + 7] = key[uVar5 + 7];\n      uVar5 = uVar5 + 8;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      abStack_98[uVar5] = key[uVar5];\n      if (uVar5 == keylen - 1U) break;\n      abStack_98[uVar5 + 1] = key[uVar5 + 1];\n      abStack_98[uVar5 + 2] = key[uVar5 + 2];\n      abStack_98[uVar5 + 3] = key[uVar5 + 3];\n      abStack_98[uVar5 + 4] = key[uVar5 + 4];\n      abStack_98[uVar5 + 5] = key[uVar5 + 5];\n      abStack_98[uVar5 + 6] = key[uVar5 + 6];\n      abStack_98[uVar5 + 7] = key[uVar5 + 7];\n      uVar5 = uVar5 + 8;\n    }" { (expression_statement "abStack_98[uVar5] = key[uVar5];" (assignment_expression "abStack_98[uVar5] = key[uVar5]" (subscript_expression "abStack_98[uVar5]" identifier [ identifier ]) = (subscript_expression "key[uVar5]" identifier [ identifier ])) ;) (if_statement "if (uVar5 == keylen - 1U) break;" if (parenthesized_expression "(uVar5 == keylen - 1U)" ( (binary_expression "uVar5 == keylen - 1U" identifier == (binary_expression "keylen - 1U" identifier - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "abStack_98[uVar5 + 1] = key[uVar5 + 1];" (assignment_expression "abStack_98[uVar5 + 1] = key[uVar5 + 1]" (subscript_expression "abStack_98[uVar5 + 1]" identifier [ (binary_expression "uVar5 + 1" identifier + number_literal) ]) = (subscript_expression "key[uVar5 + 1]" identifier [ (binary_expression "uVar5 + 1" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar5 + 2] = key[uVar5 + 2];" (assignment_expression "abStack_98[uVar5 + 2] = key[uVar5 + 2]" (subscript_expression "abStack_98[uVar5 + 2]" identifier [ (binary_expression "uVar5 + 2" identifier + number_literal) ]) = (subscript_expression "key[uVar5 + 2]" identifier [ (binary_expression "uVar5 + 2" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar5 + 3] = key[uVar5 + 3];" (assignment_expression "abStack_98[uVar5 + 3] = key[uVar5 + 3]" (subscript_expression "abStack_98[uVar5 + 3]" identifier [ (binary_expression "uVar5 + 3" identifier + number_literal) ]) = (subscript_expression "key[uVar5 + 3]" identifier [ (binary_expression "uVar5 + 3" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar5 + 4] = key[uVar5 + 4];" (assignment_expression "abStack_98[uVar5 + 4] = key[uVar5 + 4]" (subscript_expression "abStack_98[uVar5 + 4]" identifier [ (binary_expression "uVar5 + 4" identifier + number_literal) ]) = (subscript_expression "key[uVar5 + 4]" identifier [ (binary_expression "uVar5 + 4" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar5 + 5] = key[uVar5 + 5];" (assignment_expression "abStack_98[uVar5 + 5] = key[uVar5 + 5]" (subscript_expression "abStack_98[uVar5 + 5]" identifier [ (binary_expression "uVar5 + 5" identifier + number_literal) ]) = (subscript_expression "key[uVar5 + 5]" identifier [ (binary_expression "uVar5 + 5" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar5 + 6] = key[uVar5 + 6];" (assignment_expression "abStack_98[uVar5 + 6] = key[uVar5 + 6]" (subscript_expression "abStack_98[uVar5 + 6]" identifier [ (binary_expression "uVar5 + 6" identifier + number_literal) ]) = (subscript_expression "key[uVar5 + 6]" identifier [ (binary_expression "uVar5 + 6" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar5 + 7] = key[uVar5 + 7];" (assignment_expression "abStack_98[uVar5 + 7] = key[uVar5 + 7]" (subscript_expression "abStack_98[uVar5 + 7]" identifier [ (binary_expression "uVar5 + 7" identifier + number_literal) ]) = (subscript_expression "key[uVar5 + 7]" identifier [ (binary_expression "uVar5 + 7" identifier + number_literal) ])) ;) (expression_statement "uVar5 = uVar5 + 8;" (assignment_expression "uVar5 = uVar5 + 8" identifier = (binary_expression "uVar5 + 8" identifier + number_literal)) ;) })) })) (if_statement "if (keylen < 0x80) {\n    uVar3 = -keylen + 0x80U & 7;\n    if (uVar3 != 0) {\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }\n              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];\n              pbVar8 = pbVar7 + 1;\n            }\n            pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])];\n            pbVar9 = pbVar8 + 1;\n          }\n          pbVar9[keylen] = permute[(byte)(*pbVar9 + pbVar9[(long)keylen + -1])];\n          pbVar10 = pbVar9 + 1;\n        }\n        pbVar10[keylen] = permute[(byte)(*pbVar10 + pbVar10[(long)keylen + -1])];\n        pbVar11 = pbVar10 + 1;\n      }\n      pbVar11[keylen] = permute[(byte)(*pbVar11 + pbVar11[(long)keylen + -1])];\n      pbVar12 = pbVar11 + 1;\n      if (pbVar12 == abStack_98 + (ulong)(-keylen + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = permute[(byte)(*pbVar12 + pbVar12[(long)keylen + -1])];\n      pbVar12[keylen] = bVar1;\n      pbVar12[(long)keylen + 1] = permute[(byte)(bVar1 + pbVar12[1])];\n      bVar1 = permute[(byte)(pbVar12[2] + pbVar12[(long)keylen + 1])];\n      pbVar12[(long)keylen + 2] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[3])];\n      pbVar12[(long)keylen + 3] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[4])];\n      pbVar12[(long)keylen + 4] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[5])];\n      pbVar12[(long)keylen + 5] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[6])];\n      pbVar12[(long)keylen + 6] = bVar1;\n      pbVar12[(long)keylen + 7] = permute[(byte)(bVar1 + pbVar12[7])];\n      pbVar12 = pbVar12 + 8;\n    } while (pbVar12 != abStack_98 + (ulong)(-keylen + 0x7f) + 1);\n  }" if (parenthesized_expression "(keylen < 0x80)" ( (binary_expression "keylen < 0x80" identifier < number_literal) )) (compound_statement "{\n    uVar3 = -keylen + 0x80U & 7;\n    if (uVar3 != 0) {\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }\n              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];\n              pbVar8 = pbVar7 + 1;\n            }\n            pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])];\n            pbVar9 = pbVar8 + 1;\n          }\n          pbVar9[keylen] = permute[(byte)(*pbVar9 + pbVar9[(long)keylen + -1])];\n          pbVar10 = pbVar9 + 1;\n        }\n        pbVar10[keylen] = permute[(byte)(*pbVar10 + pbVar10[(long)keylen + -1])];\n        pbVar11 = pbVar10 + 1;\n      }\n      pbVar11[keylen] = permute[(byte)(*pbVar11 + pbVar11[(long)keylen + -1])];\n      pbVar12 = pbVar11 + 1;\n      if (pbVar12 == abStack_98 + (ulong)(-keylen + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = permute[(byte)(*pbVar12 + pbVar12[(long)keylen + -1])];\n      pbVar12[keylen] = bVar1;\n      pbVar12[(long)keylen + 1] = permute[(byte)(bVar1 + pbVar12[1])];\n      bVar1 = permute[(byte)(pbVar12[2] + pbVar12[(long)keylen + 1])];\n      pbVar12[(long)keylen + 2] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[3])];\n      pbVar12[(long)keylen + 3] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[4])];\n      pbVar12[(long)keylen + 4] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[5])];\n      pbVar12[(long)keylen + 5] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[6])];\n      pbVar12[(long)keylen + 6] = bVar1;\n      pbVar12[(long)keylen + 7] = permute[(byte)(bVar1 + pbVar12[7])];\n      pbVar12 = pbVar12 + 8;\n    } while (pbVar12 != abStack_98 + (ulong)(-keylen + 0x7f) + 1);\n  }" { (expression_statement "uVar3 = -keylen + 0x80U & 7;" (assignment_expression "uVar3 = -keylen + 0x80U & 7" identifier = (binary_expression "-keylen + 0x80U & 7" (binary_expression "-keylen + 0x80U" (unary_expression "-keylen" - identifier) + number_literal) & number_literal)) ;) (if_statement "if (uVar3 != 0) {\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }\n              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];\n              pbVar8 = pbVar7 + 1;\n            }\n            pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])];\n            pbVar9 = pbVar8 + 1;\n          }\n          pbVar9[keylen] = permute[(byte)(*pbVar9 + pbVar9[(long)keylen + -1])];\n          pbVar10 = pbVar9 + 1;\n        }\n        pbVar10[keylen] = permute[(byte)(*pbVar10 + pbVar10[(long)keylen + -1])];\n        pbVar11 = pbVar10 + 1;\n      }\n      pbVar11[keylen] = permute[(byte)(*pbVar11 + pbVar11[(long)keylen + -1])];\n      pbVar12 = pbVar11 + 1;\n      if (pbVar12 == abStack_98 + (ulong)(-keylen + 0x7f) + 1) goto LAB_001205db;\n    }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }\n              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];\n              pbVar8 = pbVar7 + 1;\n            }\n            pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])];\n            pbVar9 = pbVar8 + 1;\n          }\n          pbVar9[keylen] = permute[(byte)(*pbVar9 + pbVar9[(long)keylen + -1])];\n          pbVar10 = pbVar9 + 1;\n        }\n        pbVar10[keylen] = permute[(byte)(*pbVar10 + pbVar10[(long)keylen + -1])];\n        pbVar11 = pbVar10 + 1;\n      }\n      pbVar11[keylen] = permute[(byte)(*pbVar11 + pbVar11[(long)keylen + -1])];\n      pbVar12 = pbVar11 + 1;\n      if (pbVar12 == abStack_98 + (ulong)(-keylen + 0x7f) + 1) goto LAB_001205db;\n    }" { (if_statement "if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }\n              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];\n              pbVar8 = pbVar7 + 1;\n            }\n            pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])];\n            pbVar9 = pbVar8 + 1;\n          }\n          pbVar9[keylen] = permute[(byte)(*pbVar9 + pbVar9[(long)keylen + -1])];\n          pbVar10 = pbVar9 + 1;\n        }\n        pbVar10[keylen] = permute[(byte)(*pbVar10 + pbVar10[(long)keylen + -1])];\n        pbVar11 = pbVar10 + 1;\n      }" if (parenthesized_expression "(uVar3 != 1)" ( (binary_expression "uVar3 != 1" identifier != number_literal) )) (compound_statement "{\n        if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }\n              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];\n              pbVar8 = pbVar7 + 1;\n            }\n            pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])];\n            pbVar9 = pbVar8 + 1;\n          }\n          pbVar9[keylen] = permute[(byte)(*pbVar9 + pbVar9[(long)keylen + -1])];\n          pbVar10 = pbVar9 + 1;\n        }\n        pbVar10[keylen] = permute[(byte)(*pbVar10 + pbVar10[(long)keylen + -1])];\n        pbVar11 = pbVar10 + 1;\n      }" { (if_statement "if (uVar3 != 2) {\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }\n              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];\n              pbVar8 = pbVar7 + 1;\n            }\n            pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])];\n            pbVar9 = pbVar8 + 1;\n          }\n          pbVar9[keylen] = permute[(byte)(*pbVar9 + pbVar9[(long)keylen + -1])];\n          pbVar10 = pbVar9 + 1;\n        }" if (parenthesized_expression "(uVar3 != 2)" ( (binary_expression "uVar3 != 2" identifier != number_literal) )) (compound_statement "{\n          if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }\n              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];\n              pbVar8 = pbVar7 + 1;\n            }\n            pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])];\n            pbVar9 = pbVar8 + 1;\n          }\n          pbVar9[keylen] = permute[(byte)(*pbVar9 + pbVar9[(long)keylen + -1])];\n          pbVar10 = pbVar9 + 1;\n        }" { (if_statement "if (uVar3 != 3) {\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }\n              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];\n              pbVar8 = pbVar7 + 1;\n            }\n            pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])];\n            pbVar9 = pbVar8 + 1;\n          }" if (parenthesized_expression "(uVar3 != 3)" ( (binary_expression "uVar3 != 3" identifier != number_literal) )) (compound_statement "{\n            if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }\n              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];\n              pbVar8 = pbVar7 + 1;\n            }\n            pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])];\n            pbVar9 = pbVar8 + 1;\n          }" { (if_statement "if (uVar3 != 4) {\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }\n              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];\n              pbVar8 = pbVar7 + 1;\n            }" if (parenthesized_expression "(uVar3 != 4)" ( (binary_expression "uVar3 != 4" identifier != number_literal) )) (compound_statement "{\n              if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }\n              pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];\n              pbVar8 = pbVar7 + 1;\n            }" { (if_statement "if (uVar3 != 5) {\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }" if (parenthesized_expression "(uVar3 != 5)" ( (binary_expression "uVar3 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }\n                pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];\n                pbVar7 = pbVar6 + 1;\n              }" { (if_statement "if (uVar3 != 6) {\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }" if (parenthesized_expression "(uVar3 != 6)" ( (binary_expression "uVar3 != 6" identifier != number_literal) )) (compound_statement "{\n                  abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];\n                  pbVar6 = abStack_98 + 1;\n                }" { (expression_statement "abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])];" (assignment_expression "abStack_98[keylen] =\n                       permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])]" (subscript_expression "abStack_98[keylen]" identifier [ identifier ]) = (subscript_expression "permute[(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])]" identifier [ (call_expression "(byte)(abStack_98[0] + abStack_98[(long)keylen + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(abStack_98[0] + abStack_98[(long)keylen + -1])" ( (binary_expression "abStack_98[0] + abStack_98[(long)keylen + -1]" (subscript_expression "abStack_98[0]" identifier [ number_literal ]) + (subscript_expression "abStack_98[(long)keylen + -1]" identifier [ (binary_expression "(long)keylen + -1" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar6 = abStack_98 + 1;" (assignment_expression "pbVar6 = abStack_98 + 1" identifier = (binary_expression "abStack_98 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])];" (assignment_expression "pbVar6[keylen] = permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])]" (subscript_expression "pbVar6[keylen]" identifier [ identifier ]) = (subscript_expression "permute[(byte)(*pbVar6 + pbVar6[(long)keylen + -1])]" identifier [ (call_expression "(byte)(*pbVar6 + pbVar6[(long)keylen + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar6 + pbVar6[(long)keylen + -1])" ( (binary_expression "*pbVar6 + pbVar6[(long)keylen + -1]" (pointer_expression "*pbVar6" * identifier) + (subscript_expression "pbVar6[(long)keylen + -1]" identifier [ (binary_expression "(long)keylen + -1" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar7 = pbVar6 + 1;" (assignment_expression "pbVar7 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])];" (assignment_expression "pbVar7[keylen] = permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])]" (subscript_expression "pbVar7[keylen]" identifier [ identifier ]) = (subscript_expression "permute[(byte)(*pbVar7 + pbVar7[(long)keylen + -1])]" identifier [ (call_expression "(byte)(*pbVar7 + pbVar7[(long)keylen + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar7 + pbVar7[(long)keylen + -1])" ( (binary_expression "*pbVar7 + pbVar7[(long)keylen + -1]" (pointer_expression "*pbVar7" * identifier) + (subscript_expression "pbVar7[(long)keylen + -1]" identifier [ (binary_expression "(long)keylen + -1" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar8 = pbVar7 + 1;" (assignment_expression "pbVar8 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])];" (assignment_expression "pbVar8[keylen] = permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])]" (subscript_expression "pbVar8[keylen]" identifier [ identifier ]) = (subscript_expression "permute[(byte)(*pbVar8 + pbVar8[(long)keylen + -1])]" identifier [ (call_expression "(byte)(*pbVar8 + pbVar8[(long)keylen + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar8 + pbVar8[(long)keylen + -1])" ( (binary_expression "*pbVar8 + pbVar8[(long)keylen + -1]" (pointer_expression "*pbVar8" * identifier) + (subscript_expression "pbVar8[(long)keylen + -1]" identifier [ (binary_expression "(long)keylen + -1" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar9 = pbVar8 + 1;" (assignment_expression "pbVar9 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar9[keylen] = permute[(byte)(*pbVar9 + pbVar9[(long)keylen + -1])];" (assignment_expression "pbVar9[keylen] = permute[(byte)(*pbVar9 + pbVar9[(long)keylen + -1])]" (subscript_expression "pbVar9[keylen]" identifier [ identifier ]) = (subscript_expression "permute[(byte)(*pbVar9 + pbVar9[(long)keylen + -1])]" identifier [ (call_expression "(byte)(*pbVar9 + pbVar9[(long)keylen + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar9 + pbVar9[(long)keylen + -1])" ( (binary_expression "*pbVar9 + pbVar9[(long)keylen + -1]" (pointer_expression "*pbVar9" * identifier) + (subscript_expression "pbVar9[(long)keylen + -1]" identifier [ (binary_expression "(long)keylen + -1" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar10 = pbVar9 + 1;" (assignment_expression "pbVar10 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar10[keylen] = permute[(byte)(*pbVar10 + pbVar10[(long)keylen + -1])];" (assignment_expression "pbVar10[keylen] = permute[(byte)(*pbVar10 + pbVar10[(long)keylen + -1])]" (subscript_expression "pbVar10[keylen]" identifier [ identifier ]) = (subscript_expression "permute[(byte)(*pbVar10 + pbVar10[(long)keylen + -1])]" identifier [ (call_expression "(byte)(*pbVar10 + pbVar10[(long)keylen + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar10 + pbVar10[(long)keylen + -1])" ( (binary_expression "*pbVar10 + pbVar10[(long)keylen + -1]" (pointer_expression "*pbVar10" * identifier) + (subscript_expression "pbVar10[(long)keylen + -1]" identifier [ (binary_expression "(long)keylen + -1" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar11 = pbVar10 + 1;" (assignment_expression "pbVar11 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar11[keylen] = permute[(byte)(*pbVar11 + pbVar11[(long)keylen + -1])];" (assignment_expression "pbVar11[keylen] = permute[(byte)(*pbVar11 + pbVar11[(long)keylen + -1])]" (subscript_expression "pbVar11[keylen]" identifier [ identifier ]) = (subscript_expression "permute[(byte)(*pbVar11 + pbVar11[(long)keylen + -1])]" identifier [ (call_expression "(byte)(*pbVar11 + pbVar11[(long)keylen + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar11 + pbVar11[(long)keylen + -1])" ( (binary_expression "*pbVar11 + pbVar11[(long)keylen + -1]" (pointer_expression "*pbVar11" * identifier) + (subscript_expression "pbVar11[(long)keylen + -1]" identifier [ (binary_expression "(long)keylen + -1" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar12 = pbVar11 + 1;" (assignment_expression "pbVar12 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar12 == abStack_98 + (ulong)(-keylen + 0x7f) + 1) goto LAB_001205db;" if (parenthesized_expression "(pbVar12 == abStack_98 + (ulong)(-keylen + 0x7f) + 1)" ( (binary_expression "pbVar12 == abStack_98 + (ulong)(-keylen + 0x7f) + 1" identifier == (binary_expression "abStack_98 + (ulong)(-keylen + 0x7f) + 1" (binary_expression "abStack_98 + (ulong)(-keylen + 0x7f)" identifier + (call_expression "(ulong)(-keylen + 0x7f)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(-keylen + 0x7f)" ( (binary_expression "-keylen + 0x7f" (unary_expression "-keylen" - identifier) + number_literal) )))) + number_literal)) )) (goto_statement "goto LAB_001205db;" goto statement_identifier ;)) })) (do_statement "do {\n      bVar1 = permute[(byte)(*pbVar12 + pbVar12[(long)keylen + -1])];\n      pbVar12[keylen] = bVar1;\n      pbVar12[(long)keylen + 1] = permute[(byte)(bVar1 + pbVar12[1])];\n      bVar1 = permute[(byte)(pbVar12[2] + pbVar12[(long)keylen + 1])];\n      pbVar12[(long)keylen + 2] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[3])];\n      pbVar12[(long)keylen + 3] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[4])];\n      pbVar12[(long)keylen + 4] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[5])];\n      pbVar12[(long)keylen + 5] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[6])];\n      pbVar12[(long)keylen + 6] = bVar1;\n      pbVar12[(long)keylen + 7] = permute[(byte)(bVar1 + pbVar12[7])];\n      pbVar12 = pbVar12 + 8;\n    } while (pbVar12 != abStack_98 + (ulong)(-keylen + 0x7f) + 1);" do (compound_statement "{\n      bVar1 = permute[(byte)(*pbVar12 + pbVar12[(long)keylen + -1])];\n      pbVar12[keylen] = bVar1;\n      pbVar12[(long)keylen + 1] = permute[(byte)(bVar1 + pbVar12[1])];\n      bVar1 = permute[(byte)(pbVar12[2] + pbVar12[(long)keylen + 1])];\n      pbVar12[(long)keylen + 2] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[3])];\n      pbVar12[(long)keylen + 3] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[4])];\n      pbVar12[(long)keylen + 4] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[5])];\n      pbVar12[(long)keylen + 5] = bVar1;\n      bVar1 = permute[(byte)(bVar1 + pbVar12[6])];\n      pbVar12[(long)keylen + 6] = bVar1;\n      pbVar12[(long)keylen + 7] = permute[(byte)(bVar1 + pbVar12[7])];\n      pbVar12 = pbVar12 + 8;\n    }" { (expression_statement "bVar1 = permute[(byte)(*pbVar12 + pbVar12[(long)keylen + -1])];" (assignment_expression "bVar1 = permute[(byte)(*pbVar12 + pbVar12[(long)keylen + -1])]" identifier = (subscript_expression "permute[(byte)(*pbVar12 + pbVar12[(long)keylen + -1])]" identifier [ (call_expression "(byte)(*pbVar12 + pbVar12[(long)keylen + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar12 + pbVar12[(long)keylen + -1])" ( (binary_expression "*pbVar12 + pbVar12[(long)keylen + -1]" (pointer_expression "*pbVar12" * identifier) + (subscript_expression "pbVar12[(long)keylen + -1]" identifier [ (binary_expression "(long)keylen + -1" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar12[keylen] = bVar1;" (assignment_expression "pbVar12[keylen] = bVar1" (subscript_expression "pbVar12[keylen]" identifier [ identifier ]) = identifier) ;) (expression_statement "pbVar12[(long)keylen + 1] = permute[(byte)(bVar1 + pbVar12[1])];" (assignment_expression "pbVar12[(long)keylen + 1] = permute[(byte)(bVar1 + pbVar12[1])]" (subscript_expression "pbVar12[(long)keylen + 1]" identifier [ (binary_expression "(long)keylen + 1" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = (subscript_expression "permute[(byte)(bVar1 + pbVar12[1])]" identifier [ (call_expression "(byte)(bVar1 + pbVar12[1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar12[1])" ( (binary_expression "bVar1 + pbVar12[1]" identifier + (subscript_expression "pbVar12[1]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "bVar1 = permute[(byte)(pbVar12[2] + pbVar12[(long)keylen + 1])];" (assignment_expression "bVar1 = permute[(byte)(pbVar12[2] + pbVar12[(long)keylen + 1])]" identifier = (subscript_expression "permute[(byte)(pbVar12[2] + pbVar12[(long)keylen + 1])]" identifier [ (call_expression "(byte)(pbVar12[2] + pbVar12[(long)keylen + 1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pbVar12[2] + pbVar12[(long)keylen + 1])" ( (binary_expression "pbVar12[2] + pbVar12[(long)keylen + 1]" (subscript_expression "pbVar12[2]" identifier [ number_literal ]) + (subscript_expression "pbVar12[(long)keylen + 1]" identifier [ (binary_expression "(long)keylen + 1" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar12[(long)keylen + 2] = bVar1;" (assignment_expression "pbVar12[(long)keylen + 2] = bVar1" (subscript_expression "pbVar12[(long)keylen + 2]" identifier [ (binary_expression "(long)keylen + 2" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = identifier) ;) (expression_statement "bVar1 = permute[(byte)(bVar1 + pbVar12[3])];" (assignment_expression "bVar1 = permute[(byte)(bVar1 + pbVar12[3])]" identifier = (subscript_expression "permute[(byte)(bVar1 + pbVar12[3])]" identifier [ (call_expression "(byte)(bVar1 + pbVar12[3])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar12[3])" ( (binary_expression "bVar1 + pbVar12[3]" identifier + (subscript_expression "pbVar12[3]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "pbVar12[(long)keylen + 3] = bVar1;" (assignment_expression "pbVar12[(long)keylen + 3] = bVar1" (subscript_expression "pbVar12[(long)keylen + 3]" identifier [ (binary_expression "(long)keylen + 3" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = identifier) ;) (expression_statement "bVar1 = permute[(byte)(bVar1 + pbVar12[4])];" (assignment_expression "bVar1 = permute[(byte)(bVar1 + pbVar12[4])]" identifier = (subscript_expression "permute[(byte)(bVar1 + pbVar12[4])]" identifier [ (call_expression "(byte)(bVar1 + pbVar12[4])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar12[4])" ( (binary_expression "bVar1 + pbVar12[4]" identifier + (subscript_expression "pbVar12[4]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "pbVar12[(long)keylen + 4] = bVar1;" (assignment_expression "pbVar12[(long)keylen + 4] = bVar1" (subscript_expression "pbVar12[(long)keylen + 4]" identifier [ (binary_expression "(long)keylen + 4" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = identifier) ;) (expression_statement "bVar1 = permute[(byte)(bVar1 + pbVar12[5])];" (assignment_expression "bVar1 = permute[(byte)(bVar1 + pbVar12[5])]" identifier = (subscript_expression "permute[(byte)(bVar1 + pbVar12[5])]" identifier [ (call_expression "(byte)(bVar1 + pbVar12[5])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar12[5])" ( (binary_expression "bVar1 + pbVar12[5]" identifier + (subscript_expression "pbVar12[5]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "pbVar12[(long)keylen + 5] = bVar1;" (assignment_expression "pbVar12[(long)keylen + 5] = bVar1" (subscript_expression "pbVar12[(long)keylen + 5]" identifier [ (binary_expression "(long)keylen + 5" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = identifier) ;) (expression_statement "bVar1 = permute[(byte)(bVar1 + pbVar12[6])];" (assignment_expression "bVar1 = permute[(byte)(bVar1 + pbVar12[6])]" identifier = (subscript_expression "permute[(byte)(bVar1 + pbVar12[6])]" identifier [ (call_expression "(byte)(bVar1 + pbVar12[6])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar12[6])" ( (binary_expression "bVar1 + pbVar12[6]" identifier + (subscript_expression "pbVar12[6]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "pbVar12[(long)keylen + 6] = bVar1;" (assignment_expression "pbVar12[(long)keylen + 6] = bVar1" (subscript_expression "pbVar12[(long)keylen + 6]" identifier [ (binary_expression "(long)keylen + 6" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = identifier) ;) (expression_statement "pbVar12[(long)keylen + 7] = permute[(byte)(bVar1 + pbVar12[7])];" (assignment_expression "pbVar12[(long)keylen + 7] = permute[(byte)(bVar1 + pbVar12[7])]" (subscript_expression "pbVar12[(long)keylen + 7]" identifier [ (binary_expression "(long)keylen + 7" (cast_expression "(long)keylen" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = (subscript_expression "permute[(byte)(bVar1 + pbVar12[7])]" identifier [ (call_expression "(byte)(bVar1 + pbVar12[7])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar12[7])" ( (binary_expression "bVar1 + pbVar12[7]" identifier + (subscript_expression "pbVar12[7]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "pbVar12 = pbVar12 + 8;" (assignment_expression "pbVar12 = pbVar12 + 8" identifier = (binary_expression "pbVar12 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar12 != abStack_98 + (ulong)(-keylen + 0x7f) + 1)" ( (binary_expression "pbVar12 != abStack_98 + (ulong)(-keylen + 0x7f) + 1" identifier != (binary_expression "abStack_98 + (ulong)(-keylen + 0x7f) + 1" (binary_expression "abStack_98 + (ulong)(-keylen + 0x7f)" identifier + (call_expression "(ulong)(-keylen + 0x7f)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(-keylen + 0x7f)" ( (binary_expression "-keylen + 0x7f" (unary_expression "-keylen" - identifier) + number_literal) )))) + number_literal)) )) ;) })) (labeled_statement "LAB_001205db:\n  uVar3 = iVar4 + 7U >> 3;" statement_identifier : (expression_statement "uVar3 = iVar4 + 7U >> 3;" (assignment_expression "uVar3 = iVar4 + 7U >> 3" identifier = (binary_expression "iVar4 + 7U >> 3" (binary_expression "iVar4 + 7U" identifier + number_literal) >> number_literal)) ;)) (expression_statement "uVar15 = 0x80 - uVar3;" (assignment_expression "uVar15 = 0x80 - uVar3" identifier = (binary_expression "0x80 - uVar3" number_literal - identifier)) ;) (expression_statement "abStack_98[uVar15] = permute[(byte)(0xff >> (-(char)iVar4 & 7U)) & abStack_98[uVar15]];" (assignment_expression "abStack_98[uVar15] = permute[(byte)(0xff >> (-(char)iVar4 & 7U)) & abStack_98[uVar15]]" (subscript_expression "abStack_98[uVar15]" identifier [ identifier ]) = (subscript_expression "permute[(byte)(0xff >> (-(char)iVar4 & 7U)) & abStack_98[uVar15]]" identifier [ (binary_expression "(byte)(0xff >> (-(char)iVar4 & 7U)) & abStack_98[uVar15]" (call_expression "(byte)(0xff >> (-(char)iVar4 & 7U))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(0xff >> (-(char)iVar4 & 7U))" ( (binary_expression "0xff >> (-(char)iVar4 & 7U)" number_literal >> (parenthesized_expression "(-(char)iVar4 & 7U)" ( (binary_expression "-(char)iVar4 & 7U" (unary_expression "-(char)iVar4" - (cast_expression "(char)iVar4" ( (type_descriptor "char" primitive_type) ) identifier)) & number_literal) ))) ))) & (subscript_expression "abStack_98[uVar15]" identifier [ identifier ])) ])) ;) (expression_statement "uVar3 = 0x7f - uVar3;" (assignment_expression "uVar3 = 0x7f - uVar3" identifier = (binary_expression "0x7f - uVar3" number_literal - identifier)) ;) (if_statement "if (-1 < (int)uVar3) {\n    lVar14 = (long)(int)uVar3;\n    pbVar12 = abStack_98 + lVar14;\n    pbVar6 = abStack_98 + (lVar14 - (ulong)uVar3) + -1;\n    iVar4 = (int)pbVar12;\n    iVar13 = -iVar4 + 0x7f;\n    uVar3 = iVar4 - (int)pbVar6 & 3;\n    if (uVar3 != 0) {\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          *pbVar12 = permute[abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]];\n          pbVar12 = abStack_98 + lVar14 + -1;\n        }\n        *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n        pbVar12 = pbVar12 + -1;\n      }\n      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n      pbVar12 = pbVar12 + -1;\n      if (pbVar12 == pbVar6) goto LAB_0012071d;\n    }\n    do {\n      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n      iVar2 = (int)(pbVar12 + -1);\n      pbVar12[-1] = permute[abStack_98[(uint)(iVar13 + iVar2)] ^ *pbVar12];\n      pbVar12[-2] = permute[abStack_98[(uint)(iVar13 + (int)pbVar12 + -2)] ^ pbVar12[-1]];\n      pbVar12[-3] = permute[abStack_98[(uint)(-iVar4 + 0x7d + iVar2)] ^ pbVar12[-2]];\n      pbVar12 = pbVar12 + -4;\n    } while (pbVar12 != pbVar6);\n  }" if (parenthesized_expression "(-1 < (int)uVar3)" ( (binary_expression "-1 < (int)uVar3" number_literal < (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    lVar14 = (long)(int)uVar3;\n    pbVar12 = abStack_98 + lVar14;\n    pbVar6 = abStack_98 + (lVar14 - (ulong)uVar3) + -1;\n    iVar4 = (int)pbVar12;\n    iVar13 = -iVar4 + 0x7f;\n    uVar3 = iVar4 - (int)pbVar6 & 3;\n    if (uVar3 != 0) {\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          *pbVar12 = permute[abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]];\n          pbVar12 = abStack_98 + lVar14 + -1;\n        }\n        *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n        pbVar12 = pbVar12 + -1;\n      }\n      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n      pbVar12 = pbVar12 + -1;\n      if (pbVar12 == pbVar6) goto LAB_0012071d;\n    }\n    do {\n      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n      iVar2 = (int)(pbVar12 + -1);\n      pbVar12[-1] = permute[abStack_98[(uint)(iVar13 + iVar2)] ^ *pbVar12];\n      pbVar12[-2] = permute[abStack_98[(uint)(iVar13 + (int)pbVar12 + -2)] ^ pbVar12[-1]];\n      pbVar12[-3] = permute[abStack_98[(uint)(-iVar4 + 0x7d + iVar2)] ^ pbVar12[-2]];\n      pbVar12 = pbVar12 + -4;\n    } while (pbVar12 != pbVar6);\n  }" { (expression_statement "lVar14 = (long)(int)uVar3;" (assignment_expression "lVar14 = (long)(int)uVar3" identifier = (cast_expression "(long)(int)uVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar12 = abStack_98 + lVar14;" (assignment_expression "pbVar12 = abStack_98 + lVar14" identifier = (binary_expression "abStack_98 + lVar14" identifier + identifier)) ;) (expression_statement "pbVar6 = abStack_98 + (lVar14 - (ulong)uVar3) + -1;" (assignment_expression "pbVar6 = abStack_98 + (lVar14 - (ulong)uVar3) + -1" identifier = (binary_expression "abStack_98 + (lVar14 - (ulong)uVar3) + -1" (binary_expression "abStack_98 + (lVar14 - (ulong)uVar3)" identifier + (parenthesized_expression "(lVar14 - (ulong)uVar3)" ( (binary_expression "lVar14 - (ulong)uVar3" identifier - (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ))) + number_literal)) ;) (expression_statement "iVar4 = (int)pbVar12;" (assignment_expression "iVar4 = (int)pbVar12" identifier = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar13 = -iVar4 + 0x7f;" (assignment_expression "iVar13 = -iVar4 + 0x7f" identifier = (binary_expression "-iVar4 + 0x7f" (unary_expression "-iVar4" - identifier) + number_literal)) ;) (expression_statement "uVar3 = iVar4 - (int)pbVar6 & 3;" (assignment_expression "uVar3 = iVar4 - (int)pbVar6 & 3" identifier = (binary_expression "iVar4 - (int)pbVar6 & 3" (binary_expression "iVar4 - (int)pbVar6" identifier - (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal)) ;) (if_statement "if (uVar3 != 0) {\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          *pbVar12 = permute[abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]];\n          pbVar12 = abStack_98 + lVar14 + -1;\n        }\n        *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n        pbVar12 = pbVar12 + -1;\n      }\n      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n      pbVar12 = pbVar12 + -1;\n      if (pbVar12 == pbVar6) goto LAB_0012071d;\n    }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          *pbVar12 = permute[abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]];\n          pbVar12 = abStack_98 + lVar14 + -1;\n        }\n        *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n        pbVar12 = pbVar12 + -1;\n      }\n      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n      pbVar12 = pbVar12 + -1;\n      if (pbVar12 == pbVar6) goto LAB_0012071d;\n    }" { (if_statement "if (uVar3 != 1) {\n        if (uVar3 != 2) {\n          *pbVar12 = permute[abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]];\n          pbVar12 = abStack_98 + lVar14 + -1;\n        }\n        *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n        pbVar12 = pbVar12 + -1;\n      }" if (parenthesized_expression "(uVar3 != 1)" ( (binary_expression "uVar3 != 1" identifier != number_literal) )) (compound_statement "{\n        if (uVar3 != 2) {\n          *pbVar12 = permute[abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]];\n          pbVar12 = abStack_98 + lVar14 + -1;\n        }\n        *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n        pbVar12 = pbVar12 + -1;\n      }" { (if_statement "if (uVar3 != 2) {\n          *pbVar12 = permute[abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]];\n          pbVar12 = abStack_98 + lVar14 + -1;\n        }" if (parenthesized_expression "(uVar3 != 2)" ( (binary_expression "uVar3 != 2" identifier != number_literal) )) (compound_statement "{\n          *pbVar12 = permute[abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]];\n          pbVar12 = abStack_98 + lVar14 + -1;\n        }" { (expression_statement "*pbVar12 = permute[abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]];" (assignment_expression "*pbVar12 = permute[abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]]" (pointer_expression "*pbVar12" * identifier) = (subscript_expression "permute[abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]]" identifier [ (binary_expression "abStack_98[(uint)(iVar13 + iVar4)] ^ abStack_98[lVar14 + 1]" (subscript_expression "abStack_98[(uint)(iVar13 + iVar4)]" identifier [ (call_expression "(uint)(iVar13 + iVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar13 + iVar4)" ( (binary_expression "iVar13 + iVar4" identifier + identifier) ))) ]) ^ (subscript_expression "abStack_98[lVar14 + 1]" identifier [ (binary_expression "lVar14 + 1" identifier + number_literal) ])) ])) ;) (expression_statement "pbVar12 = abStack_98 + lVar14 + -1;" (assignment_expression "pbVar12 = abStack_98 + lVar14 + -1" identifier = (binary_expression "abStack_98 + lVar14 + -1" (binary_expression "abStack_98 + lVar14" identifier + identifier) + number_literal)) ;) })) (expression_statement "*pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];" (assignment_expression "*pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]]" (pointer_expression "*pbVar12" * identifier) = (subscript_expression "permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]]" identifier [ (binary_expression "abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]" (subscript_expression "abStack_98[(uint)(iVar13 + (int)pbVar12)]" identifier [ (call_expression "(uint)(iVar13 + (int)pbVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar13 + (int)pbVar12)" ( (binary_expression "iVar13 + (int)pbVar12" identifier + (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ]) ^ (subscript_expression "pbVar12[1]" identifier [ number_literal ])) ])) ;) (expression_statement "pbVar12 = pbVar12 + -1;" (assignment_expression "pbVar12 = pbVar12 + -1" identifier = (binary_expression "pbVar12 + -1" identifier + number_literal)) ;) })) (expression_statement "*pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];" (assignment_expression "*pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]]" (pointer_expression "*pbVar12" * identifier) = (subscript_expression "permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]]" identifier [ (binary_expression "abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]" (subscript_expression "abStack_98[(uint)(iVar13 + (int)pbVar12)]" identifier [ (call_expression "(uint)(iVar13 + (int)pbVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar13 + (int)pbVar12)" ( (binary_expression "iVar13 + (int)pbVar12" identifier + (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ]) ^ (subscript_expression "pbVar12[1]" identifier [ number_literal ])) ])) ;) (expression_statement "pbVar12 = pbVar12 + -1;" (assignment_expression "pbVar12 = pbVar12 + -1" identifier = (binary_expression "pbVar12 + -1" identifier + number_literal)) ;) (if_statement "if (pbVar12 == pbVar6) goto LAB_0012071d;" if (parenthesized_expression "(pbVar12 == pbVar6)" ( (binary_expression "pbVar12 == pbVar6" identifier == identifier) )) (goto_statement "goto LAB_0012071d;" goto statement_identifier ;)) })) (do_statement "do {\n      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n      iVar2 = (int)(pbVar12 + -1);\n      pbVar12[-1] = permute[abStack_98[(uint)(iVar13 + iVar2)] ^ *pbVar12];\n      pbVar12[-2] = permute[abStack_98[(uint)(iVar13 + (int)pbVar12 + -2)] ^ pbVar12[-1]];\n      pbVar12[-3] = permute[abStack_98[(uint)(-iVar4 + 0x7d + iVar2)] ^ pbVar12[-2]];\n      pbVar12 = pbVar12 + -4;\n    } while (pbVar12 != pbVar6);" do (compound_statement "{\n      *pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];\n      iVar2 = (int)(pbVar12 + -1);\n      pbVar12[-1] = permute[abStack_98[(uint)(iVar13 + iVar2)] ^ *pbVar12];\n      pbVar12[-2] = permute[abStack_98[(uint)(iVar13 + (int)pbVar12 + -2)] ^ pbVar12[-1]];\n      pbVar12[-3] = permute[abStack_98[(uint)(-iVar4 + 0x7d + iVar2)] ^ pbVar12[-2]];\n      pbVar12 = pbVar12 + -4;\n    }" { (expression_statement "*pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]];" (assignment_expression "*pbVar12 = permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]]" (pointer_expression "*pbVar12" * identifier) = (subscript_expression "permute[abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]]" identifier [ (binary_expression "abStack_98[(uint)(iVar13 + (int)pbVar12)] ^ pbVar12[1]" (subscript_expression "abStack_98[(uint)(iVar13 + (int)pbVar12)]" identifier [ (call_expression "(uint)(iVar13 + (int)pbVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar13 + (int)pbVar12)" ( (binary_expression "iVar13 + (int)pbVar12" identifier + (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ]) ^ (subscript_expression "pbVar12[1]" identifier [ number_literal ])) ])) ;) (expression_statement "iVar2 = (int)(pbVar12 + -1);" (assignment_expression "iVar2 = (int)(pbVar12 + -1)" identifier = (cast_expression "(int)(pbVar12 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar12 + -1)" ( (binary_expression "pbVar12 + -1" identifier + number_literal) )))) ;) (expression_statement "pbVar12[-1] = permute[abStack_98[(uint)(iVar13 + iVar2)] ^ *pbVar12];" (assignment_expression "pbVar12[-1] = permute[abStack_98[(uint)(iVar13 + iVar2)] ^ *pbVar12]" (subscript_expression "pbVar12[-1]" identifier [ number_literal ]) = (subscript_expression "permute[abStack_98[(uint)(iVar13 + iVar2)] ^ *pbVar12]" identifier [ (binary_expression "abStack_98[(uint)(iVar13 + iVar2)] ^ *pbVar12" (subscript_expression "abStack_98[(uint)(iVar13 + iVar2)]" identifier [ (call_expression "(uint)(iVar13 + iVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar13 + iVar2)" ( (binary_expression "iVar13 + iVar2" identifier + identifier) ))) ]) ^ (pointer_expression "*pbVar12" * identifier)) ])) ;) (expression_statement "pbVar12[-2] = permute[abStack_98[(uint)(iVar13 + (int)pbVar12 + -2)] ^ pbVar12[-1]];" (assignment_expression "pbVar12[-2] = permute[abStack_98[(uint)(iVar13 + (int)pbVar12 + -2)] ^ pbVar12[-1]]" (subscript_expression "pbVar12[-2]" identifier [ number_literal ]) = (subscript_expression "permute[abStack_98[(uint)(iVar13 + (int)pbVar12 + -2)] ^ pbVar12[-1]]" identifier [ (binary_expression "abStack_98[(uint)(iVar13 + (int)pbVar12 + -2)] ^ pbVar12[-1]" (subscript_expression "abStack_98[(uint)(iVar13 + (int)pbVar12 + -2)]" identifier [ (call_expression "(uint)(iVar13 + (int)pbVar12 + -2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar13 + (int)pbVar12 + -2)" ( (binary_expression "iVar13 + (int)pbVar12 + -2" (binary_expression "iVar13 + (int)pbVar12" identifier + (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) ))) ]) ^ (subscript_expression "pbVar12[-1]" identifier [ number_literal ])) ])) ;) (expression_statement "pbVar12[-3] = permute[abStack_98[(uint)(-iVar4 + 0x7d + iVar2)] ^ pbVar12[-2]];" (assignment_expression "pbVar12[-3] = permute[abStack_98[(uint)(-iVar4 + 0x7d + iVar2)] ^ pbVar12[-2]]" (subscript_expression "pbVar12[-3]" identifier [ number_literal ]) = (subscript_expression "permute[abStack_98[(uint)(-iVar4 + 0x7d + iVar2)] ^ pbVar12[-2]]" identifier [ (binary_expression "abStack_98[(uint)(-iVar4 + 0x7d + iVar2)] ^ pbVar12[-2]" (subscript_expression "abStack_98[(uint)(-iVar4 + 0x7d + iVar2)]" identifier [ (call_expression "(uint)(-iVar4 + 0x7d + iVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-iVar4 + 0x7d + iVar2)" ( (binary_expression "-iVar4 + 0x7d + iVar2" (binary_expression "-iVar4 + 0x7d" (unary_expression "-iVar4" - identifier) + number_literal) + identifier) ))) ]) ^ (subscript_expression "pbVar12[-2]" identifier [ number_literal ])) ])) ;) (expression_statement "pbVar12 = pbVar12 + -4;" (assignment_expression "pbVar12 = pbVar12 + -4" identifier = (binary_expression "pbVar12 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar12 != pbVar6)" ( (binary_expression "pbVar12 != pbVar6" identifier != identifier) )) ;) })) (labeled_statement "LAB_0012071d:\n  do {\n    (skey->des).ek[0] = (uint)pbVar16[1] * 0x100 + (uint)*pbVar16;\n    (skey->des).ek[1] = (uint)pbVar16[2] + (uint)pbVar16[3] * 0x100;\n    (skey->des).ek[2] = (uint)pbVar16[5] * 0x100 + (uint)pbVar16[4];\n    (skey->des).ek[3] = (uint)pbVar16[7] * 0x100 + (uint)pbVar16[6];\n    (skey->des).ek[4] = (uint)pbVar16[9] * 0x100 + (uint)pbVar16[8];\n    (skey->des).ek[5] = (uint)pbVar16[0xb] * 0x100 + (uint)pbVar16[10];\n    (skey->des).ek[6] = (uint)pbVar16[0xd] * 0x100 + (uint)pbVar16[0xc];\n    (skey->des).ek[7] = (uint)pbVar16[0xf] * 0x100 + (uint)pbVar16[0xe];\n    pbVar16 = pbVar16 + 0x10;\n    skey = (symmetric_key *)((skey->des).ek + 8);\n  } while (pbVar16 != abStack_98 + 0x80);" statement_identifier : (do_statement "do {\n    (skey->des).ek[0] = (uint)pbVar16[1] * 0x100 + (uint)*pbVar16;\n    (skey->des).ek[1] = (uint)pbVar16[2] + (uint)pbVar16[3] * 0x100;\n    (skey->des).ek[2] = (uint)pbVar16[5] * 0x100 + (uint)pbVar16[4];\n    (skey->des).ek[3] = (uint)pbVar16[7] * 0x100 + (uint)pbVar16[6];\n    (skey->des).ek[4] = (uint)pbVar16[9] * 0x100 + (uint)pbVar16[8];\n    (skey->des).ek[5] = (uint)pbVar16[0xb] * 0x100 + (uint)pbVar16[10];\n    (skey->des).ek[6] = (uint)pbVar16[0xd] * 0x100 + (uint)pbVar16[0xc];\n    (skey->des).ek[7] = (uint)pbVar16[0xf] * 0x100 + (uint)pbVar16[0xe];\n    pbVar16 = pbVar16 + 0x10;\n    skey = (symmetric_key *)((skey->des).ek + 8);\n  } while (pbVar16 != abStack_98 + 0x80);" do (compound_statement "{\n    (skey->des).ek[0] = (uint)pbVar16[1] * 0x100 + (uint)*pbVar16;\n    (skey->des).ek[1] = (uint)pbVar16[2] + (uint)pbVar16[3] * 0x100;\n    (skey->des).ek[2] = (uint)pbVar16[5] * 0x100 + (uint)pbVar16[4];\n    (skey->des).ek[3] = (uint)pbVar16[7] * 0x100 + (uint)pbVar16[6];\n    (skey->des).ek[4] = (uint)pbVar16[9] * 0x100 + (uint)pbVar16[8];\n    (skey->des).ek[5] = (uint)pbVar16[0xb] * 0x100 + (uint)pbVar16[10];\n    (skey->des).ek[6] = (uint)pbVar16[0xd] * 0x100 + (uint)pbVar16[0xc];\n    (skey->des).ek[7] = (uint)pbVar16[0xf] * 0x100 + (uint)pbVar16[0xe];\n    pbVar16 = pbVar16 + 0x10;\n    skey = (symmetric_key *)((skey->des).ek + 8);\n  }" { (expression_statement "(skey->des).ek[0] = (uint)pbVar16[1] * 0x100 + (uint)*pbVar16;" (assignment_expression "(skey->des).ek[0] = (uint)pbVar16[1] * 0x100 + (uint)*pbVar16" (subscript_expression "(skey->des).ek[0]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (binary_expression "(uint)pbVar16[1] * 0x100 + (uint)*pbVar16" (binary_expression "(uint)pbVar16[1] * 0x100" (cast_expression "(uint)pbVar16[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar16[1]" identifier [ number_literal ])) * number_literal) + (binary_expression "(uint)*pbVar16" (parenthesized_expression "(uint)" ( identifier )) * identifier))) ;) (expression_statement "(skey->des).ek[1] = (uint)pbVar16[2] + (uint)pbVar16[3] * 0x100;" (assignment_expression "(skey->des).ek[1] = (uint)pbVar16[2] + (uint)pbVar16[3] * 0x100" (subscript_expression "(skey->des).ek[1]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (binary_expression "(uint)pbVar16[2] + (uint)pbVar16[3] * 0x100" (cast_expression "(uint)pbVar16[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar16[2]" identifier [ number_literal ])) + (binary_expression "(uint)pbVar16[3] * 0x100" (cast_expression "(uint)pbVar16[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar16[3]" identifier [ number_literal ])) * number_literal))) ;) (expression_statement "(skey->des).ek[2] = (uint)pbVar16[5] * 0x100 + (uint)pbVar16[4];" (assignment_expression "(skey->des).ek[2] = (uint)pbVar16[5] * 0x100 + (uint)pbVar16[4]" (subscript_expression "(skey->des).ek[2]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (binary_expression "(uint)pbVar16[5] * 0x100 + (uint)pbVar16[4]" (binary_expression "(uint)pbVar16[5] * 0x100" (cast_expression "(uint)pbVar16[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar16[5]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar16[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar16[4]" identifier [ number_literal ])))) ;) (expression_statement "(skey->des).ek[3] = (uint)pbVar16[7] * 0x100 + (uint)pbVar16[6];" (assignment_expression "(skey->des).ek[3] = (uint)pbVar16[7] * 0x100 + (uint)pbVar16[6]" (subscript_expression "(skey->des).ek[3]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (binary_expression "(uint)pbVar16[7] * 0x100 + (uint)pbVar16[6]" (binary_expression "(uint)pbVar16[7] * 0x100" (cast_expression "(uint)pbVar16[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar16[7]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar16[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar16[6]" identifier [ number_literal ])))) ;) (expression_statement "(skey->des).ek[4] = (uint)pbVar16[9] * 0x100 + (uint)pbVar16[8];" (assignment_expression "(skey->des).ek[4] = (uint)pbVar16[9] * 0x100 + (uint)pbVar16[8]" (subscript_expression "(skey->des).ek[4]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (binary_expression "(uint)pbVar16[9] * 0x100 + (uint)pbVar16[8]" (binary_expression "(uint)pbVar16[9] * 0x100" (cast_expression "(uint)pbVar16[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar16[9]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar16[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar16[8]" identifier [ number_literal ])))) ;) (expression_statement "(skey->des).ek[5] = (uint)pbVar16[0xb] * 0x100 + (uint)pbVar16[10];" (assignment_expression "(skey->des).ek[5] = (uint)pbVar16[0xb] * 0x100 + (uint)pbVar16[10]" (subscript_expression "(skey->des).ek[5]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (binary_expression "(uint)pbVar16[0xb] * 0x100 + (uint)pbVar16[10]" (binary_expression "(uint)pbVar16[0xb] * 0x100" (cast_expression "(uint)pbVar16[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar16[0xb]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar16[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar16[10]" identifier [ number_literal ])))) ;) (expression_statement "(skey->des).ek[6] = (uint)pbVar16[0xd] * 0x100 + (uint)pbVar16[0xc];" (assignment_expression "(skey->des).ek[6] = (uint)pbVar16[0xd] * 0x100 + (uint)pbVar16[0xc]" (subscript_expression "(skey->des).ek[6]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (binary_expression "(uint)pbVar16[0xd] * 0x100 + (uint)pbVar16[0xc]" (binary_expression "(uint)pbVar16[0xd] * 0x100" (cast_expression "(uint)pbVar16[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar16[0xd]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar16[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar16[0xc]" identifier [ number_literal ])))) ;) (expression_statement "(skey->des).ek[7] = (uint)pbVar16[0xf] * 0x100 + (uint)pbVar16[0xe];" (assignment_expression "(skey->des).ek[7] = (uint)pbVar16[0xf] * 0x100 + (uint)pbVar16[0xe]" (subscript_expression "(skey->des).ek[7]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (binary_expression "(uint)pbVar16[0xf] * 0x100 + (uint)pbVar16[0xe]" (binary_expression "(uint)pbVar16[0xf] * 0x100" (cast_expression "(uint)pbVar16[0xf]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar16[0xf]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar16[0xe]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar16[0xe]" identifier [ number_literal ])))) ;) (expression_statement "pbVar16 = pbVar16 + 0x10;" (assignment_expression "pbVar16 = pbVar16 + 0x10" identifier = (binary_expression "pbVar16 + 0x10" identifier + number_literal)) ;) (expression_statement "skey = (symmetric_key *)((skey->des).ek + 8);" (assignment_expression "skey = (symmetric_key *)((skey->des).ek + 8)" identifier = (cast_expression "(symmetric_key *)((skey->des).ek + 8)" ( (type_descriptor "symmetric_key *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((skey->des).ek + 8)" ( (binary_expression "(skey->des).ek + 8" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(pbVar16 != abStack_98 + 0x80)" ( (binary_expression "pbVar16 != abStack_98 + 0x80" identifier != (binary_expression "abStack_98 + 0x80" identifier + number_literal)) )) ;)) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_001207e0:\n  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lStack_10 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lStack_10 != *(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                    /* WARNING: Subroutine does not return */\n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }" { comment (expression_statement "uStack_a0 = rc2_setup;" (assignment_expression "uStack_a0 = rc2_setup" identifier = identifier) ;) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar4;" return identifier ;) })))
(translation_unit "uint rc2_setup_ex(byte *param_1,int param_2,int param_3,uint param_4,int *param_5)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  int iVar14;\n  long lVar15;\n  uint uVar16;\n  byte *pbVar17;\n  long in_FS_OFFSET;\n  undefined8 uStack_a0;\n  byte abStack_98 [136];\n  long lStack_10;\n  \n  pbVar7 = abStack_98;\n  pbVar8 = abStack_98;\n  pbVar9 = abStack_98;\n  pbVar10 = abStack_98;\n  pbVar11 = abStack_98;\n  pbVar12 = abStack_98;\n  pbVar13 = abStack_98;\n  pbVar17 = abStack_98;\n  lStack_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (byte *)0x0) {\n                    \n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }\n  if (param_5 == (int *)0x0) {\n                    \n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }\n  if ((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)) {\n    uVar3 = 3;\n    goto LAB_001207e0;\n  }\n  iVar5 = 0x400;\n  if (param_3 != 0) {\n    iVar5 = param_3;\n  }\n  uVar3 = param_4 & 0xffffffef;\n  if ((param_4 & 0xffffffef) != 0) {\n    uVar3 = 4;\n    goto LAB_001207e0;\n  }\n  if (0 < param_2) {\n    uVar6 = 0;\n    uVar4 = param_2 - 1U & 7;\n    if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }\n  }\n  if (param_2 < 0x80) {\n    uVar4 = -param_2 + 0x80U & 7;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);\n  }\nLAB_001205db:\n  uVar4 = iVar5 + 7U >> 3;\n  uVar16 = 0x80 - uVar4;\n  abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]];\n  uVar4 = 0x7f - uVar4;\n  if (-1 < (int)uVar4) {\n    lVar15 = (long)(int)uVar4;\n    pbVar13 = abStack_98 + lVar15;\n    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;\n    iVar5 = (int)pbVar13;\n    iVar14 = -iVar5 + 0x7f;\n    uVar4 = iVar5 - (int)pbVar7 & 3;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }\n    do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);\n  }\nLAB_0012071d:\n  do {\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  } while (pbVar17 != abStack_98 + 0x80);\nLAB_001207e0:\n  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }\n  return uVar3;\n}\n\n" (function_definition "uint rc2_setup_ex(byte *param_1,int param_2,int param_3,uint param_4,int *param_5)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  int iVar14;\n  long lVar15;\n  uint uVar16;\n  byte *pbVar17;\n  long in_FS_OFFSET;\n  undefined8 uStack_a0;\n  byte abStack_98 [136];\n  long lStack_10;\n  \n  pbVar7 = abStack_98;\n  pbVar8 = abStack_98;\n  pbVar9 = abStack_98;\n  pbVar10 = abStack_98;\n  pbVar11 = abStack_98;\n  pbVar12 = abStack_98;\n  pbVar13 = abStack_98;\n  pbVar17 = abStack_98;\n  lStack_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (byte *)0x0) {\n                    \n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }\n  if (param_5 == (int *)0x0) {\n                    \n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }\n  if ((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)) {\n    uVar3 = 3;\n    goto LAB_001207e0;\n  }\n  iVar5 = 0x400;\n  if (param_3 != 0) {\n    iVar5 = param_3;\n  }\n  uVar3 = param_4 & 0xffffffef;\n  if ((param_4 & 0xffffffef) != 0) {\n    uVar3 = 4;\n    goto LAB_001207e0;\n  }\n  if (0 < param_2) {\n    uVar6 = 0;\n    uVar4 = param_2 - 1U & 7;\n    if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }\n  }\n  if (param_2 < 0x80) {\n    uVar4 = -param_2 + 0x80U & 7;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);\n  }\nLAB_001205db:\n  uVar4 = iVar5 + 7U >> 3;\n  uVar16 = 0x80 - uVar4;\n  abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]];\n  uVar4 = 0x7f - uVar4;\n  if (-1 < (int)uVar4) {\n    lVar15 = (long)(int)uVar4;\n    pbVar13 = abStack_98 + lVar15;\n    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;\n    iVar5 = (int)pbVar13;\n    iVar14 = -iVar5 + 0x7f;\n    uVar4 = iVar5 - (int)pbVar7 & 3;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }\n    do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);\n  }\nLAB_0012071d:\n  do {\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  } while (pbVar17 != abStack_98 + 0x80);\nLAB_001207e0:\n  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }\n  return uVar3;\n}" type_identifier (function_declarator "rc2_setup_ex(byte *param_1,int param_2,int param_3,uint param_4,int *param_5)" identifier (parameter_list "(byte *param_1,int param_2,int param_3,uint param_4,int *param_5)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  int iVar14;\n  long lVar15;\n  uint uVar16;\n  byte *pbVar17;\n  long in_FS_OFFSET;\n  undefined8 uStack_a0;\n  byte abStack_98 [136];\n  long lStack_10;\n  \n  pbVar7 = abStack_98;\n  pbVar8 = abStack_98;\n  pbVar9 = abStack_98;\n  pbVar10 = abStack_98;\n  pbVar11 = abStack_98;\n  pbVar12 = abStack_98;\n  pbVar13 = abStack_98;\n  pbVar17 = abStack_98;\n  lStack_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (byte *)0x0) {\n                    \n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }\n  if (param_5 == (int *)0x0) {\n                    \n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }\n  if ((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)) {\n    uVar3 = 3;\n    goto LAB_001207e0;\n  }\n  iVar5 = 0x400;\n  if (param_3 != 0) {\n    iVar5 = param_3;\n  }\n  uVar3 = param_4 & 0xffffffef;\n  if ((param_4 & 0xffffffef) != 0) {\n    uVar3 = 4;\n    goto LAB_001207e0;\n  }\n  if (0 < param_2) {\n    uVar6 = 0;\n    uVar4 = param_2 - 1U & 7;\n    if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }\n  }\n  if (param_2 < 0x80) {\n    uVar4 = -param_2 + 0x80U & 7;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);\n  }\nLAB_001205db:\n  uVar4 = iVar5 + 7U >> 3;\n  uVar16 = 0x80 - uVar4;\n  abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]];\n  uVar4 = 0x7f - uVar4;\n  if (-1 < (int)uVar4) {\n    lVar15 = (long)(int)uVar4;\n    pbVar13 = abStack_98 + lVar15;\n    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;\n    iVar5 = (int)pbVar13;\n    iVar14 = -iVar5 + 0x7f;\n    uVar4 = iVar5 - (int)pbVar7 & 3;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }\n    do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);\n  }\nLAB_0012071d:\n  do {\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  } while (pbVar17 != abStack_98 + 0x80);\nLAB_001207e0:\n  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }\n  return uVar3;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uStack_a0;" type_identifier identifier ;) (declaration "byte abStack_98 [136];" type_identifier (array_declarator "abStack_98 [136]" identifier [ number_literal ]) ;) (declaration "long lStack_10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "pbVar7 = abStack_98;" (assignment_expression "pbVar7 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar8 = abStack_98;" (assignment_expression "pbVar8 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar9 = abStack_98;" (assignment_expression "pbVar9 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar10 = abStack_98;" (assignment_expression "pbVar10 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar11 = abStack_98;" (assignment_expression "pbVar11 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar12 = abStack_98;" (assignment_expression "pbVar12 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar13 = abStack_98;" (assignment_expression "pbVar13 = abStack_98" identifier = identifier) ;) (expression_statement "pbVar17 = abStack_98;" (assignment_expression "pbVar17 = abStack_98" identifier = identifier) ;) (expression_statement "lStack_10 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lStack_10 = *(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_1 == (byte *)0x0) {\n                    \n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }" if (parenthesized_expression "(param_1 == (byte *)0x0)" ( (binary_expression "param_1 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }" { (expression_statement "uStack_a0 = (code *)0x1203b8;" (assignment_expression "uStack_a0 = (code *)0x1203b8" identifier = (cast_expression "(code *)0x1203b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);" (call_expression "crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c)" identifier (argument_list "("key != NULL","src/ciphers/rc2.c",0x4c)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/ciphers/rc2.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_5 == (int *)0x0) {\n                    \n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }" if (parenthesized_expression "(param_5 == (int *)0x0)" ( (binary_expression "param_5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }" { (expression_statement "uStack_a0 = (code *)0x1203d0;" (assignment_expression "uStack_a0 = (code *)0x1203d0" identifier = (cast_expression "(code *)0x1203d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d)" identifier (argument_list "("skey != NULL","src/ciphers/rc2.c",0x4d)" ( (string_literal ""skey != NULL"" " string_content ") , (string_literal ""src/ciphers/rc2.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if ((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)) {\n    uVar3 = 3;\n    goto LAB_001207e0;\n  }" if (parenthesized_expression "((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3))" ( (binary_expression "(param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)" (parenthesized_expression "(param_2 == 0 || 0x80 < param_2)" ( (binary_expression "param_2 == 0 || 0x80 < param_2" (binary_expression "param_2 == 0" identifier == number_literal) || (binary_expression "0x80 < param_2" number_literal < identifier)) )) || (parenthesized_expression "(0x400 < param_3)" ( (binary_expression "0x400 < param_3" number_literal < identifier) ))) )) (compound_statement "{\n    uVar3 = 3;\n    goto LAB_001207e0;\n  }" { (expression_statement "uVar3 = 3;" (assignment_expression "uVar3 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_001207e0;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0x400;" (assignment_expression "iVar5 = 0x400" identifier = number_literal) ;) (if_statement "if (param_3 != 0) {\n    iVar5 = param_3;\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar5 = param_3;\n  }" { (expression_statement "iVar5 = param_3;" (assignment_expression "iVar5 = param_3" identifier = identifier) ;) })) (expression_statement "uVar3 = param_4 & 0xffffffef;" (assignment_expression "uVar3 = param_4 & 0xffffffef" identifier = (binary_expression "param_4 & 0xffffffef" identifier & number_literal)) ;) (if_statement "if ((param_4 & 0xffffffef) != 0) {\n    uVar3 = 4;\n    goto LAB_001207e0;\n  }" if (parenthesized_expression "((param_4 & 0xffffffef) != 0)" ( (binary_expression "(param_4 & 0xffffffef) != 0" (parenthesized_expression "(param_4 & 0xffffffef)" ( (binary_expression "param_4 & 0xffffffef" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar3 = 4;\n    goto LAB_001207e0;\n  }" { (expression_statement "uVar3 = 4;" (assignment_expression "uVar3 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_001207e0;" goto statement_identifier ;) })) (if_statement "if (0 < param_2) {\n    uVar6 = 0;\n    uVar4 = param_2 - 1U & 7;\n    if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }\n  }" if (parenthesized_expression "(0 < param_2)" ( (binary_expression "0 < param_2" number_literal < identifier) )) (compound_statement "{\n    uVar6 = 0;\n    uVar4 = param_2 - 1U & 7;\n    if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }\n  }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = param_2 - 1U & 7;" (assignment_expression "uVar4 = param_2 - 1U & 7" identifier = (binary_expression "param_2 - 1U & 7" (binary_expression "param_2 - 1U" identifier - number_literal) & number_literal)) ;) (if_statement "if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }" { (expression_statement "abStack_98[0] = *param_1;" (assignment_expression "abStack_98[0] = *param_1" (subscript_expression "abStack_98[0]" identifier [ number_literal ]) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (if_statement "if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }" if (parenthesized_expression "(uVar4 != 1)" ( (binary_expression "uVar4 != 1" identifier != number_literal) )) (compound_statement "{\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }" { (if_statement "if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }" if (parenthesized_expression "(uVar4 != 2)" ( (binary_expression "uVar4 != 2" identifier != number_literal) )) (compound_statement "{\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }" { (if_statement "if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }" if (parenthesized_expression "(uVar4 != 3)" ( (binary_expression "uVar4 != 3" identifier != number_literal) )) (compound_statement "{\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }" { (if_statement "if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }" if (parenthesized_expression "(uVar4 != 4)" ( (binary_expression "uVar4 != 4" identifier != number_literal) )) (compound_statement "{\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }" { (if_statement "if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }" if (parenthesized_expression "(uVar4 != 5)" ( (binary_expression "uVar4 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }" { (if_statement "if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }" if (parenthesized_expression "(uVar4 != 6)" ( (binary_expression "uVar4 != 6" identifier != number_literal) )) (compound_statement "{\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }" { (expression_statement "abStack_98[1] = param_1[1];" (assignment_expression "abStack_98[1] = param_1[1]" (subscript_expression "abStack_98[1]" identifier [ number_literal ]) = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = 2;" (assignment_expression "uVar6 = 2" identifier = number_literal) ;) })) (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" identifier [ identifier ]) = (subscript_expression "param_1[uVar6]" identifier [ identifier ])) ;) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) })) (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" identifier [ identifier ]) = (subscript_expression "param_1[uVar6]" identifier [ identifier ])) ;) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) })) (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" identifier [ identifier ]) = (subscript_expression "param_1[uVar6]" identifier [ identifier ])) ;) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) })) (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" identifier [ identifier ]) = (subscript_expression "param_1[uVar6]" identifier [ identifier ])) ;) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) })) (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" identifier [ identifier ]) = (subscript_expression "param_1[uVar6]" identifier [ identifier ])) ;) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) })) })) (while_statement "while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }" { (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" identifier [ identifier ]) = (subscript_expression "param_1[uVar6]" identifier [ identifier ])) ;) (if_statement "if (uVar6 == param_2 - 1U) break;" if (parenthesized_expression "(uVar6 == param_2 - 1U)" ( (binary_expression "uVar6 == param_2 - 1U" identifier == (binary_expression "param_2 - 1U" identifier - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "abStack_98[uVar6 + 1] = param_1[uVar6 + 1];" (assignment_expression "abStack_98[uVar6 + 1] = param_1[uVar6 + 1]" (subscript_expression "abStack_98[uVar6 + 1]" identifier [ (binary_expression "uVar6 + 1" identifier + number_literal) ]) = (subscript_expression "param_1[uVar6 + 1]" identifier [ (binary_expression "uVar6 + 1" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar6 + 2] = param_1[uVar6 + 2];" (assignment_expression "abStack_98[uVar6 + 2] = param_1[uVar6 + 2]" (subscript_expression "abStack_98[uVar6 + 2]" identifier [ (binary_expression "uVar6 + 2" identifier + number_literal) ]) = (subscript_expression "param_1[uVar6 + 2]" identifier [ (binary_expression "uVar6 + 2" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar6 + 3] = param_1[uVar6 + 3];" (assignment_expression "abStack_98[uVar6 + 3] = param_1[uVar6 + 3]" (subscript_expression "abStack_98[uVar6 + 3]" identifier [ (binary_expression "uVar6 + 3" identifier + number_literal) ]) = (subscript_expression "param_1[uVar6 + 3]" identifier [ (binary_expression "uVar6 + 3" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar6 + 4] = param_1[uVar6 + 4];" (assignment_expression "abStack_98[uVar6 + 4] = param_1[uVar6 + 4]" (subscript_expression "abStack_98[uVar6 + 4]" identifier [ (binary_expression "uVar6 + 4" identifier + number_literal) ]) = (subscript_expression "param_1[uVar6 + 4]" identifier [ (binary_expression "uVar6 + 4" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar6 + 5] = param_1[uVar6 + 5];" (assignment_expression "abStack_98[uVar6 + 5] = param_1[uVar6 + 5]" (subscript_expression "abStack_98[uVar6 + 5]" identifier [ (binary_expression "uVar6 + 5" identifier + number_literal) ]) = (subscript_expression "param_1[uVar6 + 5]" identifier [ (binary_expression "uVar6 + 5" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar6 + 6] = param_1[uVar6 + 6];" (assignment_expression "abStack_98[uVar6 + 6] = param_1[uVar6 + 6]" (subscript_expression "abStack_98[uVar6 + 6]" identifier [ (binary_expression "uVar6 + 6" identifier + number_literal) ]) = (subscript_expression "param_1[uVar6 + 6]" identifier [ (binary_expression "uVar6 + 6" identifier + number_literal) ])) ;) (expression_statement "abStack_98[uVar6 + 7] = param_1[uVar6 + 7];" (assignment_expression "abStack_98[uVar6 + 7] = param_1[uVar6 + 7]" (subscript_expression "abStack_98[uVar6 + 7]" identifier [ (binary_expression "uVar6 + 7" identifier + number_literal) ]) = (subscript_expression "param_1[uVar6 + 7]" identifier [ (binary_expression "uVar6 + 7" identifier + number_literal) ])) ;) (expression_statement "uVar6 = uVar6 + 8;" (assignment_expression "uVar6 = uVar6 + 8" identifier = (binary_expression "uVar6 + 8" identifier + number_literal)) ;) })) })) (if_statement "if (param_2 < 0x80) {\n    uVar4 = -param_2 + 0x80U & 7;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);\n  }" if (parenthesized_expression "(param_2 < 0x80)" ( (binary_expression "param_2 < 0x80" identifier < number_literal) )) (compound_statement "{\n    uVar4 = -param_2 + 0x80U & 7;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);\n  }" { (expression_statement "uVar4 = -param_2 + 0x80U & 7;" (assignment_expression "uVar4 = -param_2 + 0x80U & 7" identifier = (binary_expression "-param_2 + 0x80U & 7" (binary_expression "-param_2 + 0x80U" (unary_expression "-param_2" - identifier) + number_literal) & number_literal)) ;) (if_statement "if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }" { (if_statement "if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }" if (parenthesized_expression "(uVar4 != 1)" ( (binary_expression "uVar4 != 1" identifier != number_literal) )) (compound_statement "{\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }" { (if_statement "if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }" if (parenthesized_expression "(uVar4 != 2)" ( (binary_expression "uVar4 != 2" identifier != number_literal) )) (compound_statement "{\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }" { (if_statement "if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }" if (parenthesized_expression "(uVar4 != 3)" ( (binary_expression "uVar4 != 3" identifier != number_literal) )) (compound_statement "{\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }" { (if_statement "if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }" if (parenthesized_expression "(uVar4 != 4)" ( (binary_expression "uVar4 != 4" identifier != number_literal) )) (compound_statement "{\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }" { (if_statement "if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }" if (parenthesized_expression "(uVar4 != 5)" ( (binary_expression "uVar4 != 5" identifier != number_literal) )) (compound_statement "{\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }" { (if_statement "if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }" if (parenthesized_expression "(uVar4 != 6)" ( (binary_expression "uVar4 != 6" identifier != number_literal) )) (compound_statement "{\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }" { (expression_statement "abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];" (assignment_expression "abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])]" (subscript_expression "abStack_98[param_2]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(abStack_98[0] + abStack_98[(long)param_2 + -1])" ( (binary_expression "abStack_98[0] + abStack_98[(long)param_2 + -1]" (subscript_expression "abStack_98[0]" identifier [ number_literal ]) + (subscript_expression "abStack_98[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar7 = abStack_98 + 1;" (assignment_expression "pbVar7 = abStack_98 + 1" identifier = (binary_expression "abStack_98 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];" (assignment_expression "pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])]" (subscript_expression "pbVar7[param_2]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar7 + pbVar7[(long)param_2 + -1])" ( (binary_expression "*pbVar7 + pbVar7[(long)param_2 + -1]" (pointer_expression "*pbVar7" * identifier) + (subscript_expression "pbVar7[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar8 = pbVar7 + 1;" (assignment_expression "pbVar8 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];" (assignment_expression "pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])]" (subscript_expression "pbVar8[param_2]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar8 + pbVar8[(long)param_2 + -1])" ( (binary_expression "*pbVar8 + pbVar8[(long)param_2 + -1]" (pointer_expression "*pbVar8" * identifier) + (subscript_expression "pbVar8[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar9 = pbVar8 + 1;" (assignment_expression "pbVar9 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];" (assignment_expression "pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])]" (subscript_expression "pbVar9[param_2]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar9 + pbVar9[(long)param_2 + -1])" ( (binary_expression "*pbVar9 + pbVar9[(long)param_2 + -1]" (pointer_expression "*pbVar9" * identifier) + (subscript_expression "pbVar9[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar10 = pbVar9 + 1;" (assignment_expression "pbVar10 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];" (assignment_expression "pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])]" (subscript_expression "pbVar10[param_2]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar10 + pbVar10[(long)param_2 + -1])" ( (binary_expression "*pbVar10 + pbVar10[(long)param_2 + -1]" (pointer_expression "*pbVar10" * identifier) + (subscript_expression "pbVar10[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar11 = pbVar10 + 1;" (assignment_expression "pbVar11 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];" (assignment_expression "pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])]" (subscript_expression "pbVar11[param_2]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar11 + pbVar11[(long)param_2 + -1])" ( (binary_expression "*pbVar11 + pbVar11[(long)param_2 + -1]" (pointer_expression "*pbVar11" * identifier) + (subscript_expression "pbVar11[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar12 = pbVar11 + 1;" (assignment_expression "pbVar12 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) })) (expression_statement "pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];" (assignment_expression "pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])]" (subscript_expression "pbVar12[param_2]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar12 + pbVar12[(long)param_2 + -1])" ( (binary_expression "*pbVar12 + pbVar12[(long)param_2 + -1]" (pointer_expression "*pbVar12" * identifier) + (subscript_expression "pbVar12[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar13 = pbVar12 + 1;" (assignment_expression "pbVar13 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;" if (parenthesized_expression "(pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1)" ( (binary_expression "pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1" identifier == (binary_expression "abStack_98 + (ulong)(-param_2 + 0x7f) + 1" (binary_expression "abStack_98 + (ulong)(-param_2 + 0x7f)" identifier + (call_expression "(ulong)(-param_2 + 0x7f)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(-param_2 + 0x7f)" ( (binary_expression "-param_2 + 0x7f" (unary_expression "-param_2" - identifier) + number_literal) )))) + number_literal)) )) (goto_statement "goto LAB_001205db;" goto statement_identifier ;)) })) (do_statement "do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);" do (compound_statement "{\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    }" { (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])]" identifier = (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pbVar13 + pbVar13[(long)param_2 + -1])" ( (binary_expression "*pbVar13 + pbVar13[(long)param_2 + -1]" (pointer_expression "*pbVar13" * identifier) + (subscript_expression "pbVar13[(long)param_2 + -1]" identifier [ (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar13[param_2] = bVar1;" (assignment_expression "pbVar13[param_2] = bVar1" (subscript_expression "pbVar13[param_2]" identifier [ identifier ]) = identifier) ;) (expression_statement "pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];" (assignment_expression "pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])]" (subscript_expression "pbVar13[(long)param_2 + 1]" identifier [ (binary_expression "(long)param_2 + 1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(bVar1 + pbVar13[1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar13[1])" ( (binary_expression "bVar1 + pbVar13[1]" identifier + (subscript_expression "pbVar13[1]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])]" identifier = (subscript_expression "(&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pbVar13[2] + pbVar13[(long)param_2 + 1])" ( (binary_expression "pbVar13[2] + pbVar13[(long)param_2 + 1]" (subscript_expression "pbVar13[2]" identifier [ number_literal ]) + (subscript_expression "pbVar13[(long)param_2 + 1]" identifier [ (binary_expression "(long)param_2 + 1" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ])) ))) ])) ;) (expression_statement "pbVar13[(long)param_2 + 2] = bVar1;" (assignment_expression "pbVar13[(long)param_2 + 2] = bVar1" (subscript_expression "pbVar13[(long)param_2 + 2]" identifier [ (binary_expression "(long)param_2 + 2" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = identifier) ;) (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])]" identifier = (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(bVar1 + pbVar13[3])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar13[3])" ( (binary_expression "bVar1 + pbVar13[3]" identifier + (subscript_expression "pbVar13[3]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "pbVar13[(long)param_2 + 3] = bVar1;" (assignment_expression "pbVar13[(long)param_2 + 3] = bVar1" (subscript_expression "pbVar13[(long)param_2 + 3]" identifier [ (binary_expression "(long)param_2 + 3" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = identifier) ;) (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])]" identifier = (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(bVar1 + pbVar13[4])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar13[4])" ( (binary_expression "bVar1 + pbVar13[4]" identifier + (subscript_expression "pbVar13[4]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "pbVar13[(long)param_2 + 4] = bVar1;" (assignment_expression "pbVar13[(long)param_2 + 4] = bVar1" (subscript_expression "pbVar13[(long)param_2 + 4]" identifier [ (binary_expression "(long)param_2 + 4" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = identifier) ;) (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])]" identifier = (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(bVar1 + pbVar13[5])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar13[5])" ( (binary_expression "bVar1 + pbVar13[5]" identifier + (subscript_expression "pbVar13[5]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "pbVar13[(long)param_2 + 5] = bVar1;" (assignment_expression "pbVar13[(long)param_2 + 5] = bVar1" (subscript_expression "pbVar13[(long)param_2 + 5]" identifier [ (binary_expression "(long)param_2 + 5" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = identifier) ;) (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])]" identifier = (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(bVar1 + pbVar13[6])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar13[6])" ( (binary_expression "bVar1 + pbVar13[6]" identifier + (subscript_expression "pbVar13[6]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "pbVar13[(long)param_2 + 6] = bVar1;" (assignment_expression "pbVar13[(long)param_2 + 6] = bVar1" (subscript_expression "pbVar13[(long)param_2 + 6]" identifier [ (binary_expression "(long)param_2 + 6" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = identifier) ;) (expression_statement "pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];" (assignment_expression "pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])]" (subscript_expression "pbVar13[(long)param_2 + 7]" identifier [ (binary_expression "(long)param_2 + 7" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (call_expression "(byte)(bVar1 + pbVar13[7])" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + pbVar13[7])" ( (binary_expression "bVar1 + pbVar13[7]" identifier + (subscript_expression "pbVar13[7]" identifier [ number_literal ])) ))) ])) ;) (expression_statement "pbVar13 = pbVar13 + 8;" (assignment_expression "pbVar13 = pbVar13 + 8" identifier = (binary_expression "pbVar13 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1)" ( (binary_expression "pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1" identifier != (binary_expression "abStack_98 + (ulong)(-param_2 + 0x7f) + 1" (binary_expression "abStack_98 + (ulong)(-param_2 + 0x7f)" identifier + (call_expression "(ulong)(-param_2 + 0x7f)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(-param_2 + 0x7f)" ( (binary_expression "-param_2 + 0x7f" (unary_expression "-param_2" - identifier) + number_literal) )))) + number_literal)) )) ;) })) (labeled_statement "LAB_001205db:\n  uVar4 = iVar5 + 7U >> 3;" statement_identifier : (expression_statement "uVar4 = iVar5 + 7U >> 3;" (assignment_expression "uVar4 = iVar5 + 7U >> 3" identifier = (binary_expression "iVar5 + 7U >> 3" (binary_expression "iVar5 + 7U" identifier + number_literal) >> number_literal)) ;)) (expression_statement "uVar16 = 0x80 - uVar4;" (assignment_expression "uVar16 = 0x80 - uVar4" identifier = (binary_expression "0x80 - uVar4" number_literal - identifier)) ;) (expression_statement "abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]];" (assignment_expression "abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]]" (subscript_expression "abStack_98[uVar16]" identifier [ identifier ]) = (subscript_expression "(&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]" (call_expression "(byte)(0xff >> (-(char)iVar5 & 7U))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(0xff >> (-(char)iVar5 & 7U))" ( (binary_expression "0xff >> (-(char)iVar5 & 7U)" number_literal >> (parenthesized_expression "(-(char)iVar5 & 7U)" ( (binary_expression "-(char)iVar5 & 7U" (unary_expression "-(char)iVar5" - (cast_expression "(char)iVar5" ( (type_descriptor "char" primitive_type) ) identifier)) & number_literal) ))) ))) & (subscript_expression "abStack_98[uVar16]" identifier [ identifier ])) ])) ;) (expression_statement "uVar4 = 0x7f - uVar4;" (assignment_expression "uVar4 = 0x7f - uVar4" identifier = (binary_expression "0x7f - uVar4" number_literal - identifier)) ;) (if_statement "if (-1 < (int)uVar4) {\n    lVar15 = (long)(int)uVar4;\n    pbVar13 = abStack_98 + lVar15;\n    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;\n    iVar5 = (int)pbVar13;\n    iVar14 = -iVar5 + 0x7f;\n    uVar4 = iVar5 - (int)pbVar7 & 3;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }\n    do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);\n  }" if (parenthesized_expression "(-1 < (int)uVar4)" ( (binary_expression "-1 < (int)uVar4" number_literal < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    lVar15 = (long)(int)uVar4;\n    pbVar13 = abStack_98 + lVar15;\n    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;\n    iVar5 = (int)pbVar13;\n    iVar14 = -iVar5 + 0x7f;\n    uVar4 = iVar5 - (int)pbVar7 & 3;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }\n    do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);\n  }" { (expression_statement "lVar15 = (long)(int)uVar4;" (assignment_expression "lVar15 = (long)(int)uVar4" identifier = (cast_expression "(long)(int)uVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar13 = abStack_98 + lVar15;" (assignment_expression "pbVar13 = abStack_98 + lVar15" identifier = (binary_expression "abStack_98 + lVar15" identifier + identifier)) ;) (expression_statement "pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;" (assignment_expression "pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1" identifier = (binary_expression "abStack_98 + (lVar15 - (ulong)uVar4) + -1" (binary_expression "abStack_98 + (lVar15 - (ulong)uVar4)" identifier + (parenthesized_expression "(lVar15 - (ulong)uVar4)" ( (binary_expression "lVar15 - (ulong)uVar4" identifier - (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ))) + number_literal)) ;) (expression_statement "iVar5 = (int)pbVar13;" (assignment_expression "iVar5 = (int)pbVar13" identifier = (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar14 = -iVar5 + 0x7f;" (assignment_expression "iVar14 = -iVar5 + 0x7f" identifier = (binary_expression "-iVar5 + 0x7f" (unary_expression "-iVar5" - identifier) + number_literal)) ;) (expression_statement "uVar4 = iVar5 - (int)pbVar7 & 3;" (assignment_expression "uVar4 = iVar5 - (int)pbVar7 & 3" identifier = (binary_expression "iVar5 - (int)pbVar7 & 3" (binary_expression "iVar5 - (int)pbVar7" identifier - (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier)) & number_literal)) ;) (if_statement "if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }" { (if_statement "if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }" if (parenthesized_expression "(uVar4 != 1)" ( (binary_expression "uVar4 != 1" identifier != number_literal) )) (compound_statement "{\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }" { (if_statement "if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }" if (parenthesized_expression "(uVar4 != 2)" ( (binary_expression "uVar4 != 2" identifier != number_literal) )) (compound_statement "{\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }" { (expression_statement "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];" (assignment_expression "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]]" (pointer_expression "*pbVar13" * identifier) = (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]" (subscript_expression "abStack_98[(uint)(iVar14 + iVar5)]" identifier [ (call_expression "(uint)(iVar14 + iVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 + iVar5)" ( (binary_expression "iVar14 + iVar5" identifier + identifier) ))) ]) ^ (subscript_expression "abStack_98[lVar15 + 1]" identifier [ (binary_expression "lVar15 + 1" identifier + number_literal) ])) ])) ;) (expression_statement "pbVar13 = abStack_98 + lVar15 + -1;" (assignment_expression "pbVar13 = abStack_98 + lVar15 + -1" identifier = (binary_expression "abStack_98 + lVar15 + -1" (binary_expression "abStack_98 + lVar15" identifier + identifier) + number_literal)) ;) })) (expression_statement "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];" (assignment_expression "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (pointer_expression "*pbVar13" * identifier) = (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]" (subscript_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)]" identifier [ (call_expression "(uint)(iVar14 + (int)pbVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 + (int)pbVar13)" ( (binary_expression "iVar14 + (int)pbVar13" identifier + (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ]) ^ (subscript_expression "pbVar13[1]" identifier [ number_literal ])) ])) ;) (expression_statement "pbVar13 = pbVar13 + -1;" (assignment_expression "pbVar13 = pbVar13 + -1" identifier = (binary_expression "pbVar13 + -1" identifier + number_literal)) ;) })) (expression_statement "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];" (assignment_expression "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (pointer_expression "*pbVar13" * identifier) = (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]" (subscript_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)]" identifier [ (call_expression "(uint)(iVar14 + (int)pbVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 + (int)pbVar13)" ( (binary_expression "iVar14 + (int)pbVar13" identifier + (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ]) ^ (subscript_expression "pbVar13[1]" identifier [ number_literal ])) ])) ;) (expression_statement "pbVar13 = pbVar13 + -1;" (assignment_expression "pbVar13 = pbVar13 + -1" identifier = (binary_expression "pbVar13 + -1" identifier + number_literal)) ;) (if_statement "if (pbVar13 == pbVar7) goto LAB_0012071d;" if (parenthesized_expression "(pbVar13 == pbVar7)" ( (binary_expression "pbVar13 == pbVar7" identifier == identifier) )) (goto_statement "goto LAB_0012071d;" goto statement_identifier ;)) })) (do_statement "do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);" do (compound_statement "{\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    }" { (expression_statement "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];" (assignment_expression "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (pointer_expression "*pbVar13" * identifier) = (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]" (subscript_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)]" identifier [ (call_expression "(uint)(iVar14 + (int)pbVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 + (int)pbVar13)" ( (binary_expression "iVar14 + (int)pbVar13" identifier + (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ]) ^ (subscript_expression "pbVar13[1]" identifier [ number_literal ])) ])) ;) (expression_statement "iVar2 = (int)(pbVar13 + -1);" (assignment_expression "iVar2 = (int)(pbVar13 + -1)" identifier = (cast_expression "(int)(pbVar13 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar13 + -1)" ( (binary_expression "pbVar13 + -1" identifier + number_literal) )))) ;) (expression_statement "pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];" (assignment_expression "pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13]" (subscript_expression "pbVar13[-1]" identifier [ number_literal ]) = (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13" (subscript_expression "abStack_98[(uint)(iVar14 + iVar2)]" identifier [ (call_expression "(uint)(iVar14 + iVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 + iVar2)" ( (binary_expression "iVar14 + iVar2" identifier + identifier) ))) ]) ^ (pointer_expression "*pbVar13" * identifier)) ])) ;) (expression_statement "pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];" (assignment_expression "pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]]" (subscript_expression "pbVar13[-2]" identifier [ number_literal ]) = (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]" (subscript_expression "abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)]" identifier [ (call_expression "(uint)(iVar14 + (int)pbVar13 + -2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar14 + (int)pbVar13 + -2)" ( (binary_expression "iVar14 + (int)pbVar13 + -2" (binary_expression "iVar14 + (int)pbVar13" identifier + (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) ))) ]) ^ (subscript_expression "pbVar13[-1]" identifier [ number_literal ])) ])) ;) (expression_statement "pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];" (assignment_expression "pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]]" (subscript_expression "pbVar13[-3]" identifier [ number_literal ]) = (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]]" (parenthesized_expression "(&DAT_001ab2c0)" ( (pointer_expression "&DAT_001ab2c0" & identifier) )) [ (binary_expression "abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]" (subscript_expression "abStack_98[(uint)(-iVar5 + 0x7d + iVar2)]" identifier [ (call_expression "(uint)(-iVar5 + 0x7d + iVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-iVar5 + 0x7d + iVar2)" ( (binary_expression "-iVar5 + 0x7d + iVar2" (binary_expression "-iVar5 + 0x7d" (unary_expression "-iVar5" - identifier) + number_literal) + identifier) ))) ]) ^ (subscript_expression "pbVar13[-2]" identifier [ number_literal ])) ])) ;) (expression_statement "pbVar13 = pbVar13 + -4;" (assignment_expression "pbVar13 = pbVar13 + -4" identifier = (binary_expression "pbVar13 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar13 != pbVar7)" ( (binary_expression "pbVar13 != pbVar7" identifier != identifier) )) ;) })) (labeled_statement "LAB_0012071d:\n  do {\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  } while (pbVar17 != abStack_98 + 0x80);" statement_identifier : (do_statement "do {\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  } while (pbVar17 != abStack_98 + 0x80);" do (compound_statement "{\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  }" { (expression_statement "*param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;" (assignment_expression "*param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17" (pointer_expression "*param_5" * identifier) = (binary_expression "(uint)pbVar17[1] * 0x100 + (uint)*pbVar17" (binary_expression "(uint)pbVar17[1] * 0x100" (cast_expression "(uint)pbVar17[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[1]" identifier [ number_literal ])) * number_literal) + (binary_expression "(uint)*pbVar17" (parenthesized_expression "(uint)" ( identifier )) * identifier))) ;) (expression_statement "param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;" (assignment_expression "param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (binary_expression "(uint)pbVar17[2] + (uint)pbVar17[3] * 0x100" (cast_expression "(uint)pbVar17[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[2]" identifier [ number_literal ])) + (binary_expression "(uint)pbVar17[3] * 0x100" (cast_expression "(uint)pbVar17[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[3]" identifier [ number_literal ])) * number_literal))) ;) (expression_statement "param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];" (assignment_expression "param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4]" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (binary_expression "(uint)pbVar17[5] * 0x100 + (uint)pbVar17[4]" (binary_expression "(uint)pbVar17[5] * 0x100" (cast_expression "(uint)pbVar17[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[5]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar17[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[4]" identifier [ number_literal ])))) ;) (expression_statement "param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];" (assignment_expression "param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6]" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (binary_expression "(uint)pbVar17[7] * 0x100 + (uint)pbVar17[6]" (binary_expression "(uint)pbVar17[7] * 0x100" (cast_expression "(uint)pbVar17[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[7]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar17[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[6]" identifier [ number_literal ])))) ;) (expression_statement "param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];" (assignment_expression "param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8]" (subscript_expression "param_5[4]" identifier [ number_literal ]) = (binary_expression "(uint)pbVar17[9] * 0x100 + (uint)pbVar17[8]" (binary_expression "(uint)pbVar17[9] * 0x100" (cast_expression "(uint)pbVar17[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[9]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar17[8]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[8]" identifier [ number_literal ])))) ;) (expression_statement "param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];" (assignment_expression "param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10]" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (binary_expression "(uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10]" (binary_expression "(uint)pbVar17[0xb] * 0x100" (cast_expression "(uint)pbVar17[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[0xb]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar17[10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[10]" identifier [ number_literal ])))) ;) (expression_statement "param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];" (assignment_expression "param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc]" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (binary_expression "(uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc]" (binary_expression "(uint)pbVar17[0xd] * 0x100" (cast_expression "(uint)pbVar17[0xd]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[0xd]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar17[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[0xc]" identifier [ number_literal ])))) ;) (expression_statement "param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];" (assignment_expression "param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe]" (subscript_expression "param_5[7]" identifier [ number_literal ]) = (binary_expression "(uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe]" (binary_expression "(uint)pbVar17[0xf] * 0x100" (cast_expression "(uint)pbVar17[0xf]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[0xf]" identifier [ number_literal ])) * number_literal) + (cast_expression "(uint)pbVar17[0xe]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar17[0xe]" identifier [ number_literal ])))) ;) (expression_statement "pbVar17 = pbVar17 + 0x10;" (assignment_expression "pbVar17 = pbVar17 + 0x10" identifier = (binary_expression "pbVar17 + 0x10" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + 8;" (assignment_expression "param_5 = param_5 + 8" identifier = (binary_expression "param_5 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar17 != abStack_98 + 0x80)" ( (binary_expression "pbVar17 != abStack_98 + 0x80" identifier != (binary_expression "abStack_98 + 0x80" identifier + number_literal)) )) ;)) (labeled_statement "LAB_001207e0:\n  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lStack_10 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lStack_10 != *(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                    \n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }" { (expression_statement "uStack_a0 = rc2_setup;" (assignment_expression "uStack_a0 = rc2_setup" identifier = identifier) ;) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return uVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression LIT < IDENT)) )) || (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ IDENT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT - LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (unary_expression - IDENT) + LIT) & LIT)) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ])) ))) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) + (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ])) ))) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) + (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ])) ))) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) + (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ])) ))) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) + (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ])) ))) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) + (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ])) ))) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) + (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ])) ))) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (unary_expression - IDENT) + LIT) )))) + LIT)) )) (goto_statement goto statement_identifier ;)) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) + (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ])) ))) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) ))) ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ])) ))) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) ))) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) ))) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) ))) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) ))) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) ))) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (unary_expression - IDENT) + LIT) )))) + LIT)) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) >> LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression LIT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT >> (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) & LIT) ))) ))) & (subscript_expression IDENT [ IDENT ])) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression - IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) & LIT)) ;) (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) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (subscript_expression IDENT [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) ]) ^ (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (subscript_expression IDENT [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ]) ^ (subscript_expression IDENT [ LIT ])) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (subscript_expression IDENT [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ]) ^ (subscript_expression IDENT [ LIT ])) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (subscript_expression IDENT [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ]) ^ (subscript_expression IDENT [ LIT ])) ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (subscript_expression IDENT [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) ]) ^ (pointer_expression * IDENT)) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (subscript_expression IDENT [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT) ))) ]) ^ (subscript_expression IDENT [ LIT ])) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (subscript_expression IDENT [ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (unary_expression - IDENT) + LIT) + IDENT) ))) ]) ^ (subscript_expression IDENT [ LIT ])) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT) + (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_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 { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "uint rc2_setup_ex(byte *param_1,int param_2,int param_3,uint param_4,int *param_5)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  int iVar14;\n  long lVar15;\n  uint uVar16;\n  byte *pbVar17;\n  long in_FS_OFFSET;\n  undefined8 uStack_a0;\n  byte abStack_98 [136];\n  long lStack_10;\n  \n  pbVar7 = abStack_98;\n  pbVar8 = abStack_98;\n  pbVar9 = abStack_98;\n  pbVar10 = abStack_98;\n  pbVar11 = abStack_98;\n  pbVar12 = abStack_98;\n  pbVar13 = abStack_98;\n  pbVar17 = abStack_98;\n  lStack_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (byte *)0x0) {\n                    \n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }\n  if (param_5 == (int *)0x0) {\n                    \n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }\n  if ((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)) {\n    uVar3 = 3;\n    goto LAB_001207e0;\n  }\n  iVar5 = 0x400;\n  if (param_3 != 0) {\n    iVar5 = param_3;\n  }\n  uVar3 = param_4 & 0xffffffef;\n  if ((param_4 & 0xffffffef) != 0) {\n    uVar3 = 4;\n    goto LAB_001207e0;\n  }\n  if (0 < param_2) {\n    uVar6 = 0;\n    uVar4 = param_2 - 1U & 7;\n    if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }\n  }\n  if (param_2 < 0x80) {\n    uVar4 = -param_2 + 0x80U & 7;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);\n  }\nLAB_001205db:\n  uVar4 = iVar5 + 7U >> 3;\n  uVar16 = 0x80 - uVar4;\n  abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]];\n  uVar4 = 0x7f - uVar4;\n  if (-1 < (int)uVar4) {\n    lVar15 = (long)(int)uVar4;\n    pbVar13 = abStack_98 + lVar15;\n    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;\n    iVar5 = (int)pbVar13;\n    iVar14 = -iVar5 + 0x7f;\n    uVar4 = iVar5 - (int)pbVar7 & 3;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }\n    do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);\n  }\nLAB_0012071d:\n  do {\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  } while (pbVar17 != abStack_98 + 0x80);\nLAB_001207e0:\n  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }\n  return uVar3;\n}" (type_identifier "uint") (function_declarator "rc2_setup_ex(byte *param_1,int param_2,int param_3,uint param_4,int *param_5)" (identifier "rc2_setup_ex") (parameter_list "(byte *param_1,int param_2,int param_3,uint param_4,int *param_5)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  ulong uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  int iVar14;\n  long lVar15;\n  uint uVar16;\n  byte *pbVar17;\n  long in_FS_OFFSET;\n  undefined8 uStack_a0;\n  byte abStack_98 [136];\n  long lStack_10;\n  \n  pbVar7 = abStack_98;\n  pbVar8 = abStack_98;\n  pbVar9 = abStack_98;\n  pbVar10 = abStack_98;\n  pbVar11 = abStack_98;\n  pbVar12 = abStack_98;\n  pbVar13 = abStack_98;\n  pbVar17 = abStack_98;\n  lStack_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (byte *)0x0) {\n                    \n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }\n  if (param_5 == (int *)0x0) {\n                    \n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }\n  if ((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)) {\n    uVar3 = 3;\n    goto LAB_001207e0;\n  }\n  iVar5 = 0x400;\n  if (param_3 != 0) {\n    iVar5 = param_3;\n  }\n  uVar3 = param_4 & 0xffffffef;\n  if ((param_4 & 0xffffffef) != 0) {\n    uVar3 = 4;\n    goto LAB_001207e0;\n  }\n  if (0 < param_2) {\n    uVar6 = 0;\n    uVar4 = param_2 - 1U & 7;\n    if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }\n  }\n  if (param_2 < 0x80) {\n    uVar4 = -param_2 + 0x80U & 7;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);\n  }\nLAB_001205db:\n  uVar4 = iVar5 + 7U >> 3;\n  uVar16 = 0x80 - uVar4;\n  abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]];\n  uVar4 = 0x7f - uVar4;\n  if (-1 < (int)uVar4) {\n    lVar15 = (long)(int)uVar4;\n    pbVar13 = abStack_98 + lVar15;\n    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;\n    iVar5 = (int)pbVar13;\n    iVar14 = -iVar5 + 0x7f;\n    uVar4 = iVar5 - (int)pbVar7 & 3;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }\n    do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);\n  }\nLAB_0012071d:\n  do {\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  } while (pbVar17 != abStack_98 + 0x80);\nLAB_001207e0:\n  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }\n  return uVar3;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "ulong uVar6;" (type_identifier "ulong") (identifier "uVar6") (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "long lVar15;" (sized_type_specifier "long" (long "long")) (identifier "lVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined8 uStack_a0;" (type_identifier "undefined8") (identifier "uStack_a0") (; ";")) (declaration "byte abStack_98 [136];" (type_identifier "byte") (array_declarator "abStack_98 [136]" (identifier "abStack_98") ([ "[") (number_literal "136") (] "]")) (; ";")) (declaration "long lStack_10;" (sized_type_specifier "long" (long "long")) (identifier "lStack_10") (; ";")) (expression_statement "pbVar7 = abStack_98;" (assignment_expression "pbVar7 = abStack_98" (identifier "pbVar7") (= "=") (identifier "abStack_98")) (; ";")) (expression_statement "pbVar8 = abStack_98;" (assignment_expression "pbVar8 = abStack_98" (identifier "pbVar8") (= "=") (identifier "abStack_98")) (; ";")) (expression_statement "pbVar9 = abStack_98;" (assignment_expression "pbVar9 = abStack_98" (identifier "pbVar9") (= "=") (identifier "abStack_98")) (; ";")) (expression_statement "pbVar10 = abStack_98;" (assignment_expression "pbVar10 = abStack_98" (identifier "pbVar10") (= "=") (identifier "abStack_98")) (; ";")) (expression_statement "pbVar11 = abStack_98;" (assignment_expression "pbVar11 = abStack_98" (identifier "pbVar11") (= "=") (identifier "abStack_98")) (; ";")) (expression_statement "pbVar12 = abStack_98;" (assignment_expression "pbVar12 = abStack_98" (identifier "pbVar12") (= "=") (identifier "abStack_98")) (; ";")) (expression_statement "pbVar13 = abStack_98;" (assignment_expression "pbVar13 = abStack_98" (identifier "pbVar13") (= "=") (identifier "abStack_98")) (; ";")) (expression_statement "pbVar17 = abStack_98;" (assignment_expression "pbVar17 = abStack_98" (identifier "pbVar17") (= "=") (identifier "abStack_98")) (; ";")) (expression_statement "lStack_10 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lStack_10 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "lStack_10") (= "=") (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_1 == (byte *)0x0) {\n                    \n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }" (if "if") (parenthesized_expression "(param_1 == (byte *)0x0)" (( "(") (binary_expression "param_1 == (byte *)0x0" (identifier "param_1") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    uStack_a0 = (code *)0x1203b8;\n    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);\n  }" ({ "{") (expression_statement "uStack_a0 = (code *)0x1203b8;" (assignment_expression "uStack_a0 = (code *)0x1203b8" (identifier "uStack_a0") (= "=") (cast_expression "(code *)0x1203b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1203b8"))) (; ";")) (expression_statement "crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);" (call_expression "crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c)" (identifier "crypt_argchk") (argument_list "("key != NULL","src/ciphers/rc2.c",0x4c)" (( "(") (string_literal ""key != NULL"" (" """) (string_content "key != NULL") (" """)) (, ",") (string_literal ""src/ciphers/rc2.c"" (" """) (string_content "src/ciphers/rc2.c") (" """)) (, ",") (number_literal "0x4c") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_5 == (int *)0x0) {\n                    \n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }" (if "if") (parenthesized_expression "(param_5 == (int *)0x0)" (( "(") (binary_expression "param_5 == (int *)0x0" (identifier "param_5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    uStack_a0 = (code *)0x1203d0;\n    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);\n  }" ({ "{") (expression_statement "uStack_a0 = (code *)0x1203d0;" (assignment_expression "uStack_a0 = (code *)0x1203d0" (identifier "uStack_a0") (= "=") (cast_expression "(code *)0x1203d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1203d0"))) (; ";")) (expression_statement "crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d)" (identifier "crypt_argchk") (argument_list "("skey != NULL","src/ciphers/rc2.c",0x4d)" (( "(") (string_literal ""skey != NULL"" (" """) (string_content "skey != NULL") (" """)) (, ",") (string_literal ""src/ciphers/rc2.c"" (" """) (string_content "src/ciphers/rc2.c") (" """)) (, ",") (number_literal "0x4d") () ")"))) (; ";")) (} "}"))) (if_statement "if ((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)) {\n    uVar3 = 3;\n    goto LAB_001207e0;\n  }" (if "if") (parenthesized_expression "((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3))" (( "(") (binary_expression "(param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)" (parenthesized_expression "(param_2 == 0 || 0x80 < param_2)" (( "(") (binary_expression "param_2 == 0 || 0x80 < param_2" (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) (|| "||") (binary_expression "0x80 < param_2" (number_literal "0x80") (< "<") (identifier "param_2"))) () ")")) (|| "||") (parenthesized_expression "(0x400 < param_3)" (( "(") (binary_expression "0x400 < param_3" (number_literal "0x400") (< "<") (identifier "param_3")) () ")"))) () ")")) (compound_statement "{\n    uVar3 = 3;\n    goto LAB_001207e0;\n  }" ({ "{") (expression_statement "uVar3 = 3;" (assignment_expression "uVar3 = 3" (identifier "uVar3") (= "=") (number_literal "3")) (; ";")) (goto_statement "goto LAB_001207e0;" (goto "goto") (statement_identifier "LAB_001207e0") (; ";")) (} "}"))) (expression_statement "iVar5 = 0x400;" (assignment_expression "iVar5 = 0x400" (identifier "iVar5") (= "=") (number_literal "0x400")) (; ";")) (if_statement "if (param_3 != 0) {\n    iVar5 = param_3;\n  }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = param_3;\n  }" ({ "{") (expression_statement "iVar5 = param_3;" (assignment_expression "iVar5 = param_3" (identifier "iVar5") (= "=") (identifier "param_3")) (; ";")) (} "}"))) (expression_statement "uVar3 = param_4 & 0xffffffef;" (assignment_expression "uVar3 = param_4 & 0xffffffef" (identifier "uVar3") (= "=") (binary_expression "param_4 & 0xffffffef" (identifier "param_4") (& "&") (number_literal "0xffffffef"))) (; ";")) (if_statement "if ((param_4 & 0xffffffef) != 0) {\n    uVar3 = 4;\n    goto LAB_001207e0;\n  }" (if "if") (parenthesized_expression "((param_4 & 0xffffffef) != 0)" (( "(") (binary_expression "(param_4 & 0xffffffef) != 0" (parenthesized_expression "(param_4 & 0xffffffef)" (( "(") (binary_expression "param_4 & 0xffffffef" (identifier "param_4") (& "&") (number_literal "0xffffffef")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = 4;\n    goto LAB_001207e0;\n  }" ({ "{") (expression_statement "uVar3 = 4;" (assignment_expression "uVar3 = 4" (identifier "uVar3") (= "=") (number_literal "4")) (; ";")) (goto_statement "goto LAB_001207e0;" (goto "goto") (statement_identifier "LAB_001207e0") (; ";")) (} "}"))) (if_statement "if (0 < param_2) {\n    uVar6 = 0;\n    uVar4 = param_2 - 1U & 7;\n    if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }\n  }" (if "if") (parenthesized_expression "(0 < param_2)" (( "(") (binary_expression "0 < param_2" (number_literal "0") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n    uVar6 = 0;\n    uVar4 = param_2 - 1U & 7;\n    if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }\n    while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }\n  }" ({ "{") (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = param_2 - 1U & 7;" (assignment_expression "uVar4 = param_2 - 1U & 7" (identifier "uVar4") (= "=") (binary_expression "param_2 - 1U & 7" (binary_expression "param_2 - 1U" (identifier "param_2") (- "-") (number_literal "1U")) (& "&") (number_literal "7"))) (; ";")) (if_statement "if (uVar4 != 0) {\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }" (if "if") (parenthesized_expression "(uVar4 != 0)" (( "(") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      abStack_98[0] = *param_1;\n      uVar6 = 1;\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }\n    }" ({ "{") (expression_statement "abStack_98[0] = *param_1;" (assignment_expression "abStack_98[0] = *param_1" (subscript_expression "abStack_98[0]" (identifier "abStack_98") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" (identifier "uVar6") (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }" (if "if") (parenthesized_expression "(uVar4 != 1)" (( "(") (binary_expression "uVar4 != 1" (identifier "uVar4") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }\n        abStack_98[uVar6] = param_1[uVar6];\n        uVar6 = uVar6 + 1;\n      }" ({ "{") (if_statement "if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }" (if "if") (parenthesized_expression "(uVar4 != 2)" (( "(") (binary_expression "uVar4 != 2" (identifier "uVar4") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }\n          abStack_98[uVar6] = param_1[uVar6];\n          uVar6 = uVar6 + 1;\n        }" ({ "{") (if_statement "if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }" (if "if") (parenthesized_expression "(uVar4 != 3)" (( "(") (binary_expression "uVar4 != 3" (identifier "uVar4") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }\n            abStack_98[uVar6] = param_1[uVar6];\n            uVar6 = uVar6 + 1;\n          }" ({ "{") (if_statement "if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }" (if "if") (parenthesized_expression "(uVar4 != 4)" (( "(") (binary_expression "uVar4 != 4" (identifier "uVar4") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }\n              abStack_98[uVar6] = param_1[uVar6];\n              uVar6 = uVar6 + 1;\n            }" ({ "{") (if_statement "if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }" (if "if") (parenthesized_expression "(uVar4 != 5)" (( "(") (binary_expression "uVar4 != 5" (identifier "uVar4") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n                if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }\n                abStack_98[uVar6] = param_1[uVar6];\n                uVar6 = uVar6 + 1;\n              }" ({ "{") (if_statement "if (uVar4 != 6) {\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }" (if "if") (parenthesized_expression "(uVar4 != 6)" (( "(") (binary_expression "uVar4 != 6" (identifier "uVar4") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                  abStack_98[1] = param_1[1];\n                  uVar6 = 2;\n                }" ({ "{") (expression_statement "abStack_98[1] = param_1[1];" (assignment_expression "abStack_98[1] = param_1[1]" (subscript_expression "abStack_98[1]" (identifier "abStack_98") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar6 = 2;" (assignment_expression "uVar6 = 2" (identifier "uVar6") (= "=") (number_literal "2")) (; ";")) (} "}"))) (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" (identifier "abStack_98") ([ "[") (identifier "uVar6") (] "]")) (= "=") (subscript_expression "param_1[uVar6]" (identifier "param_1") ([ "[") (identifier "uVar6") (] "]"))) (; ";")) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" (identifier "abStack_98") ([ "[") (identifier "uVar6") (] "]")) (= "=") (subscript_expression "param_1[uVar6]" (identifier "param_1") ([ "[") (identifier "uVar6") (] "]"))) (; ";")) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" (identifier "abStack_98") ([ "[") (identifier "uVar6") (] "]")) (= "=") (subscript_expression "param_1[uVar6]" (identifier "param_1") ([ "[") (identifier "uVar6") (] "]"))) (; ";")) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" (identifier "abStack_98") ([ "[") (identifier "uVar6") (] "]")) (= "=") (subscript_expression "param_1[uVar6]" (identifier "param_1") ([ "[") (identifier "uVar6") (] "]"))) (; ";")) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" (identifier "abStack_98") ([ "[") (identifier "uVar6") (] "]")) (= "=") (subscript_expression "param_1[uVar6]" (identifier "param_1") ([ "[") (identifier "uVar6") (] "]"))) (; ";")) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (while_statement "while( true ) {\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      abStack_98[uVar6] = param_1[uVar6];\n      if (uVar6 == param_2 - 1U) break;\n      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];\n      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];\n      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];\n      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];\n      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];\n      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];\n      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];\n      uVar6 = uVar6 + 8;\n    }" ({ "{") (expression_statement "abStack_98[uVar6] = param_1[uVar6];" (assignment_expression "abStack_98[uVar6] = param_1[uVar6]" (subscript_expression "abStack_98[uVar6]" (identifier "abStack_98") ([ "[") (identifier "uVar6") (] "]")) (= "=") (subscript_expression "param_1[uVar6]" (identifier "param_1") ([ "[") (identifier "uVar6") (] "]"))) (; ";")) (if_statement "if (uVar6 == param_2 - 1U) break;" (if "if") (parenthesized_expression "(uVar6 == param_2 - 1U)" (( "(") (binary_expression "uVar6 == param_2 - 1U" (identifier "uVar6") (== "==") (binary_expression "param_2 - 1U" (identifier "param_2") (- "-") (number_literal "1U"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "abStack_98[uVar6 + 1] = param_1[uVar6 + 1];" (assignment_expression "abStack_98[uVar6 + 1] = param_1[uVar6 + 1]" (subscript_expression "abStack_98[uVar6 + 1]" (identifier "abStack_98") ([ "[") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1")) (] "]")) (= "=") (subscript_expression "param_1[uVar6 + 1]" (identifier "param_1") ([ "[") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1")) (] "]"))) (; ";")) (expression_statement "abStack_98[uVar6 + 2] = param_1[uVar6 + 2];" (assignment_expression "abStack_98[uVar6 + 2] = param_1[uVar6 + 2]" (subscript_expression "abStack_98[uVar6 + 2]" (identifier "abStack_98") ([ "[") (binary_expression "uVar6 + 2" (identifier "uVar6") (+ "+") (number_literal "2")) (] "]")) (= "=") (subscript_expression "param_1[uVar6 + 2]" (identifier "param_1") ([ "[") (binary_expression "uVar6 + 2" (identifier "uVar6") (+ "+") (number_literal "2")) (] "]"))) (; ";")) (expression_statement "abStack_98[uVar6 + 3] = param_1[uVar6 + 3];" (assignment_expression "abStack_98[uVar6 + 3] = param_1[uVar6 + 3]" (subscript_expression "abStack_98[uVar6 + 3]" (identifier "abStack_98") ([ "[") (binary_expression "uVar6 + 3" (identifier "uVar6") (+ "+") (number_literal "3")) (] "]")) (= "=") (subscript_expression "param_1[uVar6 + 3]" (identifier "param_1") ([ "[") (binary_expression "uVar6 + 3" (identifier "uVar6") (+ "+") (number_literal "3")) (] "]"))) (; ";")) (expression_statement "abStack_98[uVar6 + 4] = param_1[uVar6 + 4];" (assignment_expression "abStack_98[uVar6 + 4] = param_1[uVar6 + 4]" (subscript_expression "abStack_98[uVar6 + 4]" (identifier "abStack_98") ([ "[") (binary_expression "uVar6 + 4" (identifier "uVar6") (+ "+") (number_literal "4")) (] "]")) (= "=") (subscript_expression "param_1[uVar6 + 4]" (identifier "param_1") ([ "[") (binary_expression "uVar6 + 4" (identifier "uVar6") (+ "+") (number_literal "4")) (] "]"))) (; ";")) (expression_statement "abStack_98[uVar6 + 5] = param_1[uVar6 + 5];" (assignment_expression "abStack_98[uVar6 + 5] = param_1[uVar6 + 5]" (subscript_expression "abStack_98[uVar6 + 5]" (identifier "abStack_98") ([ "[") (binary_expression "uVar6 + 5" (identifier "uVar6") (+ "+") (number_literal "5")) (] "]")) (= "=") (subscript_expression "param_1[uVar6 + 5]" (identifier "param_1") ([ "[") (binary_expression "uVar6 + 5" (identifier "uVar6") (+ "+") (number_literal "5")) (] "]"))) (; ";")) (expression_statement "abStack_98[uVar6 + 6] = param_1[uVar6 + 6];" (assignment_expression "abStack_98[uVar6 + 6] = param_1[uVar6 + 6]" (subscript_expression "abStack_98[uVar6 + 6]" (identifier "abStack_98") ([ "[") (binary_expression "uVar6 + 6" (identifier "uVar6") (+ "+") (number_literal "6")) (] "]")) (= "=") (subscript_expression "param_1[uVar6 + 6]" (identifier "param_1") ([ "[") (binary_expression "uVar6 + 6" (identifier "uVar6") (+ "+") (number_literal "6")) (] "]"))) (; ";")) (expression_statement "abStack_98[uVar6 + 7] = param_1[uVar6 + 7];" (assignment_expression "abStack_98[uVar6 + 7] = param_1[uVar6 + 7]" (subscript_expression "abStack_98[uVar6 + 7]" (identifier "abStack_98") ([ "[") (binary_expression "uVar6 + 7" (identifier "uVar6") (+ "+") (number_literal "7")) (] "]")) (= "=") (subscript_expression "param_1[uVar6 + 7]" (identifier "param_1") ([ "[") (binary_expression "uVar6 + 7" (identifier "uVar6") (+ "+") (number_literal "7")) (] "]"))) (; ";")) (expression_statement "uVar6 = uVar6 + 8;" (assignment_expression "uVar6 = uVar6 + 8" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 8" (identifier "uVar6") (+ "+") (number_literal "8"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (param_2 < 0x80) {\n    uVar4 = -param_2 + 0x80U & 7;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);\n  }" (if "if") (parenthesized_expression "(param_2 < 0x80)" (( "(") (binary_expression "param_2 < 0x80" (identifier "param_2") (< "<") (number_literal "0x80")) () ")")) (compound_statement "{\n    uVar4 = -param_2 + 0x80U & 7;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }\n    do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);\n  }" ({ "{") (expression_statement "uVar4 = -param_2 + 0x80U & 7;" (assignment_expression "uVar4 = -param_2 + 0x80U & 7" (identifier "uVar4") (= "=") (binary_expression "-param_2 + 0x80U & 7" (binary_expression "-param_2 + 0x80U" (unary_expression "-param_2" (- "-") (identifier "param_2")) (+ "+") (number_literal "0x80U")) (& "&") (number_literal "7"))) (; ";")) (if_statement "if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }" (if "if") (parenthesized_expression "(uVar4 != 0)" (( "(") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }\n      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];\n      pbVar13 = pbVar12 + 1;\n      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;\n    }" ({ "{") (if_statement "if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }" (if "if") (parenthesized_expression "(uVar4 != 1)" (( "(") (binary_expression "uVar4 != 1" (identifier "uVar4") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }\n        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];\n        pbVar12 = pbVar11 + 1;\n      }" ({ "{") (if_statement "if (uVar4 != 2) {\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }" (if "if") (parenthesized_expression "(uVar4 != 2)" (( "(") (binary_expression "uVar4 != 2" (identifier "uVar4") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n          if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }\n          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];\n          pbVar11 = pbVar10 + 1;\n        }" ({ "{") (if_statement "if (uVar4 != 3) {\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }" (if "if") (parenthesized_expression "(uVar4 != 3)" (( "(") (binary_expression "uVar4 != 3" (identifier "uVar4") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n            if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }\n            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];\n            pbVar10 = pbVar9 + 1;\n          }" ({ "{") (if_statement "if (uVar4 != 4) {\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }" (if "if") (parenthesized_expression "(uVar4 != 4)" (( "(") (binary_expression "uVar4 != 4" (identifier "uVar4") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n              if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }\n              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];\n              pbVar9 = pbVar8 + 1;\n            }" ({ "{") (if_statement "if (uVar4 != 5) {\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }" (if "if") (parenthesized_expression "(uVar4 != 5)" (( "(") (binary_expression "uVar4 != 5" (identifier "uVar4") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n                if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }\n                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];\n                pbVar8 = pbVar7 + 1;\n              }" ({ "{") (if_statement "if (uVar4 != 6) {\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }" (if "if") (parenthesized_expression "(uVar4 != 6)" (( "(") (binary_expression "uVar4 != 6" (identifier "uVar4") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                  abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];\n                  pbVar7 = abStack_98 + 1;\n                }" ({ "{") (expression_statement "abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];" (assignment_expression "abStack_98[param_2] =\n                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])]" (subscript_expression "abStack_98[param_2]" (identifier "abStack_98") ([ "[") (identifier "param_2") (] "]")) (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (call_expression "(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(abStack_98[0] + abStack_98[(long)param_2 + -1])" (( "(") (binary_expression "abStack_98[0] + abStack_98[(long)param_2 + -1]" (subscript_expression "abStack_98[0]" (identifier "abStack_98") ([ "[") (number_literal "0") (] "]")) (+ "+") (subscript_expression "abStack_98[(long)param_2 + -1]" (identifier "abStack_98") ([ "[") (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "-1")) (] "]"))) () ")"))) (] "]"))) (; ";")) (expression_statement "pbVar7 = abStack_98 + 1;" (assignment_expression "pbVar7 = abStack_98 + 1" (identifier "pbVar7") (= "=") (binary_expression "abStack_98 + 1" (identifier "abStack_98") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];" (assignment_expression "pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])]" (subscript_expression "pbVar7[param_2]" (identifier "pbVar7") ([ "[") (identifier "param_2") (] "]")) (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (call_expression "(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*pbVar7 + pbVar7[(long)param_2 + -1])" (( "(") (binary_expression "*pbVar7 + pbVar7[(long)param_2 + -1]" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (+ "+") (subscript_expression "pbVar7[(long)param_2 + -1]" (identifier "pbVar7") ([ "[") (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "-1")) (] "]"))) () ")"))) (] "]"))) (; ";")) (expression_statement "pbVar8 = pbVar7 + 1;" (assignment_expression "pbVar8 = pbVar7 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];" (assignment_expression "pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])]" (subscript_expression "pbVar8[param_2]" (identifier "pbVar8") ([ "[") (identifier "param_2") (] "]")) (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (call_expression "(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*pbVar8 + pbVar8[(long)param_2 + -1])" (( "(") (binary_expression "*pbVar8 + pbVar8[(long)param_2 + -1]" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (+ "+") (subscript_expression "pbVar8[(long)param_2 + -1]" (identifier "pbVar8") ([ "[") (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "-1")) (] "]"))) () ")"))) (] "]"))) (; ";")) (expression_statement "pbVar9 = pbVar8 + 1;" (assignment_expression "pbVar9 = pbVar8 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar8 + 1" (identifier "pbVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];" (assignment_expression "pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])]" (subscript_expression "pbVar9[param_2]" (identifier "pbVar9") ([ "[") (identifier "param_2") (] "]")) (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (call_expression "(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*pbVar9 + pbVar9[(long)param_2 + -1])" (( "(") (binary_expression "*pbVar9 + pbVar9[(long)param_2 + -1]" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (+ "+") (subscript_expression "pbVar9[(long)param_2 + -1]" (identifier "pbVar9") ([ "[") (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "-1")) (] "]"))) () ")"))) (] "]"))) (; ";")) (expression_statement "pbVar10 = pbVar9 + 1;" (assignment_expression "pbVar10 = pbVar9 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];" (assignment_expression "pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])]" (subscript_expression "pbVar10[param_2]" (identifier "pbVar10") ([ "[") (identifier "param_2") (] "]")) (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (call_expression "(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*pbVar10 + pbVar10[(long)param_2 + -1])" (( "(") (binary_expression "*pbVar10 + pbVar10[(long)param_2 + -1]" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (+ "+") (subscript_expression "pbVar10[(long)param_2 + -1]" (identifier "pbVar10") ([ "[") (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "-1")) (] "]"))) () ")"))) (] "]"))) (; ";")) (expression_statement "pbVar11 = pbVar10 + 1;" (assignment_expression "pbVar11 = pbVar10 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar10 + 1" (identifier "pbVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];" (assignment_expression "pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])]" (subscript_expression "pbVar11[param_2]" (identifier "pbVar11") ([ "[") (identifier "param_2") (] "]")) (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (call_expression "(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*pbVar11 + pbVar11[(long)param_2 + -1])" (( "(") (binary_expression "*pbVar11 + pbVar11[(long)param_2 + -1]" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (+ "+") (subscript_expression "pbVar11[(long)param_2 + -1]" (identifier "pbVar11") ([ "[") (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "-1")) (] "]"))) () ")"))) (] "]"))) (; ";")) (expression_statement "pbVar12 = pbVar11 + 1;" (assignment_expression "pbVar12 = pbVar11 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];" (assignment_expression "pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])]" (subscript_expression "pbVar12[param_2]" (identifier "pbVar12") ([ "[") (identifier "param_2") (] "]")) (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (call_expression "(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*pbVar12 + pbVar12[(long)param_2 + -1])" (( "(") (binary_expression "*pbVar12 + pbVar12[(long)param_2 + -1]" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (+ "+") (subscript_expression "pbVar12[(long)param_2 + -1]" (identifier "pbVar12") ([ "[") (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "-1")) (] "]"))) () ")"))) (] "]"))) (; ";")) (expression_statement "pbVar13 = pbVar12 + 1;" (assignment_expression "pbVar13 = pbVar12 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;" (if "if") (parenthesized_expression "(pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1)" (( "(") (binary_expression "pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1" (identifier "pbVar13") (== "==") (binary_expression "abStack_98 + (ulong)(-param_2 + 0x7f) + 1" (binary_expression "abStack_98 + (ulong)(-param_2 + 0x7f)" (identifier "abStack_98") (+ "+") (call_expression "(ulong)(-param_2 + 0x7f)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(-param_2 + 0x7f)" (( "(") (binary_expression "-param_2 + 0x7f" (unary_expression "-param_2" (- "-") (identifier "param_2")) (+ "+") (number_literal "0x7f")) () ")")))) (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_001205db;" (goto "goto") (statement_identifier "LAB_001205db") (; ";"))) (} "}"))) (do_statement "do {\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);" (do "do") (compound_statement "{\n      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];\n      pbVar13[param_2] = bVar1;\n      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];\n      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];\n      pbVar13[(long)param_2 + 2] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];\n      pbVar13[(long)param_2 + 3] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];\n      pbVar13[(long)param_2 + 4] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];\n      pbVar13[(long)param_2 + 5] = bVar1;\n      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];\n      pbVar13[(long)param_2 + 6] = bVar1;\n      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];\n      pbVar13 = pbVar13 + 8;\n    }" ({ "{") (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])]" (identifier "bVar1") (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (call_expression "(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*pbVar13 + pbVar13[(long)param_2 + -1])" (( "(") (binary_expression "*pbVar13 + pbVar13[(long)param_2 + -1]" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (+ "+") (subscript_expression "pbVar13[(long)param_2 + -1]" (identifier "pbVar13") ([ "[") (binary_expression "(long)param_2 + -1" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "-1")) (] "]"))) () ")"))) (] "]"))) (; ";")) (expression_statement "pbVar13[param_2] = bVar1;" (assignment_expression "pbVar13[param_2] = bVar1" (subscript_expression "pbVar13[param_2]" (identifier "pbVar13") ([ "[") (identifier "param_2") (] "]")) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];" (assignment_expression "pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])]" (subscript_expression "pbVar13[(long)param_2 + 1]" (identifier "pbVar13") ([ "[") (binary_expression "(long)param_2 + 1" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "1")) (] "]")) (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (call_expression "(byte)(bVar1 + pbVar13[1])" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar1 + pbVar13[1])" (( "(") (binary_expression "bVar1 + pbVar13[1]" (identifier "bVar1") (+ "+") (subscript_expression "pbVar13[1]" (identifier "pbVar13") ([ "[") (number_literal "1") (] "]"))) () ")"))) (] "]"))) (; ";")) (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])]" (identifier "bVar1") (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (call_expression "(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(pbVar13[2] + pbVar13[(long)param_2 + 1])" (( "(") (binary_expression "pbVar13[2] + pbVar13[(long)param_2 + 1]" (subscript_expression "pbVar13[2]" (identifier "pbVar13") ([ "[") (number_literal "2") (] "]")) (+ "+") (subscript_expression "pbVar13[(long)param_2 + 1]" (identifier "pbVar13") ([ "[") (binary_expression "(long)param_2 + 1" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "1")) (] "]"))) () ")"))) (] "]"))) (; ";")) (expression_statement "pbVar13[(long)param_2 + 2] = bVar1;" (assignment_expression "pbVar13[(long)param_2 + 2] = bVar1" (subscript_expression "pbVar13[(long)param_2 + 2]" (identifier "pbVar13") ([ "[") (binary_expression "(long)param_2 + 2" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "2")) (] "]")) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])]" (identifier "bVar1") (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (call_expression "(byte)(bVar1 + pbVar13[3])" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar1 + pbVar13[3])" (( "(") (binary_expression "bVar1 + pbVar13[3]" (identifier "bVar1") (+ "+") (subscript_expression "pbVar13[3]" (identifier "pbVar13") ([ "[") (number_literal "3") (] "]"))) () ")"))) (] "]"))) (; ";")) (expression_statement "pbVar13[(long)param_2 + 3] = bVar1;" (assignment_expression "pbVar13[(long)param_2 + 3] = bVar1" (subscript_expression "pbVar13[(long)param_2 + 3]" (identifier "pbVar13") ([ "[") (binary_expression "(long)param_2 + 3" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "3")) (] "]")) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])]" (identifier "bVar1") (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (call_expression "(byte)(bVar1 + pbVar13[4])" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar1 + pbVar13[4])" (( "(") (binary_expression "bVar1 + pbVar13[4]" (identifier "bVar1") (+ "+") (subscript_expression "pbVar13[4]" (identifier "pbVar13") ([ "[") (number_literal "4") (] "]"))) () ")"))) (] "]"))) (; ";")) (expression_statement "pbVar13[(long)param_2 + 4] = bVar1;" (assignment_expression "pbVar13[(long)param_2 + 4] = bVar1" (subscript_expression "pbVar13[(long)param_2 + 4]" (identifier "pbVar13") ([ "[") (binary_expression "(long)param_2 + 4" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "4")) (] "]")) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])]" (identifier "bVar1") (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (call_expression "(byte)(bVar1 + pbVar13[5])" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar1 + pbVar13[5])" (( "(") (binary_expression "bVar1 + pbVar13[5]" (identifier "bVar1") (+ "+") (subscript_expression "pbVar13[5]" (identifier "pbVar13") ([ "[") (number_literal "5") (] "]"))) () ")"))) (] "]"))) (; ";")) (expression_statement "pbVar13[(long)param_2 + 5] = bVar1;" (assignment_expression "pbVar13[(long)param_2 + 5] = bVar1" (subscript_expression "pbVar13[(long)param_2 + 5]" (identifier "pbVar13") ([ "[") (binary_expression "(long)param_2 + 5" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "5")) (] "]")) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];" (assignment_expression "bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])]" (identifier "bVar1") (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (call_expression "(byte)(bVar1 + pbVar13[6])" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar1 + pbVar13[6])" (( "(") (binary_expression "bVar1 + pbVar13[6]" (identifier "bVar1") (+ "+") (subscript_expression "pbVar13[6]" (identifier "pbVar13") ([ "[") (number_literal "6") (] "]"))) () ")"))) (] "]"))) (; ";")) (expression_statement "pbVar13[(long)param_2 + 6] = bVar1;" (assignment_expression "pbVar13[(long)param_2 + 6] = bVar1" (subscript_expression "pbVar13[(long)param_2 + 6]" (identifier "pbVar13") ([ "[") (binary_expression "(long)param_2 + 6" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "6")) (] "]")) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];" (assignment_expression "pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])]" (subscript_expression "pbVar13[(long)param_2 + 7]" (identifier "pbVar13") ([ "[") (binary_expression "(long)param_2 + 7" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (+ "+") (number_literal "7")) (] "]")) (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (call_expression "(byte)(bVar1 + pbVar13[7])" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar1 + pbVar13[7])" (( "(") (binary_expression "bVar1 + pbVar13[7]" (identifier "bVar1") (+ "+") (subscript_expression "pbVar13[7]" (identifier "pbVar13") ([ "[") (number_literal "7") (] "]"))) () ")"))) (] "]"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + 8;" (assignment_expression "pbVar13 = pbVar13 + 8" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + 8" (identifier "pbVar13") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1)" (( "(") (binary_expression "pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1" (identifier "pbVar13") (!= "!=") (binary_expression "abStack_98 + (ulong)(-param_2 + 0x7f) + 1" (binary_expression "abStack_98 + (ulong)(-param_2 + 0x7f)" (identifier "abStack_98") (+ "+") (call_expression "(ulong)(-param_2 + 0x7f)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(-param_2 + 0x7f)" (( "(") (binary_expression "-param_2 + 0x7f" (unary_expression "-param_2" (- "-") (identifier "param_2")) (+ "+") (number_literal "0x7f")) () ")")))) (+ "+") (number_literal "1"))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_001205db:\n  uVar4 = iVar5 + 7U >> 3;" (statement_identifier "LAB_001205db") (: ":") (expression_statement "uVar4 = iVar5 + 7U >> 3;" (assignment_expression "uVar4 = iVar5 + 7U >> 3" (identifier "uVar4") (= "=") (binary_expression "iVar5 + 7U >> 3" (binary_expression "iVar5 + 7U" (identifier "iVar5") (+ "+") (number_literal "7U")) (>> ">>") (number_literal "3"))) (; ";"))) (expression_statement "uVar16 = 0x80 - uVar4;" (assignment_expression "uVar16 = 0x80 - uVar4" (identifier "uVar16") (= "=") (binary_expression "0x80 - uVar4" (number_literal "0x80") (- "-") (identifier "uVar4"))) (; ";")) (expression_statement "abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]];" (assignment_expression "abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]]" (subscript_expression "abStack_98[uVar16]" (identifier "abStack_98") ([ "[") (identifier "uVar16") (] "]")) (= "=") (subscript_expression "(&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (binary_expression "(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]" (call_expression "(byte)(0xff >> (-(char)iVar5 & 7U))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(0xff >> (-(char)iVar5 & 7U))" (( "(") (binary_expression "0xff >> (-(char)iVar5 & 7U)" (number_literal "0xff") (>> ">>") (parenthesized_expression "(-(char)iVar5 & 7U)" (( "(") (binary_expression "-(char)iVar5 & 7U" (unary_expression "-(char)iVar5" (- "-") (cast_expression "(char)iVar5" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar5"))) (& "&") (number_literal "7U")) () ")"))) () ")"))) (& "&") (subscript_expression "abStack_98[uVar16]" (identifier "abStack_98") ([ "[") (identifier "uVar16") (] "]"))) (] "]"))) (; ";")) (expression_statement "uVar4 = 0x7f - uVar4;" (assignment_expression "uVar4 = 0x7f - uVar4" (identifier "uVar4") (= "=") (binary_expression "0x7f - uVar4" (number_literal "0x7f") (- "-") (identifier "uVar4"))) (; ";")) (if_statement "if (-1 < (int)uVar4) {\n    lVar15 = (long)(int)uVar4;\n    pbVar13 = abStack_98 + lVar15;\n    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;\n    iVar5 = (int)pbVar13;\n    iVar14 = -iVar5 + 0x7f;\n    uVar4 = iVar5 - (int)pbVar7 & 3;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }\n    do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);\n  }" (if "if") (parenthesized_expression "(-1 < (int)uVar4)" (( "(") (binary_expression "-1 < (int)uVar4" (number_literal "-1") (< "<") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) () ")")) (compound_statement "{\n    lVar15 = (long)(int)uVar4;\n    pbVar13 = abStack_98 + lVar15;\n    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;\n    iVar5 = (int)pbVar13;\n    iVar14 = -iVar5 + 0x7f;\n    uVar4 = iVar5 - (int)pbVar7 & 3;\n    if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }\n    do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);\n  }" ({ "{") (expression_statement "lVar15 = (long)(int)uVar4;" (assignment_expression "lVar15 = (long)(int)uVar4" (identifier "lVar15") (= "=") (cast_expression "(long)(int)uVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")))) (; ";")) (expression_statement "pbVar13 = abStack_98 + lVar15;" (assignment_expression "pbVar13 = abStack_98 + lVar15" (identifier "pbVar13") (= "=") (binary_expression "abStack_98 + lVar15" (identifier "abStack_98") (+ "+") (identifier "lVar15"))) (; ";")) (expression_statement "pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;" (assignment_expression "pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1" (identifier "pbVar7") (= "=") (binary_expression "abStack_98 + (lVar15 - (ulong)uVar4) + -1" (binary_expression "abStack_98 + (lVar15 - (ulong)uVar4)" (identifier "abStack_98") (+ "+") (parenthesized_expression "(lVar15 - (ulong)uVar4)" (( "(") (binary_expression "lVar15 - (ulong)uVar4" (identifier "lVar15") (- "-") (cast_expression "(ulong)uVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar4"))) () ")"))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar5 = (int)pbVar13;" (assignment_expression "iVar5 = (int)pbVar13" (identifier "iVar5") (= "=") (cast_expression "(int)pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar13"))) (; ";")) (expression_statement "iVar14 = -iVar5 + 0x7f;" (assignment_expression "iVar14 = -iVar5 + 0x7f" (identifier "iVar14") (= "=") (binary_expression "-iVar5 + 0x7f" (unary_expression "-iVar5" (- "-") (identifier "iVar5")) (+ "+") (number_literal "0x7f"))) (; ";")) (expression_statement "uVar4 = iVar5 - (int)pbVar7 & 3;" (assignment_expression "uVar4 = iVar5 - (int)pbVar7 & 3" (identifier "uVar4") (= "=") (binary_expression "iVar5 - (int)pbVar7 & 3" (binary_expression "iVar5 - (int)pbVar7" (identifier "iVar5") (- "-") (cast_expression "(int)pbVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar7"))) (& "&") (number_literal "3"))) (; ";")) (if_statement "if (uVar4 != 0) {\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }" (if "if") (parenthesized_expression "(uVar4 != 0)" (( "(") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      pbVar13 = pbVar13 + -1;\n      if (pbVar13 == pbVar7) goto LAB_0012071d;\n    }" ({ "{") (if_statement "if (uVar4 != 1) {\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }" (if "if") (parenthesized_expression "(uVar4 != 1)" (( "(") (binary_expression "uVar4 != 1" (identifier "uVar4") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }\n        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n        pbVar13 = pbVar13 + -1;\n      }" ({ "{") (if_statement "if (uVar4 != 2) {\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }" (if "if") (parenthesized_expression "(uVar4 != 2)" (( "(") (binary_expression "uVar4 != 2" (identifier "uVar4") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];\n          pbVar13 = abStack_98 + lVar15 + -1;\n        }" ({ "{") (expression_statement "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];" (assignment_expression "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]]" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (= "=") (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (binary_expression "abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]" (subscript_expression "abStack_98[(uint)(iVar14 + iVar5)]" (identifier "abStack_98") ([ "[") (call_expression "(uint)(iVar14 + iVar5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar14 + iVar5)" (( "(") (binary_expression "iVar14 + iVar5" (identifier "iVar14") (+ "+") (identifier "iVar5")) () ")"))) (] "]")) (^ "^") (subscript_expression "abStack_98[lVar15 + 1]" (identifier "abStack_98") ([ "[") (binary_expression "lVar15 + 1" (identifier "lVar15") (+ "+") (number_literal "1")) (] "]"))) (] "]"))) (; ";")) (expression_statement "pbVar13 = abStack_98 + lVar15 + -1;" (assignment_expression "pbVar13 = abStack_98 + lVar15 + -1" (identifier "pbVar13") (= "=") (binary_expression "abStack_98 + lVar15 + -1" (binary_expression "abStack_98 + lVar15" (identifier "abStack_98") (+ "+") (identifier "lVar15")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];" (assignment_expression "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (= "=") (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (binary_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]" (subscript_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)]" (identifier "abStack_98") ([ "[") (call_expression "(uint)(iVar14 + (int)pbVar13)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar14 + (int)pbVar13)" (( "(") (binary_expression "iVar14 + (int)pbVar13" (identifier "iVar14") (+ "+") (cast_expression "(int)pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar13"))) () ")"))) (] "]")) (^ "^") (subscript_expression "pbVar13[1]" (identifier "pbVar13") ([ "[") (number_literal "1") (] "]"))) (] "]"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + -1;" (assignment_expression "pbVar13 = pbVar13 + -1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + -1" (identifier "pbVar13") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];" (assignment_expression "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (= "=") (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (binary_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]" (subscript_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)]" (identifier "abStack_98") ([ "[") (call_expression "(uint)(iVar14 + (int)pbVar13)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar14 + (int)pbVar13)" (( "(") (binary_expression "iVar14 + (int)pbVar13" (identifier "iVar14") (+ "+") (cast_expression "(int)pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar13"))) () ")"))) (] "]")) (^ "^") (subscript_expression "pbVar13[1]" (identifier "pbVar13") ([ "[") (number_literal "1") (] "]"))) (] "]"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + -1;" (assignment_expression "pbVar13 = pbVar13 + -1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + -1" (identifier "pbVar13") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (pbVar13 == pbVar7) goto LAB_0012071d;" (if "if") (parenthesized_expression "(pbVar13 == pbVar7)" (( "(") (binary_expression "pbVar13 == pbVar7" (identifier "pbVar13") (== "==") (identifier "pbVar7")) () ")")) (goto_statement "goto LAB_0012071d;" (goto "goto") (statement_identifier "LAB_0012071d") (; ";"))) (} "}"))) (do_statement "do {\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    } while (pbVar13 != pbVar7);" (do "do") (compound_statement "{\n      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];\n      iVar2 = (int)(pbVar13 + -1);\n      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];\n      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];\n      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];\n      pbVar13 = pbVar13 + -4;\n    }" ({ "{") (expression_statement "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];" (assignment_expression "*pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (= "=") (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (binary_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]" (subscript_expression "abStack_98[(uint)(iVar14 + (int)pbVar13)]" (identifier "abStack_98") ([ "[") (call_expression "(uint)(iVar14 + (int)pbVar13)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar14 + (int)pbVar13)" (( "(") (binary_expression "iVar14 + (int)pbVar13" (identifier "iVar14") (+ "+") (cast_expression "(int)pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar13"))) () ")"))) (] "]")) (^ "^") (subscript_expression "pbVar13[1]" (identifier "pbVar13") ([ "[") (number_literal "1") (] "]"))) (] "]"))) (; ";")) (expression_statement "iVar2 = (int)(pbVar13 + -1);" (assignment_expression "iVar2 = (int)(pbVar13 + -1)" (identifier "iVar2") (= "=") (cast_expression "(int)(pbVar13 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar13 + -1)" (( "(") (binary_expression "pbVar13 + -1" (identifier "pbVar13") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];" (assignment_expression "pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13]" (subscript_expression "pbVar13[-1]" (identifier "pbVar13") ([ "[") (number_literal "-1") (] "]")) (= "=") (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (binary_expression "abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13" (subscript_expression "abStack_98[(uint)(iVar14 + iVar2)]" (identifier "abStack_98") ([ "[") (call_expression "(uint)(iVar14 + iVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar14 + iVar2)" (( "(") (binary_expression "iVar14 + iVar2" (identifier "iVar14") (+ "+") (identifier "iVar2")) () ")"))) (] "]")) (^ "^") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13"))) (] "]"))) (; ";")) (expression_statement "pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];" (assignment_expression "pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]]" (subscript_expression "pbVar13[-2]" (identifier "pbVar13") ([ "[") (number_literal "-2") (] "]")) (= "=") (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (binary_expression "abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]" (subscript_expression "abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)]" (identifier "abStack_98") ([ "[") (call_expression "(uint)(iVar14 + (int)pbVar13 + -2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar14 + (int)pbVar13 + -2)" (( "(") (binary_expression "iVar14 + (int)pbVar13 + -2" (binary_expression "iVar14 + (int)pbVar13" (identifier "iVar14") (+ "+") (cast_expression "(int)pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar13"))) (+ "+") (number_literal "-2")) () ")"))) (] "]")) (^ "^") (subscript_expression "pbVar13[-1]" (identifier "pbVar13") ([ "[") (number_literal "-1") (] "]"))) (] "]"))) (; ";")) (expression_statement "pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];" (assignment_expression "pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]]" (subscript_expression "pbVar13[-3]" (identifier "pbVar13") ([ "[") (number_literal "-3") (] "]")) (= "=") (subscript_expression "(&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]]" (parenthesized_expression "(&DAT_001ab2c0)" (( "(") (pointer_expression "&DAT_001ab2c0" (& "&") (identifier "DAT_001ab2c0")) () ")")) ([ "[") (binary_expression "abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]" (subscript_expression "abStack_98[(uint)(-iVar5 + 0x7d + iVar2)]" (identifier "abStack_98") ([ "[") (call_expression "(uint)(-iVar5 + 0x7d + iVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(-iVar5 + 0x7d + iVar2)" (( "(") (binary_expression "-iVar5 + 0x7d + iVar2" (binary_expression "-iVar5 + 0x7d" (unary_expression "-iVar5" (- "-") (identifier "iVar5")) (+ "+") (number_literal "0x7d")) (+ "+") (identifier "iVar2")) () ")"))) (] "]")) (^ "^") (subscript_expression "pbVar13[-2]" (identifier "pbVar13") ([ "[") (number_literal "-2") (] "]"))) (] "]"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + -4;" (assignment_expression "pbVar13 = pbVar13 + -4" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + -4" (identifier "pbVar13") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar13 != pbVar7)" (( "(") (binary_expression "pbVar13 != pbVar7" (identifier "pbVar13") (!= "!=") (identifier "pbVar7")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0012071d:\n  do {\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  } while (pbVar17 != abStack_98 + 0x80);" (statement_identifier "LAB_0012071d") (: ":") (do_statement "do {\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  } while (pbVar17 != abStack_98 + 0x80);" (do "do") (compound_statement "{\n    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;\n    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;\n    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];\n    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];\n    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];\n    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];\n    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];\n    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];\n    pbVar17 = pbVar17 + 0x10;\n    param_5 = param_5 + 8;\n  }" ({ "{") (expression_statement "*param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;" (assignment_expression "*param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "(uint)pbVar17[1] * 0x100 + (uint)*pbVar17" (binary_expression "(uint)pbVar17[1] * 0x100" (cast_expression "(uint)pbVar17[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar17[1]" (identifier "pbVar17") ([ "[") (number_literal "1") (] "]"))) (* "*") (number_literal "0x100")) (+ "+") (binary_expression "(uint)*pbVar17" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar17")))) (; ";")) (expression_statement "param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;" (assignment_expression "param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(uint)pbVar17[2] + (uint)pbVar17[3] * 0x100" (cast_expression "(uint)pbVar17[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar17[2]" (identifier "pbVar17") ([ "[") (number_literal "2") (] "]"))) (+ "+") (binary_expression "(uint)pbVar17[3] * 0x100" (cast_expression "(uint)pbVar17[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar17[3]" (identifier "pbVar17") ([ "[") (number_literal "3") (] "]"))) (* "*") (number_literal "0x100")))) (; ";")) (expression_statement "param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];" (assignment_expression "param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4]" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(uint)pbVar17[5] * 0x100 + (uint)pbVar17[4]" (binary_expression "(uint)pbVar17[5] * 0x100" (cast_expression "(uint)pbVar17[5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar17[5]" (identifier "pbVar17") ([ "[") (number_literal "5") (] "]"))) (* "*") (number_literal "0x100")) (+ "+") (cast_expression "(uint)pbVar17[4]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar17[4]" (identifier "pbVar17") ([ "[") (number_literal "4") (] "]"))))) (; ";")) (expression_statement "param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];" (assignment_expression "param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6]" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(uint)pbVar17[7] * 0x100 + (uint)pbVar17[6]" (binary_expression "(uint)pbVar17[7] * 0x100" (cast_expression "(uint)pbVar17[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar17[7]" (identifier "pbVar17") ([ "[") (number_literal "7") (] "]"))) (* "*") (number_literal "0x100")) (+ "+") (cast_expression "(uint)pbVar17[6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar17[6]" (identifier "pbVar17") ([ "[") (number_literal "6") (] "]"))))) (; ";")) (expression_statement "param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];" (assignment_expression "param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8]" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "(uint)pbVar17[9] * 0x100 + (uint)pbVar17[8]" (binary_expression "(uint)pbVar17[9] * 0x100" (cast_expression "(uint)pbVar17[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar17[9]" (identifier "pbVar17") ([ "[") (number_literal "9") (] "]"))) (* "*") (number_literal "0x100")) (+ "+") (cast_expression "(uint)pbVar17[8]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar17[8]" (identifier "pbVar17") ([ "[") (number_literal "8") (] "]"))))) (; ";")) (expression_statement "param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];" (assignment_expression "param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10]" (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "(uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10]" (binary_expression "(uint)pbVar17[0xb] * 0x100" (cast_expression "(uint)pbVar17[0xb]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar17[0xb]" (identifier "pbVar17") ([ "[") (number_literal "0xb") (] "]"))) (* "*") (number_literal "0x100")) (+ "+") (cast_expression "(uint)pbVar17[10]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar17[10]" (identifier "pbVar17") ([ "[") (number_literal "10") (] "]"))))) (; ";")) (expression_statement "param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];" (assignment_expression "param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc]" (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "(uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc]" (binary_expression "(uint)pbVar17[0xd] * 0x100" (cast_expression "(uint)pbVar17[0xd]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar17[0xd]" (identifier "pbVar17") ([ "[") (number_literal "0xd") (] "]"))) (* "*") (number_literal "0x100")) (+ "+") (cast_expression "(uint)pbVar17[0xc]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar17[0xc]" (identifier "pbVar17") ([ "[") (number_literal "0xc") (] "]"))))) (; ";")) (expression_statement "param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];" (assignment_expression "param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe]" (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "(uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe]" (binary_expression "(uint)pbVar17[0xf] * 0x100" (cast_expression "(uint)pbVar17[0xf]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar17[0xf]" (identifier "pbVar17") ([ "[") (number_literal "0xf") (] "]"))) (* "*") (number_literal "0x100")) (+ "+") (cast_expression "(uint)pbVar17[0xe]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar17[0xe]" (identifier "pbVar17") ([ "[") (number_literal "0xe") (] "]"))))) (; ";")) (expression_statement "pbVar17 = pbVar17 + 0x10;" (assignment_expression "pbVar17 = pbVar17 + 0x10" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + 0x10" (identifier "pbVar17") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "param_5 = param_5 + 8;" (assignment_expression "param_5 = param_5 + 8" (identifier "param_5") (= "=") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar17 != abStack_98 + 0x80)" (( "(") (binary_expression "pbVar17 != abStack_98 + 0x80" (identifier "pbVar17") (!= "!=") (binary_expression "abStack_98 + 0x80" (identifier "abStack_98") (+ "+") (number_literal "0x80"))) () ")")) (; ";"))) (labeled_statement "LAB_001207e0:\n  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }" (statement_identifier "LAB_001207e0") (: ":") (if_statement "if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(lStack_10 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "lStack_10 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "lStack_10") (!= "!=") (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                    \n    uStack_a0 = rc2_setup;\n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "uStack_a0 = rc2_setup;" (assignment_expression "uStack_a0 = rc2_setup" (identifier "uStack_a0") (= "=") (identifier "rc2_setup")) (; ";")) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}")))

/* WARNING: Switch with 1 destination removed at 0x001145e0 */

int function_1(type_1 *var_2,int var_5,int var_6,int var_7,type_2 *var_4)

{
  type_3 var_18;
  int var_22;
  type_4 var_8;
  int var_19;
  type_5 var_9;
  type_3 *var_11;
  type_3 *var_12;
  type_3 *var_13;
  type_3 *var_14;
  type_3 *var_15;
  type_3 *var_16;
  type_3 *var_17;
  int var_21;
  long var_20;
  type_4 uVar15;
  type_3 *var_23;
  long var_1;
  type_6 uStack_a0;
  type_3 var_10 [136];
  long var_24;
  
  var_11 = var_10;
  var_12 = var_10;
  var_13 = var_10;
  var_14 = var_10;
  var_15 = var_10;
  var_16 = var_10;
  var_17 = var_10;
  var_23 = var_10;
  var_24 = *(long *)(var_1 + 0x28);
  if (var_2 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    uStack_a0 = (type_7 *)0x1203b8;
    var_3("key != NULL","src/ciphers/rc2.c",0x4c);
  }
  if (var_4 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    uStack_a0 = (type_7 *)0x1203d0;
    var_3("skey != NULL","src/ciphers/rc2.c",0x4d);
  }
  if ((var_5 == 0 || 0x80 < var_5) || (0x400 < var_6)) {
    var_19 = 3;
    goto LAB_001207e0;
  }
  var_19 = 0x400;
  if (var_6 != 0) {
    var_19 = var_6;
  }
  if ((var_7 & 0xffffffefU) != 0) {
    var_19 = 4;
    goto LAB_001207e0;
  }
  if (0 < var_5) {
    var_9 = 0;
    var_8 = var_5 - 1U & 7;
    if (var_8 != 0) {
      var_10[0] = *var_2;
      var_9 = 1;
      if (var_8 != 1) {
        if (var_8 != 2) {
          if (var_8 != 3) {
            if (var_8 != 4) {
              if (var_8 != 5) {
                if (var_8 != 6) {
                  var_10[1] = var_2[1];
                  var_9 = 2;
                }
                var_10[var_9] = var_2[var_9];
                var_9 = var_9 + 1;
              }
              var_10[var_9] = var_2[var_9];
              var_9 = var_9 + 1;
            }
            var_10[var_9] = var_2[var_9];
            var_9 = var_9 + 1;
          }
          var_10[var_9] = var_2[var_9];
          var_9 = var_9 + 1;
        }
        var_10[var_9] = var_2[var_9];
        var_9 = var_9 + 1;
      }
    }
    while( true ) {
      var_10[var_9] = var_2[var_9];
      if (var_9 == var_5 - 1U) break;
      var_10[var_9 + 1] = var_2[var_9 + 1];
      var_10[var_9 + 2] = var_2[var_9 + 2];
      var_10[var_9 + 3] = var_2[var_9 + 3];
      var_10[var_9 + 4] = var_2[var_9 + 4];
      var_10[var_9 + 5] = var_2[var_9 + 5];
      var_10[var_9 + 6] = var_2[var_9 + 6];
      var_10[var_9 + 7] = var_2[var_9 + 7];
      var_9 = var_9 + 8;
    }
  }
  if (var_5 < 0x80) {
    var_8 = -var_5 + 0x80U & 7;
    if (var_8 != 0) {
      if (var_8 != 1) {
        if (var_8 != 2) {
          if (var_8 != 3) {
            if (var_8 != 4) {
              if (var_8 != 5) {
                if (var_8 != 6) {
                  var_10[var_5] =
                       permute[(type_3)(var_10[0] + var_10[(long)var_5 + -1])];
                  var_11 = var_10 + 1;
                }
                var_11[var_5] = permute[(type_3)(*var_11 + var_11[(long)var_5 + -1])];
                var_12 = var_11 + 1;
              }
              var_12[var_5] = permute[(type_3)(*var_12 + var_12[(long)var_5 + -1])];
              var_13 = var_12 + 1;
            }
            var_13[var_5] = permute[(type_3)(*var_13 + var_13[(long)var_5 + -1])];
            var_14 = var_13 + 1;
          }
          var_14[var_5] = permute[(type_3)(*var_14 + var_14[(long)var_5 + -1])];
          var_15 = var_14 + 1;
        }
        var_15[var_5] = permute[(type_3)(*var_15 + var_15[(long)var_5 + -1])];
        var_16 = var_15 + 1;
      }
      var_16[var_5] = permute[(type_3)(*var_16 + var_16[(long)var_5 + -1])];
      var_17 = var_16 + 1;
      if (var_17 == var_10 + (type_5)(-var_5 + 0x7f) + 1) goto LAB_001205db;
    }
    do {
      var_18 = permute[(type_3)(*var_17 + var_17[(long)var_5 + -1])];
      var_17[var_5] = var_18;
      var_17[(long)var_5 + 1] = permute[(type_3)(var_18 + var_17[1])];
      var_18 = permute[(type_3)(var_17[2] + var_17[(long)var_5 + 1])];
      var_17[(long)var_5 + 2] = var_18;
      var_18 = permute[(type_3)(var_18 + var_17[3])];
      var_17[(long)var_5 + 3] = var_18;
      var_18 = permute[(type_3)(var_18 + var_17[4])];
      var_17[(long)var_5 + 4] = var_18;
      var_18 = permute[(type_3)(var_18 + var_17[5])];
      var_17[(long)var_5 + 5] = var_18;
      var_18 = permute[(type_3)(var_18 + var_17[6])];
      var_17[(long)var_5 + 6] = var_18;
      var_17[(long)var_5 + 7] = permute[(type_3)(var_18 + var_17[7])];
      var_17 = var_17 + 8;
    } while (var_17 != var_10 + (type_5)(-var_5 + 0x7f) + 1);
  }
LAB_001205db:
  var_8 = var_19 + 7U >> 3;
  uVar15 = 0x80 - var_8;
  var_10[uVar15] = permute[(type_3)(0xff >> (-(char)var_19 & 7U)) & var_10[uVar15]];
  var_8 = 0x7f - var_8;
  if (-1 < (int)var_8) {
    var_20 = (long)(int)var_8;
    var_17 = var_10 + var_20;
    var_11 = var_10 + (var_20 - (type_5)var_8) + -1;
    var_19 = (int)var_17;
    var_21 = -var_19 + 0x7f;
    var_8 = var_19 - (int)var_11 & 3;
    if (var_8 != 0) {
      if (var_8 != 1) {
        if (var_8 != 2) {
          *var_17 = permute[var_10[(type_4)(var_21 + var_19)] ^ var_10[var_20 + 1]];
          var_17 = var_10 + var_20 + -1;
        }
        *var_17 = permute[var_10[(type_4)(var_21 + (int)var_17)] ^ var_17[1]];
        var_17 = var_17 + -1;
      }
      *var_17 = permute[var_10[(type_4)(var_21 + (int)var_17)] ^ var_17[1]];
      var_17 = var_17 + -1;
      if (var_17 == var_11) goto LAB_0012071d;
    }
    do {
      *var_17 = permute[var_10[(type_4)(var_21 + (int)var_17)] ^ var_17[1]];
      var_22 = (int)(var_17 + -1);
      var_17[-1] = permute[var_10[(type_4)(var_21 + var_22)] ^ *var_17];
      var_17[-2] = permute[var_10[(type_4)(var_21 + (int)var_17 + -2)] ^ var_17[-1]];
      var_17[-3] = permute[var_10[(type_4)(-var_19 + 0x7d + var_22)] ^ var_17[-2]];
      var_17 = var_17 + -4;
    } while (var_17 != var_11);
  }
LAB_0012071d:
  do {
    (var_4->des).ek[0] = (type_4)var_23[1] * 0x100 + (type_4)*var_23;
    (var_4->des).ek[1] = (type_4)var_23[2] + (type_4)var_23[3] * 0x100;
    (var_4->des).ek[2] = (type_4)var_23[5] * 0x100 + (type_4)var_23[4];
    (var_4->des).ek[3] = (type_4)var_23[7] * 0x100 + (type_4)var_23[6];
    (var_4->des).ek[4] = (type_4)var_23[9] * 0x100 + (type_4)var_23[8];
    (var_4->des).ek[5] = (type_4)var_23[0xb] * 0x100 + (type_4)var_23[10];
    (var_4->des).ek[6] = (type_4)var_23[0xd] * 0x100 + (type_4)var_23[0xc];
    (var_4->des).ek[7] = (type_4)var_23[0xf] * 0x100 + (type_4)var_23[0xe];
    var_23 = var_23 + 0x10;
    var_4 = (type_2 *)((var_4->des).ek + 8);
  } while (var_23 != var_10 + 0x80);
  var_19 = 0;
LAB_001207e0:
  if (var_24 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    uStack_a0 = rc2_setup;
    var_25();
  }
  return var_19;
}


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

/* WARNING: Switch with 1 destination removed at 0x001145e0 */

uint MASKED(byte *param_1,int param_2,int param_3,uint param_4,int *param_5)

{
  byte bVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  ulong uVar6;
  byte *pbVar7;
  byte *pbVar8;
  byte *pbVar9;
  byte *pbVar10;
  byte *pbVar11;
  byte *pbVar12;
  byte *pbVar13;
  int iVar14;
  long lVar15;
  uint uVar16;
  byte *pbVar17;
  long in_FS_OFFSET;
  undefined8 uStack_a0;
  byte abStack_98 [136];
  long lStack_10;
  
  pbVar7 = abStack_98;
  pbVar8 = abStack_98;
  pbVar9 = abStack_98;
  pbVar10 = abStack_98;
  pbVar11 = abStack_98;
  pbVar12 = abStack_98;
  pbVar13 = abStack_98;
  pbVar17 = abStack_98;
  lStack_10 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == (byte *)0x0) {
                    /* WARNING: Subroutine does not return */
    uStack_a0 = (code *)0x1203b8;
    crypt_argchk("key != NULL","src/ciphers/rc2.c",0x4c);
  }
  if (param_5 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    uStack_a0 = (code *)0x1203d0;
    crypt_argchk("skey != NULL","src/ciphers/rc2.c",0x4d);
  }
  if ((param_2 == 0 || 0x80 < param_2) || (0x400 < param_3)) {
    uVar3 = 3;
    goto LAB_001207e0;
  }
  iVar5 = 0x400;
  if (param_3 != 0) {
    iVar5 = param_3;
  }
  uVar3 = param_4 & 0xffffffef;
  if ((param_4 & 0xffffffef) != 0) {
    uVar3 = 4;
    goto LAB_001207e0;
  }
  if (0 < param_2) {
    uVar6 = 0;
    uVar4 = param_2 - 1U & 7;
    if (uVar4 != 0) {
      abStack_98[0] = *param_1;
      uVar6 = 1;
      if (uVar4 != 1) {
        if (uVar4 != 2) {
          if (uVar4 != 3) {
            if (uVar4 != 4) {
              if (uVar4 != 5) {
                if (uVar4 != 6) {
                  abStack_98[1] = param_1[1];
                  uVar6 = 2;
                }
                abStack_98[uVar6] = param_1[uVar6];
                uVar6 = uVar6 + 1;
              }
              abStack_98[uVar6] = param_1[uVar6];
              uVar6 = uVar6 + 1;
            }
            abStack_98[uVar6] = param_1[uVar6];
            uVar6 = uVar6 + 1;
          }
          abStack_98[uVar6] = param_1[uVar6];
          uVar6 = uVar6 + 1;
        }
        abStack_98[uVar6] = param_1[uVar6];
        uVar6 = uVar6 + 1;
      }
    }
    while( true ) {
      abStack_98[uVar6] = param_1[uVar6];
      if (uVar6 == param_2 - 1U) break;
      abStack_98[uVar6 + 1] = param_1[uVar6 + 1];
      abStack_98[uVar6 + 2] = param_1[uVar6 + 2];
      abStack_98[uVar6 + 3] = param_1[uVar6 + 3];
      abStack_98[uVar6 + 4] = param_1[uVar6 + 4];
      abStack_98[uVar6 + 5] = param_1[uVar6 + 5];
      abStack_98[uVar6 + 6] = param_1[uVar6 + 6];
      abStack_98[uVar6 + 7] = param_1[uVar6 + 7];
      uVar6 = uVar6 + 8;
    }
  }
  if (param_2 < 0x80) {
    uVar4 = -param_2 + 0x80U & 7;
    if (uVar4 != 0) {
      if (uVar4 != 1) {
        if (uVar4 != 2) {
          if (uVar4 != 3) {
            if (uVar4 != 4) {
              if (uVar4 != 5) {
                if (uVar4 != 6) {
                  abStack_98[param_2] =
                       (&DAT_001ab2c0)[(byte)(abStack_98[0] + abStack_98[(long)param_2 + -1])];
                  pbVar7 = abStack_98 + 1;
                }
                pbVar7[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar7 + pbVar7[(long)param_2 + -1])];
                pbVar8 = pbVar7 + 1;
              }
              pbVar8[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar8 + pbVar8[(long)param_2 + -1])];
              pbVar9 = pbVar8 + 1;
            }
            pbVar9[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar9 + pbVar9[(long)param_2 + -1])];
            pbVar10 = pbVar9 + 1;
          }
          pbVar10[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar10 + pbVar10[(long)param_2 + -1])];
          pbVar11 = pbVar10 + 1;
        }
        pbVar11[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar11 + pbVar11[(long)param_2 + -1])];
        pbVar12 = pbVar11 + 1;
      }
      pbVar12[param_2] = (&DAT_001ab2c0)[(byte)(*pbVar12 + pbVar12[(long)param_2 + -1])];
      pbVar13 = pbVar12 + 1;
      if (pbVar13 == abStack_98 + (ulong)(-param_2 + 0x7f) + 1) goto LAB_001205db;
    }
    do {
      bVar1 = (&DAT_001ab2c0)[(byte)(*pbVar13 + pbVar13[(long)param_2 + -1])];
      pbVar13[param_2] = bVar1;
      pbVar13[(long)param_2 + 1] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[1])];
      bVar1 = (&DAT_001ab2c0)[(byte)(pbVar13[2] + pbVar13[(long)param_2 + 1])];
      pbVar13[(long)param_2 + 2] = bVar1;
      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[3])];
      pbVar13[(long)param_2 + 3] = bVar1;
      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[4])];
      pbVar13[(long)param_2 + 4] = bVar1;
      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[5])];
      pbVar13[(long)param_2 + 5] = bVar1;
      bVar1 = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[6])];
      pbVar13[(long)param_2 + 6] = bVar1;
      pbVar13[(long)param_2 + 7] = (&DAT_001ab2c0)[(byte)(bVar1 + pbVar13[7])];
      pbVar13 = pbVar13 + 8;
    } while (pbVar13 != abStack_98 + (ulong)(-param_2 + 0x7f) + 1);
  }
LAB_001205db:
  uVar4 = iVar5 + 7U >> 3;
  uVar16 = 0x80 - uVar4;
  abStack_98[uVar16] = (&DAT_001ab2c0)[(byte)(0xff >> (-(char)iVar5 & 7U)) & abStack_98[uVar16]];
  uVar4 = 0x7f - uVar4;
  if (-1 < (int)uVar4) {
    lVar15 = (long)(int)uVar4;
    pbVar13 = abStack_98 + lVar15;
    pbVar7 = abStack_98 + (lVar15 - (ulong)uVar4) + -1;
    iVar5 = (int)pbVar13;
    iVar14 = -iVar5 + 0x7f;
    uVar4 = iVar5 - (int)pbVar7 & 3;
    if (uVar4 != 0) {
      if (uVar4 != 1) {
        if (uVar4 != 2) {
          *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar5)] ^ abStack_98[lVar15 + 1]];
          pbVar13 = abStack_98 + lVar15 + -1;
        }
        *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];
        pbVar13 = pbVar13 + -1;
      }
      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];
      pbVar13 = pbVar13 + -1;
      if (pbVar13 == pbVar7) goto LAB_0012071d;
    }
    do {
      *pbVar13 = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13)] ^ pbVar13[1]];
      iVar2 = (int)(pbVar13 + -1);
      pbVar13[-1] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + iVar2)] ^ *pbVar13];
      pbVar13[-2] = (&DAT_001ab2c0)[abStack_98[(uint)(iVar14 + (int)pbVar13 + -2)] ^ pbVar13[-1]];
      pbVar13[-3] = (&DAT_001ab2c0)[abStack_98[(uint)(-iVar5 + 0x7d + iVar2)] ^ pbVar13[-2]];
      pbVar13 = pbVar13 + -4;
    } while (pbVar13 != pbVar7);
  }
LAB_0012071d:
  do {
    *param_5 = (uint)pbVar17[1] * 0x100 + (uint)*pbVar17;
    param_5[1] = (uint)pbVar17[2] + (uint)pbVar17[3] * 0x100;
    param_5[2] = (uint)pbVar17[5] * 0x100 + (uint)pbVar17[4];
    param_5[3] = (uint)pbVar17[7] * 0x100 + (uint)pbVar17[6];
    param_5[4] = (uint)pbVar17[9] * 0x100 + (uint)pbVar17[8];
    param_5[5] = (uint)pbVar17[0xb] * 0x100 + (uint)pbVar17[10];
    param_5[6] = (uint)pbVar17[0xd] * 0x100 + (uint)pbVar17[0xc];
    param_5[7] = (uint)pbVar17[0xf] * 0x100 + (uint)pbVar17[0xe];
    pbVar17 = pbVar17 + 0x10;
    param_5 = param_5 + 8;
  } while (pbVar17 != abStack_98 + 0x80);
LAB_001207e0:
  if (lStack_10 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    uStack_a0 = rc2_setup;
    __stack_chk_fail();
  }
  return uVar3;
}

