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

int cast5_ecb_encrypt(uchar *pt,uchar *ct,symmetric_key *skey)

{
  byte bVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  
  if (pt == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);
  }
  if (ct != (uchar *)0x0) {
    if (skey == (symmetric_key *)0x0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);
    }
    uVar2 = *(uint *)(pt + 4);
    uVar3 = *(uint *)pt;
    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;
    uVar2 = (skey->des).ek[0] + uVar4;
    bVar1 = (byte)(skey->des).ek[0x10] & 0x1f;
    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;
    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^
            ((S2[uVar2 >> 0x10 & 0xff] ^ S1[uVar2 >> 0x18]) - S3[uVar2 >> 8 & 0xff]) +
            S4[uVar2 & 0xff];
    uVar3 = (skey->des).ek[1] ^ uVar2;
    bVar1 = (byte)(skey->des).ek[0x11] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = uVar4 ^ S4[uVar3 & 0xff] ^
            (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff];
    uVar3 = (skey->des).ek[2] - uVar4;
    bVar1 = (byte)(skey->des).ek[0x12] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -
            S4[uVar3 & 0xff] ^ uVar2;
    uVar3 = (skey->des).ek[3] + uVar2;
    bVar1 = (byte)(skey->des).ek[0x13] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +
            S4[uVar3 & 0xff] ^ uVar4;
    uVar3 = (skey->des).ek[4] ^ uVar4;
    bVar1 = (byte)(skey->des).ek[0x14] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^
            S4[uVar3 & 0xff] ^ uVar2;
    uVar3 = (skey->des).ek[5] - uVar2;
    bVar1 = (byte)(skey->des).ek[0x15] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -
            S4[uVar3 & 0xff] ^ uVar4;
    uVar3 = (skey->des).ek[6] + uVar4;
    bVar1 = (byte)(skey->des).ek[0x16] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar2 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +
            S4[uVar3 & 0xff] ^ uVar2;
    uVar3 = (skey->des).ek[7] ^ uVar2;
    bVar1 = (byte)(skey->des).ek[0x17] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^
            S4[uVar3 & 0xff] ^ uVar4;
    uVar3 = (skey->des).ek[8] - uVar4;
    bVar1 = (byte)(skey->des).ek[0x18] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -
            S4[uVar3 & 0xff] ^ uVar2;
    uVar3 = (skey->des).ek[9] + uVar2;
    bVar1 = (byte)(skey->des).ek[0x19] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +
            S4[uVar3 & 0xff] ^ uVar4;
    uVar3 = (skey->des).ek[10] ^ uVar4;
    bVar1 = (byte)(skey->des).ek[0x1a] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^
            S4[uVar3 & 0xff] ^ uVar2;
    uVar3 = (skey->des).ek[0xb] - uVar2;
    bVar1 = (byte)(skey->des).ek[0x1b] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -
            S4[uVar3 & 0xff] ^ uVar4;
    if (10 < (skey->des).dk[0]) {
      uVar3 = (skey->des).ek[0xc] + uVar4;
      bVar1 = (byte)(skey->des).ek[0x1c] & 0x1f;
      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
      uVar2 = uVar2 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +
                      S4[uVar3 & 0xff];
      uVar3 = (skey->des).ek[0xd] ^ uVar2;
      bVar1 = (byte)(skey->des).ek[0x1d] & 0x1f;
      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
      uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^
              uVar4 ^ S4[uVar3 & 0xff];
      uVar3 = (skey->des).ek[0xe] - uVar4;
      bVar1 = (byte)(skey->des).ek[0x1e] & 0x1f;
      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
      uVar2 = uVar2 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -
                      S4[uVar3 & 0xff];
      uVar3 = (skey->des).ek[0xf] + uVar2;
      bVar1 = (byte)(skey->des).ek[0x1f] & 0x1f;
      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
      uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +
              S4[uVar3 & 0xff] ^ uVar4;
    }
    *(uint *)(ct + 4) =
         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;
    *(uint *)ct = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);
}



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

undefined8 cast5_ecb_encrypt(uint *param_1,uint *param_2,int *param_3)

{
  byte bVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  
  if (param_1 == (uint *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);
  }
  if (param_2 != (uint *)0x0) {
    if (param_3 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);
    }
    uVar2 = param_1[1];
    uVar3 = *param_1;
    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;
    uVar2 = *param_3 + uVar4;
    bVar1 = (byte)param_3[0x10] & 0x1f;
    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;
    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^
            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^
             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -
            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +
            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);
    uVar3 = param_3[1] ^ uVar2;
    bVar1 = (byte)param_3[0x11] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^
            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);
    uVar3 = param_3[2] - uVar4;
    bVar1 = (byte)param_3[0x12] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;
    uVar3 = param_3[3] + uVar2;
    bVar1 = (byte)param_3[0x13] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +
            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;
    uVar3 = param_3[4] ^ uVar4;
    bVar1 = (byte)param_3[0x14] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;
    uVar3 = param_3[5] - uVar2;
    bVar1 = (byte)param_3[0x15] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;
    uVar3 = param_3[6] + uVar4;
    bVar1 = (byte)param_3[0x16] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +
            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;
    uVar3 = param_3[7] ^ uVar2;
    bVar1 = (byte)param_3[0x17] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;
    uVar3 = param_3[8] - uVar4;
    bVar1 = (byte)param_3[0x18] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;
    uVar3 = param_3[9] + uVar2;
    bVar1 = (byte)param_3[0x19] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +
            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;
    uVar3 = param_3[10] ^ uVar4;
    bVar1 = (byte)param_3[0x1a] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;
    bVar1 = (byte)param_3[0x1b] & 0x1f;
    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;
    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;
    if (10 < (uint)param_3[0x20]) {
      bVar1 = (byte)param_3[0x1c] & 0x1f;
      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;
      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -
                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +
                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);
      uVar3 = param_3[0xd] ^ uVar2;
      bVar1 = (byte)param_3[0x1d] & 0x1f;
      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);
      uVar3 = param_3[0xe] - uVar4;
      bVar1 = (byte)param_3[0x1e] & 0x1f;
      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);
      bVar1 = (byte)param_3[0x1f] & 0x1f;
      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;
      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -
              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +
              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;
    }
    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;
    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);
}


JMP qword ptr [0x001dda90]
(translation_unit "/* WARNING: Switch with 1 destination removed at 0x00114960 */\n\nundefined8 cast5_ecb_encrypt(uint *param_1,uint *param_2,int *param_3)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = param_1[1];\n    uVar3 = *param_1;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = *param_3 + uVar4;\n    bVar1 = (byte)param_3[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);\n    uVar3 = param_3[1] ^ uVar2;\n    bVar1 = (byte)param_3[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);\n    uVar3 = param_3[2] - uVar4;\n    bVar1 = (byte)param_3[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[3] + uVar2;\n    bVar1 = (byte)param_3[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[4] ^ uVar4;\n    bVar1 = (byte)param_3[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[5] - uVar2;\n    bVar1 = (byte)param_3[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[6] + uVar4;\n    bVar1 = (byte)param_3[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[7] ^ uVar2;\n    bVar1 = (byte)param_3[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[8] - uVar4;\n    bVar1 = (byte)param_3[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[9] + uVar2;\n    bVar1 = (byte)param_3[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[10] ^ uVar4;\n    bVar1 = (byte)param_3[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    bVar1 = (byte)param_3[0x1b] & 0x1f;\n    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);\n}\n\n" comment (function_definition "undefined8 cast5_ecb_encrypt(uint *param_1,uint *param_2,int *param_3)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = param_1[1];\n    uVar3 = *param_1;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = *param_3 + uVar4;\n    bVar1 = (byte)param_3[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);\n    uVar3 = param_3[1] ^ uVar2;\n    bVar1 = (byte)param_3[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);\n    uVar3 = param_3[2] - uVar4;\n    bVar1 = (byte)param_3[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[3] + uVar2;\n    bVar1 = (byte)param_3[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[4] ^ uVar4;\n    bVar1 = (byte)param_3[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[5] - uVar2;\n    bVar1 = (byte)param_3[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[6] + uVar4;\n    bVar1 = (byte)param_3[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[7] ^ uVar2;\n    bVar1 = (byte)param_3[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[8] - uVar4;\n    bVar1 = (byte)param_3[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[9] + uVar2;\n    bVar1 = (byte)param_3[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[10] ^ uVar4;\n    bVar1 = (byte)param_3[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    bVar1 = (byte)param_3[0x1b] & 0x1f;\n    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);\n}" type_identifier (function_declarator "cast5_ecb_encrypt(uint *param_1,uint *param_2,int *param_3)" identifier (parameter_list "(uint *param_1,uint *param_2,int *param_3)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = param_1[1];\n    uVar3 = *param_1;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = *param_3 + uVar4;\n    bVar1 = (byte)param_3[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);\n    uVar3 = param_3[1] ^ uVar2;\n    bVar1 = (byte)param_3[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);\n    uVar3 = param_3[2] - uVar4;\n    bVar1 = (byte)param_3[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[3] + uVar2;\n    bVar1 = (byte)param_3[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[4] ^ uVar4;\n    bVar1 = (byte)param_3[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[5] - uVar2;\n    bVar1 = (byte)param_3[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[6] + uVar4;\n    bVar1 = (byte)param_3[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[7] ^ uVar2;\n    bVar1 = (byte)param_3[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[8] - uVar4;\n    bVar1 = (byte)param_3[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[9] + uVar2;\n    bVar1 = (byte)param_3[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[10] ^ uVar4;\n    bVar1 = (byte)param_3[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    bVar1 = (byte)param_3[0x1b] & 0x1f;\n    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (if_statement "if (param_1 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }" if (parenthesized_expression "(param_1 == (uint *)0x0)" ( (binary_expression "param_1 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }" { comment (expression_statement "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);" (call_expression "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220)" identifier (argument_list "("pt != NULL","src/ciphers/cast5.c",0x220)" ( (string_literal ""pt != NULL"" " string_content ") , (string_literal ""src/ciphers/cast5.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = param_1[1];\n    uVar3 = *param_1;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = *param_3 + uVar4;\n    bVar1 = (byte)param_3[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);\n    uVar3 = param_3[1] ^ uVar2;\n    bVar1 = (byte)param_3[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);\n    uVar3 = param_3[2] - uVar4;\n    bVar1 = (byte)param_3[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[3] + uVar2;\n    bVar1 = (byte)param_3[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[4] ^ uVar4;\n    bVar1 = (byte)param_3[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[5] - uVar2;\n    bVar1 = (byte)param_3[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[6] + uVar4;\n    bVar1 = (byte)param_3[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[7] ^ uVar2;\n    bVar1 = (byte)param_3[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[8] - uVar4;\n    bVar1 = (byte)param_3[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[9] + uVar2;\n    bVar1 = (byte)param_3[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[10] ^ uVar4;\n    bVar1 = (byte)param_3[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    bVar1 = (byte)param_3[0x1b] & 0x1f;\n    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }" if (parenthesized_expression "(param_2 != (uint *)0x0)" ( (binary_expression "param_2 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (param_3 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = param_1[1];\n    uVar3 = *param_1;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = *param_3 + uVar4;\n    bVar1 = (byte)param_3[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);\n    uVar3 = param_3[1] ^ uVar2;\n    bVar1 = (byte)param_3[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);\n    uVar3 = param_3[2] - uVar4;\n    bVar1 = (byte)param_3[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[3] + uVar2;\n    bVar1 = (byte)param_3[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[4] ^ uVar4;\n    bVar1 = (byte)param_3[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[5] - uVar2;\n    bVar1 = (byte)param_3[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[6] + uVar4;\n    bVar1 = (byte)param_3[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[7] ^ uVar2;\n    bVar1 = (byte)param_3[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[8] - uVar4;\n    bVar1 = (byte)param_3[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[9] + uVar2;\n    bVar1 = (byte)param_3[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[10] ^ uVar4;\n    bVar1 = (byte)param_3[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    bVar1 = (byte)param_3[0x1b] & 0x1f;\n    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }" { (if_statement "if (param_3 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }" { comment (expression_statement "crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222)" identifier (argument_list "("skey != NULL","src/ciphers/cast5.c",0x222)" ( (string_literal ""skey != NULL"" " string_content ") , (string_literal ""src/ciphers/cast5.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = *param_1;" (assignment_expression "uVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" identifier = (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar2 = *param_3 + uVar4;" (assignment_expression "uVar2 = *param_3 + uVar4" identifier = (binary_expression "*param_3 + uVar4" (pointer_expression "*param_3" * identifier) + identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x10] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x10] & 0x1f" identifier = (binary_expression "(byte)param_3[0x10] & 0x1f" (cast_expression "(byte)param_3[0x10]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x10]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;" (assignment_expression "uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1" identifier = (binary_expression "uVar2 << bVar1 | uVar2 >> 0x20 - bVar1" (binary_expression "uVar2 << bVar1" identifier << identifier) | (binary_expression "uVar2 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);" (assignment_expression "uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" identifier = (binary_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18)" ( (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) )) ^ (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar2 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar2 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar2 >> 0x10 & 0xff)" ( (binary_expression "uVar2 >> 0x10 & 0xff" (binary_expression "uVar2 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar2 >> 0x18) * 4" (call_expression "(ulong)(uVar2 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar2 >> 0x18)" ( (binary_expression "uVar2 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar2 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar2 & 0xff) * 4" (call_expression "(ulong)(uVar2 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) ))) * number_literal)) ))))))) ;) (expression_statement "uVar3 = param_3[1] ^ uVar2;" (assignment_expression "uVar3 = param_3[1] ^ uVar2" identifier = (binary_expression "param_3[1] ^ uVar2" (subscript_expression "param_3[1]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x11] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x11] & 0x1f" identifier = (binary_expression "(byte)param_3[0x11] & 0x1f" (cast_expression "(byte)param_3[0x11]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x11]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);" (assignment_expression "uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" identifier = (binary_expression "uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (binary_expression "uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" identifier ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))))) ;) (expression_statement "uVar3 = param_3[2] - uVar4;" (assignment_expression "uVar3 = param_3[2] - uVar4" identifier = (binary_expression "param_3[2] - uVar4" (subscript_expression "param_3[2]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x12] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x12] & 0x1f" identifier = (binary_expression "(byte)param_3[0x12] & 0x1f" (cast_expression "(byte)param_3[0x12]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x12]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;" (assignment_expression "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[3] + uVar2;" (assignment_expression "uVar3 = param_3[3] + uVar2" identifier = (binary_expression "param_3[3] + uVar2" (subscript_expression "param_3[3]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x13] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x13] & 0x1f" identifier = (binary_expression "(byte)param_3[0x13] & 0x1f" (cast_expression "(byte)param_3[0x13]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x13]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[4] ^ uVar4;" (assignment_expression "uVar3 = param_3[4] ^ uVar4" identifier = (binary_expression "param_3[4] ^ uVar4" (subscript_expression "param_3[4]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x14] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x14] & 0x1f" identifier = (binary_expression "(byte)param_3[0x14] & 0x1f" (cast_expression "(byte)param_3[0x14]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x14]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;" (assignment_expression "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[5] - uVar2;" (assignment_expression "uVar3 = param_3[5] - uVar2" identifier = (binary_expression "param_3[5] - uVar2" (subscript_expression "param_3[5]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x15] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x15] & 0x1f" identifier = (binary_expression "(byte)param_3[0x15] & 0x1f" (cast_expression "(byte)param_3[0x15]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x15]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[6] + uVar4;" (assignment_expression "uVar3 = param_3[6] + uVar4" identifier = (binary_expression "param_3[6] + uVar4" (subscript_expression "param_3[6]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x16] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x16] & 0x1f" identifier = (binary_expression "(byte)param_3[0x16] & 0x1f" (cast_expression "(byte)param_3[0x16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x16]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;" (assignment_expression "uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[7] ^ uVar2;" (assignment_expression "uVar3 = param_3[7] ^ uVar2" identifier = (binary_expression "param_3[7] ^ uVar2" (subscript_expression "param_3[7]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x17] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x17] & 0x1f" identifier = (binary_expression "(byte)param_3[0x17] & 0x1f" (cast_expression "(byte)param_3[0x17]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x17]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[8] - uVar4;" (assignment_expression "uVar3 = param_3[8] - uVar4" identifier = (binary_expression "param_3[8] - uVar4" (subscript_expression "param_3[8]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x18] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x18] & 0x1f" identifier = (binary_expression "(byte)param_3[0x18] & 0x1f" (cast_expression "(byte)param_3[0x18]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x18]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;" (assignment_expression "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[9] + uVar2;" (assignment_expression "uVar3 = param_3[9] + uVar2" identifier = (binary_expression "param_3[9] + uVar2" (subscript_expression "param_3[9]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x19] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x19] & 0x1f" identifier = (binary_expression "(byte)param_3[0x19] & 0x1f" (cast_expression "(byte)param_3[0x19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x19]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[10] ^ uVar4;" (assignment_expression "uVar3 = param_3[10] ^ uVar4" identifier = (binary_expression "param_3[10] ^ uVar4" (subscript_expression "param_3[10]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x1a] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1a] & 0x1f" identifier = (binary_expression "(byte)param_3[0x1a] & 0x1f" (cast_expression "(byte)param_3[0x1a]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x1a]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;" (assignment_expression "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x1b] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1b] & 0x1f" identifier = (binary_expression "(byte)param_3[0x1b] & 0x1f" (cast_expression "(byte)param_3[0x1b]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x1b]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;" (assignment_expression "uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1" identifier = (binary_expression "param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1" (binary_expression "param_3[0xb] - uVar2 << bVar1" (binary_expression "param_3[0xb] - uVar2" (subscript_expression "param_3[0xb]" identifier [ number_literal ]) - identifier) << identifier) | (binary_expression "param_3[0xb] - uVar2 >> 0x20 - bVar1" (binary_expression "param_3[0xb] - uVar2" (subscript_expression "param_3[0xb]" identifier [ number_literal ]) - identifier) >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (if_statement "if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }" if (parenthesized_expression "(10 < (uint)param_3[0x20])" ( (binary_expression "10 < (uint)param_3[0x20]" number_literal < (cast_expression "(uint)param_3[0x20]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[0x20]" identifier [ number_literal ]))) )) (compound_statement "{\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }" { (expression_statement "bVar1 = (byte)param_3[0x1c] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1c] & 0x1f" identifier = (binary_expression "(byte)param_3[0x1c] & 0x1f" (cast_expression "(byte)param_3[0x1c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x1c]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;" (assignment_expression "uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1" identifier = (binary_expression "param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1" (binary_expression "param_3[0xc] + uVar4 << bVar1" (binary_expression "param_3[0xc] + uVar4" (subscript_expression "param_3[0xc]" identifier [ number_literal ]) + identifier) << identifier) | (binary_expression "param_3[0xc] + uVar4 >> 0x20 - bVar1" (binary_expression "param_3[0xc] + uVar4" (subscript_expression "param_3[0xc]" identifier [ number_literal ]) + identifier) >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);" (assignment_expression "uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" identifier = (binary_expression "uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" identifier ^ (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))))) ;) (expression_statement "uVar3 = param_3[0xd] ^ uVar2;" (assignment_expression "uVar3 = param_3[0xd] ^ uVar2" identifier = (binary_expression "param_3[0xd] ^ uVar2" (subscript_expression "param_3[0xd]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x1d] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1d] & 0x1f" identifier = (binary_expression "(byte)param_3[0x1d] & 0x1f" (cast_expression "(byte)param_3[0x1d]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x1d]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ identifier) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) )))))) ;) (expression_statement "uVar3 = param_3[0xe] - uVar4;" (assignment_expression "uVar3 = param_3[0xe] - uVar4" identifier = (binary_expression "param_3[0xe] - uVar4" (subscript_expression "param_3[0xe]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x1e] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1e] & 0x1f" identifier = (binary_expression "(byte)param_3[0x1e] & 0x1f" (cast_expression "(byte)param_3[0x1e]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x1e]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);" (assignment_expression "uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" identifier = (binary_expression "uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" identifier ^ (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))))) ;) (expression_statement "bVar1 = (byte)param_3[0x1f] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1f] & 0x1f" identifier = (binary_expression "(byte)param_3[0x1f] & 0x1f" (cast_expression "(byte)param_3[0x1f]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x1f]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;" (assignment_expression "uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1" identifier = (binary_expression "param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1" (binary_expression "param_3[0xf] + uVar2 << bVar1" (binary_expression "param_3[0xf] + uVar2" (subscript_expression "param_3[0xf]" identifier [ number_literal ]) + identifier) << identifier) | (binary_expression "param_3[0xf] + uVar2 >> 0x20 - bVar1" (binary_expression "param_3[0xf] + uVar2" (subscript_expression "param_3[0xf]" identifier [ number_literal ]) + identifier) >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) })) (expression_statement "param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal))) ;) (expression_statement "*param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;" (assignment_expression "*param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" identifier << number_literal))) ;) (return_statement "return 0;" return number_literal ;) })) comment (expression_statement "crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);" (call_expression "crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221)" identifier (argument_list "("ct != NULL","src/ciphers/cast5.c",0x221)" ( (string_literal ""ct != NULL"" " string_content ") , (string_literal ""src/ciphers/cast5.c"" " string_content ") , number_literal ))) ;) })))
(translation_unit "/* WARNING: Switch with 1 destination removed at 0x00114960 */\n\nint cast5_ecb_encrypt(uchar *pt,uchar *ct,symmetric_key *skey)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (pt == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }\n  if (ct != (uchar *)0x0) {\n    if (skey == (symmetric_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = *(uint *)(pt + 4);\n    uVar3 = *(uint *)pt;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = (skey->des).ek[0] + uVar4;\n    bVar1 = (byte)(skey->des).ek[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((S2[uVar2 >> 0x10 & 0xff] ^ S1[uVar2 >> 0x18]) - S3[uVar2 >> 8 & 0xff]) +\n            S4[uVar2 & 0xff];\n    uVar3 = (skey->des).ek[1] ^ uVar2;\n    bVar1 = (byte)(skey->des).ek[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ S4[uVar3 & 0xff] ^\n            (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff];\n    uVar3 = (skey->des).ek[2] - uVar4;\n    bVar1 = (byte)(skey->des).ek[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[3] + uVar2;\n    bVar1 = (byte)(skey->des).ek[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[4] ^ uVar4;\n    bVar1 = (byte)(skey->des).ek[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[5] - uVar2;\n    bVar1 = (byte)(skey->des).ek[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[6] + uVar4;\n    bVar1 = (byte)(skey->des).ek[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[7] ^ uVar2;\n    bVar1 = (byte)(skey->des).ek[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[8] - uVar4;\n    bVar1 = (byte)(skey->des).ek[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[9] + uVar2;\n    bVar1 = (byte)(skey->des).ek[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[10] ^ uVar4;\n    bVar1 = (byte)(skey->des).ek[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[0xb] - uVar2;\n    bVar1 = (byte)(skey->des).ek[0x1b] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4;\n    if (10 < (skey->des).dk[0]) {\n      uVar3 = (skey->des).ek[0xc] + uVar4;\n      bVar1 = (byte)(skey->des).ek[0x1c] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xd] ^ uVar2;\n      bVar1 = (byte)(skey->des).ek[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              uVar4 ^ S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xe] - uVar4;\n      bVar1 = (byte)(skey->des).ek[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xf] + uVar2;\n      bVar1 = (byte)(skey->des).ek[0x1f] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar4;\n    }\n    *(uint *)(ct + 4) =\n         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *(uint *)ct = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);\n}\n\n" comment (function_definition "int cast5_ecb_encrypt(uchar *pt,uchar *ct,symmetric_key *skey)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (pt == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }\n  if (ct != (uchar *)0x0) {\n    if (skey == (symmetric_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = *(uint *)(pt + 4);\n    uVar3 = *(uint *)pt;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = (skey->des).ek[0] + uVar4;\n    bVar1 = (byte)(skey->des).ek[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((S2[uVar2 >> 0x10 & 0xff] ^ S1[uVar2 >> 0x18]) - S3[uVar2 >> 8 & 0xff]) +\n            S4[uVar2 & 0xff];\n    uVar3 = (skey->des).ek[1] ^ uVar2;\n    bVar1 = (byte)(skey->des).ek[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ S4[uVar3 & 0xff] ^\n            (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff];\n    uVar3 = (skey->des).ek[2] - uVar4;\n    bVar1 = (byte)(skey->des).ek[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[3] + uVar2;\n    bVar1 = (byte)(skey->des).ek[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[4] ^ uVar4;\n    bVar1 = (byte)(skey->des).ek[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[5] - uVar2;\n    bVar1 = (byte)(skey->des).ek[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[6] + uVar4;\n    bVar1 = (byte)(skey->des).ek[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[7] ^ uVar2;\n    bVar1 = (byte)(skey->des).ek[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[8] - uVar4;\n    bVar1 = (byte)(skey->des).ek[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[9] + uVar2;\n    bVar1 = (byte)(skey->des).ek[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[10] ^ uVar4;\n    bVar1 = (byte)(skey->des).ek[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[0xb] - uVar2;\n    bVar1 = (byte)(skey->des).ek[0x1b] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4;\n    if (10 < (skey->des).dk[0]) {\n      uVar3 = (skey->des).ek[0xc] + uVar4;\n      bVar1 = (byte)(skey->des).ek[0x1c] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xd] ^ uVar2;\n      bVar1 = (byte)(skey->des).ek[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              uVar4 ^ S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xe] - uVar4;\n      bVar1 = (byte)(skey->des).ek[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xf] + uVar2;\n      bVar1 = (byte)(skey->des).ek[0x1f] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar4;\n    }\n    *(uint *)(ct + 4) =\n         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *(uint *)ct = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);\n}" primitive_type (function_declarator "cast5_ecb_encrypt(uchar *pt,uchar *ct,symmetric_key *skey)" identifier (parameter_list "(uchar *pt,uchar *ct,symmetric_key *skey)" ( (parameter_declaration "uchar *pt" type_identifier (pointer_declarator "*pt" * identifier)) , (parameter_declaration "uchar *ct" type_identifier (pointer_declarator "*ct" * identifier)) , (parameter_declaration "symmetric_key *skey" type_identifier (pointer_declarator "*skey" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (pt == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }\n  if (ct != (uchar *)0x0) {\n    if (skey == (symmetric_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = *(uint *)(pt + 4);\n    uVar3 = *(uint *)pt;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = (skey->des).ek[0] + uVar4;\n    bVar1 = (byte)(skey->des).ek[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((S2[uVar2 >> 0x10 & 0xff] ^ S1[uVar2 >> 0x18]) - S3[uVar2 >> 8 & 0xff]) +\n            S4[uVar2 & 0xff];\n    uVar3 = (skey->des).ek[1] ^ uVar2;\n    bVar1 = (byte)(skey->des).ek[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ S4[uVar3 & 0xff] ^\n            (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff];\n    uVar3 = (skey->des).ek[2] - uVar4;\n    bVar1 = (byte)(skey->des).ek[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[3] + uVar2;\n    bVar1 = (byte)(skey->des).ek[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[4] ^ uVar4;\n    bVar1 = (byte)(skey->des).ek[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[5] - uVar2;\n    bVar1 = (byte)(skey->des).ek[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[6] + uVar4;\n    bVar1 = (byte)(skey->des).ek[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[7] ^ uVar2;\n    bVar1 = (byte)(skey->des).ek[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[8] - uVar4;\n    bVar1 = (byte)(skey->des).ek[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[9] + uVar2;\n    bVar1 = (byte)(skey->des).ek[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[10] ^ uVar4;\n    bVar1 = (byte)(skey->des).ek[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[0xb] - uVar2;\n    bVar1 = (byte)(skey->des).ek[0x1b] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4;\n    if (10 < (skey->des).dk[0]) {\n      uVar3 = (skey->des).ek[0xc] + uVar4;\n      bVar1 = (byte)(skey->des).ek[0x1c] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xd] ^ uVar2;\n      bVar1 = (byte)(skey->des).ek[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              uVar4 ^ S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xe] - uVar4;\n      bVar1 = (byte)(skey->des).ek[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xf] + uVar2;\n      bVar1 = (byte)(skey->des).ek[0x1f] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar4;\n    }\n    *(uint *)(ct + 4) =\n         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *(uint *)ct = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (if_statement "if (pt == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }" if (parenthesized_expression "(pt == (uchar *)0x0)" ( (binary_expression "pt == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }" { comment (expression_statement "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);" (call_expression "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220)" identifier (argument_list "("pt != NULL","src/ciphers/cast5.c",0x220)" ( (string_literal ""pt != NULL"" " string_content ") , (string_literal ""src/ciphers/cast5.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (ct != (uchar *)0x0) {\n    if (skey == (symmetric_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = *(uint *)(pt + 4);\n    uVar3 = *(uint *)pt;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = (skey->des).ek[0] + uVar4;\n    bVar1 = (byte)(skey->des).ek[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((S2[uVar2 >> 0x10 & 0xff] ^ S1[uVar2 >> 0x18]) - S3[uVar2 >> 8 & 0xff]) +\n            S4[uVar2 & 0xff];\n    uVar3 = (skey->des).ek[1] ^ uVar2;\n    bVar1 = (byte)(skey->des).ek[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ S4[uVar3 & 0xff] ^\n            (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff];\n    uVar3 = (skey->des).ek[2] - uVar4;\n    bVar1 = (byte)(skey->des).ek[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[3] + uVar2;\n    bVar1 = (byte)(skey->des).ek[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[4] ^ uVar4;\n    bVar1 = (byte)(skey->des).ek[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[5] - uVar2;\n    bVar1 = (byte)(skey->des).ek[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[6] + uVar4;\n    bVar1 = (byte)(skey->des).ek[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[7] ^ uVar2;\n    bVar1 = (byte)(skey->des).ek[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[8] - uVar4;\n    bVar1 = (byte)(skey->des).ek[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[9] + uVar2;\n    bVar1 = (byte)(skey->des).ek[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[10] ^ uVar4;\n    bVar1 = (byte)(skey->des).ek[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[0xb] - uVar2;\n    bVar1 = (byte)(skey->des).ek[0x1b] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4;\n    if (10 < (skey->des).dk[0]) {\n      uVar3 = (skey->des).ek[0xc] + uVar4;\n      bVar1 = (byte)(skey->des).ek[0x1c] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xd] ^ uVar2;\n      bVar1 = (byte)(skey->des).ek[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              uVar4 ^ S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xe] - uVar4;\n      bVar1 = (byte)(skey->des).ek[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xf] + uVar2;\n      bVar1 = (byte)(skey->des).ek[0x1f] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar4;\n    }\n    *(uint *)(ct + 4) =\n         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *(uint *)ct = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }" if (parenthesized_expression "(ct != (uchar *)0x0)" ( (binary_expression "ct != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (skey == (symmetric_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = *(uint *)(pt + 4);\n    uVar3 = *(uint *)pt;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = (skey->des).ek[0] + uVar4;\n    bVar1 = (byte)(skey->des).ek[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((S2[uVar2 >> 0x10 & 0xff] ^ S1[uVar2 >> 0x18]) - S3[uVar2 >> 8 & 0xff]) +\n            S4[uVar2 & 0xff];\n    uVar3 = (skey->des).ek[1] ^ uVar2;\n    bVar1 = (byte)(skey->des).ek[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ S4[uVar3 & 0xff] ^\n            (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff];\n    uVar3 = (skey->des).ek[2] - uVar4;\n    bVar1 = (byte)(skey->des).ek[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[3] + uVar2;\n    bVar1 = (byte)(skey->des).ek[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[4] ^ uVar4;\n    bVar1 = (byte)(skey->des).ek[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[5] - uVar2;\n    bVar1 = (byte)(skey->des).ek[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[6] + uVar4;\n    bVar1 = (byte)(skey->des).ek[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[7] ^ uVar2;\n    bVar1 = (byte)(skey->des).ek[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[8] - uVar4;\n    bVar1 = (byte)(skey->des).ek[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[9] + uVar2;\n    bVar1 = (byte)(skey->des).ek[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4;\n    uVar3 = (skey->des).ek[10] ^ uVar4;\n    bVar1 = (byte)(skey->des).ek[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2;\n    uVar3 = (skey->des).ek[0xb] - uVar2;\n    bVar1 = (byte)(skey->des).ek[0x1b] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4;\n    if (10 < (skey->des).dk[0]) {\n      uVar3 = (skey->des).ek[0xc] + uVar4;\n      bVar1 = (byte)(skey->des).ek[0x1c] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xd] ^ uVar2;\n      bVar1 = (byte)(skey->des).ek[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              uVar4 ^ S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xe] - uVar4;\n      bVar1 = (byte)(skey->des).ek[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xf] + uVar2;\n      bVar1 = (byte)(skey->des).ek[0x1f] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar4;\n    }\n    *(uint *)(ct + 4) =\n         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *(uint *)ct = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }" { (if_statement "if (skey == (symmetric_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\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      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }" { comment (expression_statement "crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222)" identifier (argument_list "("skey != NULL","src/ciphers/cast5.c",0x222)" ( (string_literal ""skey != NULL"" " string_content ") , (string_literal ""src/ciphers/cast5.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar2 = *(uint *)(pt + 4);" (assignment_expression "uVar2 = *(uint *)(pt + 4)" identifier = (pointer_expression "*(uint *)(pt + 4)" * (cast_expression "(uint *)(pt + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pt + 4)" ( (binary_expression "pt + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)pt;" (assignment_expression "uVar3 = *(uint *)pt" identifier = (pointer_expression "*(uint *)pt" * (cast_expression "(uint *)pt" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" identifier = (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar2 = (skey->des).ek[0] + uVar4;" (assignment_expression "uVar2 = (skey->des).ek[0] + uVar4" identifier = (binary_expression "(skey->des).ek[0] + uVar4" (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 ]) + identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x10] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x10] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x10] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x10]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;" (assignment_expression "uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1" identifier = (binary_expression "uVar2 << bVar1 | uVar2 >> 0x20 - bVar1" (binary_expression "uVar2 << bVar1" identifier << identifier) | (binary_expression "uVar2 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((S2[uVar2 >> 0x10 & 0xff] ^ S1[uVar2 >> 0x18]) - S3[uVar2 >> 8 & 0xff]) +\n            S4[uVar2 & 0xff];" (assignment_expression "uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((S2[uVar2 >> 0x10 & 0xff] ^ S1[uVar2 >> 0x18]) - S3[uVar2 >> 8 & 0xff]) +\n            S4[uVar2 & 0xff]" identifier = (binary_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((S2[uVar2 >> 0x10 & 0xff] ^ S1[uVar2 >> 0x18]) - S3[uVar2 >> 8 & 0xff]) +\n            S4[uVar2 & 0xff]" (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18)" ( (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) )) ^ (binary_expression "((S2[uVar2 >> 0x10 & 0xff] ^ S1[uVar2 >> 0x18]) - S3[uVar2 >> 8 & 0xff]) +\n            S4[uVar2 & 0xff]" (parenthesized_expression "((S2[uVar2 >> 0x10 & 0xff] ^ S1[uVar2 >> 0x18]) - S3[uVar2 >> 8 & 0xff])" ( (binary_expression "(S2[uVar2 >> 0x10 & 0xff] ^ S1[uVar2 >> 0x18]) - S3[uVar2 >> 8 & 0xff]" (parenthesized_expression "(S2[uVar2 >> 0x10 & 0xff] ^ S1[uVar2 >> 0x18])" ( (binary_expression "S2[uVar2 >> 0x10 & 0xff] ^ S1[uVar2 >> 0x18]" (subscript_expression "S2[uVar2 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar2 >> 0x10 & 0xff" (binary_expression "uVar2 >> 0x10" identifier >> number_literal) & number_literal) ]) ^ (subscript_expression "S1[uVar2 >> 0x18]" identifier [ (binary_expression "uVar2 >> 0x18" identifier >> number_literal) ])) )) - (subscript_expression "S3[uVar2 >> 8 & 0xff]" identifier [ (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" identifier >> number_literal) & number_literal) ])) )) + (subscript_expression "S4[uVar2 & 0xff]" identifier [ (binary_expression "uVar2 & 0xff" identifier & number_literal) ])))) ;) (expression_statement "uVar3 = (skey->des).ek[1] ^ uVar2;" (assignment_expression "uVar3 = (skey->des).ek[1] ^ uVar2" identifier = (binary_expression "(skey->des).ek[1] ^ uVar2" (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 ]) ^ identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x11] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x11] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x11] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x11]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = uVar4 ^ S4[uVar3 & 0xff] ^\n            (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff];" (assignment_expression "uVar4 = uVar4 ^ S4[uVar3 & 0xff] ^\n            (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff]" identifier = (binary_expression "uVar4 ^ S4[uVar3 & 0xff] ^\n            (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff]" (binary_expression "uVar4 ^ S4[uVar3 & 0xff]" identifier ^ (subscript_expression "S4[uVar3 & 0xff]" identifier [ (binary_expression "uVar3 & 0xff" identifier & number_literal) ])) ^ (binary_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff]" (parenthesized_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff])" ( (binary_expression "S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]" (subscript_expression "S1[uVar3 >> 0x18]" identifier [ (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S3[uVar3 >> 8 & 0xff]" identifier [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S2[uVar3 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ])))) ;) (expression_statement "uVar3 = (skey->des).ek[2] - uVar4;" (assignment_expression "uVar3 = (skey->des).ek[2] - uVar4" identifier = (binary_expression "(skey->des).ek[2] - uVar4" (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 ]) - identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x12] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x12] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x12] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x12]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2;" (assignment_expression "uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2" identifier = (binary_expression "(S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2" (binary_expression "(S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff]" (parenthesized_expression "(S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff])" ( (binary_expression "S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]" (binary_expression "S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff]" (subscript_expression "S1[uVar3 >> 0x18]" identifier [ (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S2[uVar3 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ])) ^ (subscript_expression "S3[uVar3 >> 8 & 0xff]" identifier [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S4[uVar3 & 0xff]" identifier [ (binary_expression "uVar3 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar3 = (skey->des).ek[3] + uVar2;" (assignment_expression "uVar3 = (skey->des).ek[3] + uVar2" identifier = (binary_expression "(skey->des).ek[3] + uVar2" (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 ]) + identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x13] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x13] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x13] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x13]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4;" (assignment_expression "uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4" identifier = (binary_expression "((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4" (binary_expression "((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff]" (parenthesized_expression "((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff])" ( (binary_expression "(S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]" (parenthesized_expression "(S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18])" ( (binary_expression "S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]" (subscript_expression "S2[uVar3 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ]) ^ (subscript_expression "S1[uVar3 >> 0x18]" identifier [ (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ])) )) - (subscript_expression "S3[uVar3 >> 8 & 0xff]" identifier [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) + (subscript_expression "S4[uVar3 & 0xff]" identifier [ (binary_expression "uVar3 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar3 = (skey->des).ek[4] ^ uVar4;" (assignment_expression "uVar3 = (skey->des).ek[4] ^ uVar4" identifier = (binary_expression "(skey->des).ek[4] ^ uVar4" (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 ]) ^ identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x14] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x14] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x14] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x14]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2;" (assignment_expression "uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2" identifier = (binary_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2" (binary_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff]" (binary_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff]" (parenthesized_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff])" ( (binary_expression "S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]" (subscript_expression "S1[uVar3 >> 0x18]" identifier [ (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S3[uVar3 >> 8 & 0xff]" identifier [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S2[uVar3 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ])) ^ (subscript_expression "S4[uVar3 & 0xff]" identifier [ (binary_expression "uVar3 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar3 = (skey->des).ek[5] - uVar2;" (assignment_expression "uVar3 = (skey->des).ek[5] - uVar2" identifier = (binary_expression "(skey->des).ek[5] - uVar2" (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 ]) - identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x15] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x15] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x15] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x15]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4;" (assignment_expression "uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4" identifier = (binary_expression "(S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4" (binary_expression "(S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff]" (parenthesized_expression "(S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff])" ( (binary_expression "S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]" (binary_expression "S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff]" (subscript_expression "S1[uVar3 >> 0x18]" identifier [ (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S2[uVar3 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ])) ^ (subscript_expression "S3[uVar3 >> 8 & 0xff]" identifier [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S4[uVar3 & 0xff]" identifier [ (binary_expression "uVar3 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar3 = (skey->des).ek[6] + uVar4;" (assignment_expression "uVar3 = (skey->des).ek[6] + uVar4" identifier = (binary_expression "(skey->des).ek[6] + uVar4" (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 ]) + identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x16] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x16] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x16] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x16]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar2;" (assignment_expression "uVar2 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar2" identifier = (binary_expression "((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar2" (binary_expression "((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff]" (parenthesized_expression "((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff])" ( (binary_expression "(S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]" (parenthesized_expression "(S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18])" ( (binary_expression "S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]" (subscript_expression "S2[uVar3 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ]) ^ (subscript_expression "S1[uVar3 >> 0x18]" identifier [ (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ])) )) - (subscript_expression "S3[uVar3 >> 8 & 0xff]" identifier [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) + (subscript_expression "S4[uVar3 & 0xff]" identifier [ (binary_expression "uVar3 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar3 = (skey->des).ek[7] ^ uVar2;" (assignment_expression "uVar3 = (skey->des).ek[7] ^ uVar2" identifier = (binary_expression "(skey->des).ek[7] ^ uVar2" (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 ]) ^ identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x17] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x17] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x17] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x17]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar4;" (assignment_expression "uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar4" identifier = (binary_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar4" (binary_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff]" (binary_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff]" (parenthesized_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff])" ( (binary_expression "S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]" (subscript_expression "S1[uVar3 >> 0x18]" identifier [ (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S3[uVar3 >> 8 & 0xff]" identifier [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S2[uVar3 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ])) ^ (subscript_expression "S4[uVar3 & 0xff]" identifier [ (binary_expression "uVar3 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar3 = (skey->des).ek[8] - uVar4;" (assignment_expression "uVar3 = (skey->des).ek[8] - uVar4" identifier = (binary_expression "(skey->des).ek[8] - uVar4" (subscript_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 ]) - identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x18] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x18] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x18] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x18]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2;" (assignment_expression "uVar2 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2" identifier = (binary_expression "(S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar2" (binary_expression "(S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff]" (parenthesized_expression "(S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff])" ( (binary_expression "S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]" (binary_expression "S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff]" (subscript_expression "S1[uVar3 >> 0x18]" identifier [ (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S2[uVar3 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ])) ^ (subscript_expression "S3[uVar3 >> 8 & 0xff]" identifier [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S4[uVar3 & 0xff]" identifier [ (binary_expression "uVar3 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar3 = (skey->des).ek[9] + uVar2;" (assignment_expression "uVar3 = (skey->des).ek[9] + uVar2" identifier = (binary_expression "(skey->des).ek[9] + uVar2" (subscript_expression "(skey->des).ek[9]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) + identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x19] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x19] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x19] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x19]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4;" (assignment_expression "uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4" identifier = (binary_expression "((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff] ^ uVar4" (binary_expression "((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n            S4[uVar3 & 0xff]" (parenthesized_expression "((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff])" ( (binary_expression "(S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]" (parenthesized_expression "(S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18])" ( (binary_expression "S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]" (subscript_expression "S2[uVar3 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ]) ^ (subscript_expression "S1[uVar3 >> 0x18]" identifier [ (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ])) )) - (subscript_expression "S3[uVar3 >> 8 & 0xff]" identifier [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) + (subscript_expression "S4[uVar3 & 0xff]" identifier [ (binary_expression "uVar3 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar3 = (skey->des).ek[10] ^ uVar4;" (assignment_expression "uVar3 = (skey->des).ek[10] ^ uVar4" identifier = (binary_expression "(skey->des).ek[10] ^ uVar4" (subscript_expression "(skey->des).ek[10]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x1a] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x1a] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x1a] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x1a]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2;" (assignment_expression "uVar2 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2" identifier = (binary_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff] ^ uVar2" (binary_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            S4[uVar3 & 0xff]" (binary_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff]" (parenthesized_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff])" ( (binary_expression "S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]" (subscript_expression "S1[uVar3 >> 0x18]" identifier [ (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S3[uVar3 >> 8 & 0xff]" identifier [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S2[uVar3 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ])) ^ (subscript_expression "S4[uVar3 & 0xff]" identifier [ (binary_expression "uVar3 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar3 = (skey->des).ek[0xb] - uVar2;" (assignment_expression "uVar3 = (skey->des).ek[0xb] - uVar2" identifier = (binary_expression "(skey->des).ek[0xb] - uVar2" (subscript_expression "(skey->des).ek[0xb]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) - identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x1b] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x1b] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x1b] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x1b]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4;" (assignment_expression "uVar4 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4" identifier = (binary_expression "(S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar4" (binary_expression "(S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff]" (parenthesized_expression "(S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff])" ( (binary_expression "S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]" (binary_expression "S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff]" (subscript_expression "S1[uVar3 >> 0x18]" identifier [ (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S2[uVar3 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ])) ^ (subscript_expression "S3[uVar3 >> 8 & 0xff]" identifier [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S4[uVar3 & 0xff]" identifier [ (binary_expression "uVar3 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (if_statement "if (10 < (skey->des).dk[0]) {\n      uVar3 = (skey->des).ek[0xc] + uVar4;\n      bVar1 = (byte)(skey->des).ek[0x1c] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xd] ^ uVar2;\n      bVar1 = (byte)(skey->des).ek[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              uVar4 ^ S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xe] - uVar4;\n      bVar1 = (byte)(skey->des).ek[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xf] + uVar2;\n      bVar1 = (byte)(skey->des).ek[0x1f] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar4;\n    }" if (parenthesized_expression "(10 < (skey->des).dk[0])" ( (binary_expression "10 < (skey->des).dk[0]" number_literal < (subscript_expression "(skey->des).dk[0]" (field_expression "(skey->des).dk" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (compound_statement "{\n      uVar3 = (skey->des).ek[0xc] + uVar4;\n      bVar1 = (byte)(skey->des).ek[0x1c] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xd] ^ uVar2;\n      bVar1 = (byte)(skey->des).ek[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              uVar4 ^ S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xe] - uVar4;\n      bVar1 = (byte)(skey->des).ek[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xf] + uVar2;\n      bVar1 = (byte)(skey->des).ek[0x1f] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar4;\n    }" { (expression_statement "uVar3 = (skey->des).ek[0xc] + uVar4;" (assignment_expression "uVar3 = (skey->des).ek[0xc] + uVar4" identifier = (binary_expression "(skey->des).ek[0xc] + uVar4" (subscript_expression "(skey->des).ek[0xc]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) + identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x1c] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x1c] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x1c] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x1c]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = uVar2 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];" (assignment_expression "uVar2 = uVar2 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff]" identifier = (binary_expression "uVar2 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff]" identifier ^ (binary_expression "((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff]" (parenthesized_expression "((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff])" ( (binary_expression "(S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]" (parenthesized_expression "(S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18])" ( (binary_expression "S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]" (subscript_expression "S2[uVar3 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ]) ^ (subscript_expression "S1[uVar3 >> 0x18]" identifier [ (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ])) )) - (subscript_expression "S3[uVar3 >> 8 & 0xff]" identifier [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) + (subscript_expression "S4[uVar3 & 0xff]" identifier [ (binary_expression "uVar3 & 0xff" identifier & number_literal) ])))) ;) (expression_statement "uVar3 = (skey->des).ek[0xd] ^ uVar2;" (assignment_expression "uVar3 = (skey->des).ek[0xd] ^ uVar2" identifier = (binary_expression "(skey->des).ek[0xd] ^ uVar2" (subscript_expression "(skey->des).ek[0xd]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x1d] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x1d] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x1d] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x1d]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              uVar4 ^ S4[uVar3 & 0xff];" (assignment_expression "uVar4 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              uVar4 ^ S4[uVar3 & 0xff]" identifier = (binary_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              uVar4 ^ S4[uVar3 & 0xff]" (binary_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              uVar4" (binary_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff]" (parenthesized_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff])" ( (binary_expression "S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]" (subscript_expression "S1[uVar3 >> 0x18]" identifier [ (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S3[uVar3 >> 8 & 0xff]" identifier [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S2[uVar3 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ])) ^ identifier) ^ (subscript_expression "S4[uVar3 & 0xff]" identifier [ (binary_expression "uVar3 & 0xff" identifier & number_literal) ]))) ;) (expression_statement "uVar3 = (skey->des).ek[0xe] - uVar4;" (assignment_expression "uVar3 = (skey->des).ek[0xe] - uVar4" identifier = (binary_expression "(skey->des).ek[0xe] - uVar4" (subscript_expression "(skey->des).ek[0xe]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) - identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x1e] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x1e] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x1e] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x1e]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = uVar2 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];" (assignment_expression "uVar2 = uVar2 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff]" identifier = (binary_expression "uVar2 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff]" identifier ^ (binary_expression "(S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff]" (parenthesized_expression "(S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff])" ( (binary_expression "S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]" (binary_expression "S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff]" (subscript_expression "S1[uVar3 >> 0x18]" identifier [ (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S2[uVar3 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ])) ^ (subscript_expression "S3[uVar3 >> 8 & 0xff]" identifier [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S4[uVar3 & 0xff]" identifier [ (binary_expression "uVar3 & 0xff" identifier & number_literal) ])))) ;) (expression_statement "uVar3 = (skey->des).ek[0xf] + uVar2;" (assignment_expression "uVar3 = (skey->des).ek[0xf] + uVar2" identifier = (binary_expression "(skey->des).ek[0xf] + uVar2" (subscript_expression "(skey->des).ek[0xf]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) + identifier)) ;) (expression_statement "bVar1 = (byte)(skey->des).ek[0x1f] & 0x1f;" (assignment_expression "bVar1 = (byte)(skey->des).ek[0x1f] & 0x1f" identifier = (binary_expression "(byte)(skey->des).ek[0x1f] & 0x1f" (subscript_expression "(byte)(skey->des).ek[0x1f]" (field_expression "(byte)(skey->des).ek" (call_expression "(byte)(skey->des)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar4;" (assignment_expression "uVar4 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar4" identifier = (binary_expression "((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar4" (binary_expression "((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff]" (parenthesized_expression "((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff])" ( (binary_expression "(S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]" (parenthesized_expression "(S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18])" ( (binary_expression "S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]" (subscript_expression "S2[uVar3 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ]) ^ (subscript_expression "S1[uVar3 >> 0x18]" identifier [ (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ])) )) - (subscript_expression "S3[uVar3 >> 8 & 0xff]" identifier [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) + (subscript_expression "S4[uVar3 & 0xff]" identifier [ (binary_expression "uVar3 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) })) (expression_statement "*(uint *)(ct + 4) =\n         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "*(uint *)(ct + 4) =\n         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (pointer_expression "*(uint *)(ct + 4)" * (cast_expression "(uint *)(ct + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ct + 4)" ( (binary_expression "ct + 4" identifier + number_literal) )))) = (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal))) ;) (expression_statement "*(uint *)ct = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;" (assignment_expression "*(uint *)ct = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (pointer_expression "*(uint *)ct" * (cast_expression "(uint *)ct" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" identifier << number_literal))) ;) (return_statement "return 0;" return number_literal ;) })) comment (expression_statement "crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);" (call_expression "crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221)" identifier (argument_list "("ct != NULL","src/ciphers/cast5.c",0x221)" ( (string_literal ""ct != NULL"" " string_content ") , (string_literal ""src/ciphers/cast5.c"" " string_content ") , number_literal ))) ;) })))
(translation_unit "undefined8 cast5_ecb_encrypt(uint *param_1,uint *param_2,int *param_3)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == (uint *)0x0) {\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = param_1[1];\n    uVar3 = *param_1;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = *param_3 + uVar4;\n    bVar1 = (byte)param_3[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);\n    uVar3 = param_3[1] ^ uVar2;\n    bVar1 = (byte)param_3[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);\n    uVar3 = param_3[2] - uVar4;\n    bVar1 = (byte)param_3[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[3] + uVar2;\n    bVar1 = (byte)param_3[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[4] ^ uVar4;\n    bVar1 = (byte)param_3[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[5] - uVar2;\n    bVar1 = (byte)param_3[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[6] + uVar4;\n    bVar1 = (byte)param_3[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[7] ^ uVar2;\n    bVar1 = (byte)param_3[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[8] - uVar4;\n    bVar1 = (byte)param_3[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[9] + uVar2;\n    bVar1 = (byte)param_3[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[10] ^ uVar4;\n    bVar1 = (byte)param_3[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    bVar1 = (byte)param_3[0x1b] & 0x1f;\n    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    \n  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);\n}\n\n" (function_definition "undefined8 cast5_ecb_encrypt(uint *param_1,uint *param_2,int *param_3)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == (uint *)0x0) {\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = param_1[1];\n    uVar3 = *param_1;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = *param_3 + uVar4;\n    bVar1 = (byte)param_3[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);\n    uVar3 = param_3[1] ^ uVar2;\n    bVar1 = (byte)param_3[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);\n    uVar3 = param_3[2] - uVar4;\n    bVar1 = (byte)param_3[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[3] + uVar2;\n    bVar1 = (byte)param_3[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[4] ^ uVar4;\n    bVar1 = (byte)param_3[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[5] - uVar2;\n    bVar1 = (byte)param_3[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[6] + uVar4;\n    bVar1 = (byte)param_3[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[7] ^ uVar2;\n    bVar1 = (byte)param_3[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[8] - uVar4;\n    bVar1 = (byte)param_3[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[9] + uVar2;\n    bVar1 = (byte)param_3[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[10] ^ uVar4;\n    bVar1 = (byte)param_3[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    bVar1 = (byte)param_3[0x1b] & 0x1f;\n    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    \n  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);\n}" type_identifier (function_declarator "cast5_ecb_encrypt(uint *param_1,uint *param_2,int *param_3)" identifier (parameter_list "(uint *param_1,uint *param_2,int *param_3)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == (uint *)0x0) {\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = param_1[1];\n    uVar3 = *param_1;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = *param_3 + uVar4;\n    bVar1 = (byte)param_3[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);\n    uVar3 = param_3[1] ^ uVar2;\n    bVar1 = (byte)param_3[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);\n    uVar3 = param_3[2] - uVar4;\n    bVar1 = (byte)param_3[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[3] + uVar2;\n    bVar1 = (byte)param_3[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[4] ^ uVar4;\n    bVar1 = (byte)param_3[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[5] - uVar2;\n    bVar1 = (byte)param_3[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[6] + uVar4;\n    bVar1 = (byte)param_3[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[7] ^ uVar2;\n    bVar1 = (byte)param_3[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[8] - uVar4;\n    bVar1 = (byte)param_3[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[9] + uVar2;\n    bVar1 = (byte)param_3[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[10] ^ uVar4;\n    bVar1 = (byte)param_3[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    bVar1 = (byte)param_3[0x1b] & 0x1f;\n    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    \n  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (if_statement "if (param_1 == (uint *)0x0) {\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }" if (parenthesized_expression "(param_1 == (uint *)0x0)" ( (binary_expression "param_1 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }" { (expression_statement "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);" (call_expression "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220)" identifier (argument_list "("pt != NULL","src/ciphers/cast5.c",0x220)" ( (string_literal ""pt != NULL"" " string_content ") , (string_literal ""src/ciphers/cast5.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = param_1[1];\n    uVar3 = *param_1;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = *param_3 + uVar4;\n    bVar1 = (byte)param_3[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);\n    uVar3 = param_3[1] ^ uVar2;\n    bVar1 = (byte)param_3[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);\n    uVar3 = param_3[2] - uVar4;\n    bVar1 = (byte)param_3[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[3] + uVar2;\n    bVar1 = (byte)param_3[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[4] ^ uVar4;\n    bVar1 = (byte)param_3[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[5] - uVar2;\n    bVar1 = (byte)param_3[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[6] + uVar4;\n    bVar1 = (byte)param_3[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[7] ^ uVar2;\n    bVar1 = (byte)param_3[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[8] - uVar4;\n    bVar1 = (byte)param_3[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[9] + uVar2;\n    bVar1 = (byte)param_3[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[10] ^ uVar4;\n    bVar1 = (byte)param_3[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    bVar1 = (byte)param_3[0x1b] & 0x1f;\n    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }" if (parenthesized_expression "(param_2 != (uint *)0x0)" ( (binary_expression "param_2 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = param_1[1];\n    uVar3 = *param_1;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = *param_3 + uVar4;\n    bVar1 = (byte)param_3[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);\n    uVar3 = param_3[1] ^ uVar2;\n    bVar1 = (byte)param_3[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);\n    uVar3 = param_3[2] - uVar4;\n    bVar1 = (byte)param_3[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[3] + uVar2;\n    bVar1 = (byte)param_3[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[4] ^ uVar4;\n    bVar1 = (byte)param_3[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[5] - uVar2;\n    bVar1 = (byte)param_3[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[6] + uVar4;\n    bVar1 = (byte)param_3[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[7] ^ uVar2;\n    bVar1 = (byte)param_3[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[8] - uVar4;\n    bVar1 = (byte)param_3[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[9] + uVar2;\n    bVar1 = (byte)param_3[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[10] ^ uVar4;\n    bVar1 = (byte)param_3[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    bVar1 = (byte)param_3[0x1b] & 0x1f;\n    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }" { (if_statement "if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }" { (expression_statement "crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222)" identifier (argument_list "("skey != NULL","src/ciphers/cast5.c",0x222)" ( (string_literal ""skey != NULL"" " string_content ") , (string_literal ""src/ciphers/cast5.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = *param_1;" (assignment_expression "uVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" identifier = (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar2 = *param_3 + uVar4;" (assignment_expression "uVar2 = *param_3 + uVar4" identifier = (binary_expression "*param_3 + uVar4" (pointer_expression "*param_3" * identifier) + identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x10] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x10] & 0x1f" identifier = (binary_expression "(byte)param_3[0x10] & 0x1f" (cast_expression "(byte)param_3[0x10]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x10]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;" (assignment_expression "uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1" identifier = (binary_expression "uVar2 << bVar1 | uVar2 >> 0x20 - bVar1" (binary_expression "uVar2 << bVar1" identifier << identifier) | (binary_expression "uVar2 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);" (assignment_expression "uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" identifier = (binary_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18)" ( (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) )) ^ (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar2 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar2 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar2 >> 0x10 & 0xff)" ( (binary_expression "uVar2 >> 0x10 & 0xff" (binary_expression "uVar2 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar2 >> 0x18) * 4" (call_expression "(ulong)(uVar2 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar2 >> 0x18)" ( (binary_expression "uVar2 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar2 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar2 & 0xff) * 4" (call_expression "(ulong)(uVar2 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar2 & 0xff)" ( (binary_expression "uVar2 & 0xff" identifier & number_literal) ))) * number_literal)) ))))))) ;) (expression_statement "uVar3 = param_3[1] ^ uVar2;" (assignment_expression "uVar3 = param_3[1] ^ uVar2" identifier = (binary_expression "param_3[1] ^ uVar2" (subscript_expression "param_3[1]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x11] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x11] & 0x1f" identifier = (binary_expression "(byte)param_3[0x11] & 0x1f" (cast_expression "(byte)param_3[0x11]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x11]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);" (assignment_expression "uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" identifier = (binary_expression "uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (binary_expression "uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" identifier ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))))) ;) (expression_statement "uVar3 = param_3[2] - uVar4;" (assignment_expression "uVar3 = param_3[2] - uVar4" identifier = (binary_expression "param_3[2] - uVar4" (subscript_expression "param_3[2]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x12] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x12] & 0x1f" identifier = (binary_expression "(byte)param_3[0x12] & 0x1f" (cast_expression "(byte)param_3[0x12]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x12]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;" (assignment_expression "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[3] + uVar2;" (assignment_expression "uVar3 = param_3[3] + uVar2" identifier = (binary_expression "param_3[3] + uVar2" (subscript_expression "param_3[3]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x13] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x13] & 0x1f" identifier = (binary_expression "(byte)param_3[0x13] & 0x1f" (cast_expression "(byte)param_3[0x13]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x13]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[4] ^ uVar4;" (assignment_expression "uVar3 = param_3[4] ^ uVar4" identifier = (binary_expression "param_3[4] ^ uVar4" (subscript_expression "param_3[4]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x14] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x14] & 0x1f" identifier = (binary_expression "(byte)param_3[0x14] & 0x1f" (cast_expression "(byte)param_3[0x14]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x14]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;" (assignment_expression "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[5] - uVar2;" (assignment_expression "uVar3 = param_3[5] - uVar2" identifier = (binary_expression "param_3[5] - uVar2" (subscript_expression "param_3[5]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x15] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x15] & 0x1f" identifier = (binary_expression "(byte)param_3[0x15] & 0x1f" (cast_expression "(byte)param_3[0x15]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x15]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[6] + uVar4;" (assignment_expression "uVar3 = param_3[6] + uVar4" identifier = (binary_expression "param_3[6] + uVar4" (subscript_expression "param_3[6]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x16] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x16] & 0x1f" identifier = (binary_expression "(byte)param_3[0x16] & 0x1f" (cast_expression "(byte)param_3[0x16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x16]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;" (assignment_expression "uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[7] ^ uVar2;" (assignment_expression "uVar3 = param_3[7] ^ uVar2" identifier = (binary_expression "param_3[7] ^ uVar2" (subscript_expression "param_3[7]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x17] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x17] & 0x1f" identifier = (binary_expression "(byte)param_3[0x17] & 0x1f" (cast_expression "(byte)param_3[0x17]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x17]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[8] - uVar4;" (assignment_expression "uVar3 = param_3[8] - uVar4" identifier = (binary_expression "param_3[8] - uVar4" (subscript_expression "param_3[8]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x18] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x18] & 0x1f" identifier = (binary_expression "(byte)param_3[0x18] & 0x1f" (cast_expression "(byte)param_3[0x18]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x18]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;" (assignment_expression "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[9] + uVar2;" (assignment_expression "uVar3 = param_3[9] + uVar2" identifier = (binary_expression "param_3[9] + uVar2" (subscript_expression "param_3[9]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x19] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x19] & 0x1f" identifier = (binary_expression "(byte)param_3[0x19] & 0x1f" (cast_expression "(byte)param_3[0x19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x19]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar3 = param_3[10] ^ uVar4;" (assignment_expression "uVar3 = param_3[10] ^ uVar4" identifier = (binary_expression "param_3[10] ^ uVar4" (subscript_expression "param_3[10]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x1a] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1a] & 0x1f" identifier = (binary_expression "(byte)param_3[0x1a] & 0x1f" (cast_expression "(byte)param_3[0x1a]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x1a]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;" (assignment_expression "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x1b] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1b] & 0x1f" identifier = (binary_expression "(byte)param_3[0x1b] & 0x1f" (cast_expression "(byte)param_3[0x1b]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x1b]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;" (assignment_expression "uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1" identifier = (binary_expression "param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1" (binary_expression "param_3[0xb] - uVar2 << bVar1" (binary_expression "param_3[0xb] - uVar2" (subscript_expression "param_3[0xb]" identifier [ number_literal ]) - identifier) << identifier) | (binary_expression "param_3[0xb] - uVar2 >> 0x20 - bVar1" (binary_expression "param_3[0xb] - uVar2" (subscript_expression "param_3[0xb]" identifier [ number_literal ]) - identifier) >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (if_statement "if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }" if (parenthesized_expression "(10 < (uint)param_3[0x20])" ( (binary_expression "10 < (uint)param_3[0x20]" number_literal < (cast_expression "(uint)param_3[0x20]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[0x20]" identifier [ number_literal ]))) )) (compound_statement "{\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }" { (expression_statement "bVar1 = (byte)param_3[0x1c] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1c] & 0x1f" identifier = (binary_expression "(byte)param_3[0x1c] & 0x1f" (cast_expression "(byte)param_3[0x1c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x1c]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;" (assignment_expression "uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1" identifier = (binary_expression "param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1" (binary_expression "param_3[0xc] + uVar4 << bVar1" (binary_expression "param_3[0xc] + uVar4" (subscript_expression "param_3[0xc]" identifier [ number_literal ]) + identifier) << identifier) | (binary_expression "param_3[0xc] + uVar4 >> 0x20 - bVar1" (binary_expression "param_3[0xc] + uVar4" (subscript_expression "param_3[0xc]" identifier [ number_literal ]) + identifier) >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);" (assignment_expression "uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" identifier = (binary_expression "uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" identifier ^ (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))))) ;) (expression_statement "uVar3 = param_3[0xd] ^ uVar2;" (assignment_expression "uVar3 = param_3[0xd] ^ uVar2" identifier = (binary_expression "param_3[0xd] ^ uVar2" (subscript_expression "param_3[0xd]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x1d] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1d] & 0x1f" identifier = (binary_expression "(byte)param_3[0x1d] & 0x1f" (cast_expression "(byte)param_3[0x1d]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x1d]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ identifier) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) )))))) ;) (expression_statement "uVar3 = param_3[0xe] - uVar4;" (assignment_expression "uVar3 = param_3[0xe] - uVar4" identifier = (binary_expression "param_3[0xe] - uVar4" (subscript_expression "param_3[0xe]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar1 = (byte)param_3[0x1e] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1e] & 0x1f" identifier = (binary_expression "(byte)param_3[0x1e] & 0x1f" (cast_expression "(byte)param_3[0x1e]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x1e]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" identifier = (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar1" identifier >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);" (assignment_expression "uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" identifier = (binary_expression "uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" identifier ^ (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))))) ;) (expression_statement "bVar1 = (byte)param_3[0x1f] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1f] & 0x1f" identifier = (binary_expression "(byte)param_3[0x1f] & 0x1f" (cast_expression "(byte)param_3[0x1f]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[0x1f]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;" (assignment_expression "uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1" identifier = (binary_expression "param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1" (binary_expression "param_3[0xf] + uVar2 << bVar1" (binary_expression "param_3[0xf] + uVar2" (subscript_expression "param_3[0xf]" identifier [ number_literal ]) + identifier) << identifier) | (binary_expression "param_3[0xf] + uVar2 >> 0x20 - bVar1" (binary_expression "param_3[0xf] + uVar2" (subscript_expression "param_3[0xf]" identifier [ number_literal ]) + identifier) >> (binary_expression "0x20 - bVar1" number_literal - identifier)))) ;) (expression_statement "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) })) (expression_statement "param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal))) ;) (expression_statement "*param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;" (assignment_expression "*param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" identifier << number_literal))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);" (call_expression "crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221)" identifier (argument_list "("ct != NULL","src/ciphers/cast5.c",0x221)" ( (string_literal ""ct != NULL"" " string_content ") , (string_literal ""src/ciphers/cast5.c"" " string_content ") , number_literal ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << IDENT) | (binary_expression IDENT >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )) ^ (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) ))))) )) - (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << IDENT) | (binary_expression IDENT >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))) ^ (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) )))) + (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << IDENT) | (binary_expression IDENT >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ^ (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << IDENT) | (binary_expression IDENT >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) ))))) )) - (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << IDENT) | (binary_expression IDENT >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) )))) + (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << IDENT) | (binary_expression IDENT >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ^ (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << IDENT) | (binary_expression IDENT >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) ))))) )) - (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << IDENT) | (binary_expression IDENT >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) )))) + (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << IDENT) | (binary_expression IDENT >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ^ (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << IDENT) | (binary_expression IDENT >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) ))))) )) - (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << IDENT) | (binary_expression IDENT >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) )))) + (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) << IDENT) | (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ^ (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))) ^ IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) << IDENT) | (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) ))))) )) - (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << IDENT) | (binary_expression IDENT >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) )))) + (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ^ IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << IDENT) | (binary_expression IDENT >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ^ (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) << IDENT) | (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) >> (binary_expression LIT - IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) ))))) )) - (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ])) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))) ^ IDENT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })))
(function_definition "undefined8 cast5_ecb_encrypt(uint *param_1,uint *param_2,int *param_3)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == (uint *)0x0) {\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = param_1[1];\n    uVar3 = *param_1;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = *param_3 + uVar4;\n    bVar1 = (byte)param_3[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);\n    uVar3 = param_3[1] ^ uVar2;\n    bVar1 = (byte)param_3[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);\n    uVar3 = param_3[2] - uVar4;\n    bVar1 = (byte)param_3[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[3] + uVar2;\n    bVar1 = (byte)param_3[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[4] ^ uVar4;\n    bVar1 = (byte)param_3[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[5] - uVar2;\n    bVar1 = (byte)param_3[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[6] + uVar4;\n    bVar1 = (byte)param_3[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[7] ^ uVar2;\n    bVar1 = (byte)param_3[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[8] - uVar4;\n    bVar1 = (byte)param_3[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[9] + uVar2;\n    bVar1 = (byte)param_3[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[10] ^ uVar4;\n    bVar1 = (byte)param_3[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    bVar1 = (byte)param_3[0x1b] & 0x1f;\n    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    \n  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);\n}" (type_identifier "undefined8") (function_declarator "cast5_ecb_encrypt(uint *param_1,uint *param_2,int *param_3)" (identifier "cast5_ecb_encrypt") (parameter_list "(uint *param_1,uint *param_2,int *param_3)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == (uint *)0x0) {\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = param_1[1];\n    uVar3 = *param_1;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = *param_3 + uVar4;\n    bVar1 = (byte)param_3[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);\n    uVar3 = param_3[1] ^ uVar2;\n    bVar1 = (byte)param_3[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);\n    uVar3 = param_3[2] - uVar4;\n    bVar1 = (byte)param_3[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[3] + uVar2;\n    bVar1 = (byte)param_3[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[4] ^ uVar4;\n    bVar1 = (byte)param_3[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[5] - uVar2;\n    bVar1 = (byte)param_3[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[6] + uVar4;\n    bVar1 = (byte)param_3[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[7] ^ uVar2;\n    bVar1 = (byte)param_3[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[8] - uVar4;\n    bVar1 = (byte)param_3[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[9] + uVar2;\n    bVar1 = (byte)param_3[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[10] ^ uVar4;\n    bVar1 = (byte)param_3[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    bVar1 = (byte)param_3[0x1b] & 0x1f;\n    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    \n  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (if_statement "if (param_1 == (uint *)0x0) {\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }" (if "if") (parenthesized_expression "(param_1 == (uint *)0x0)" (( "(") (binary_expression "param_1 == (uint *)0x0" (identifier "param_1") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);\n  }" ({ "{") (expression_statement "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);" (call_expression "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220)" (identifier "crypt_argchk") (argument_list "("pt != NULL","src/ciphers/cast5.c",0x220)" (( "(") (string_literal ""pt != NULL"" (" """) (string_content "pt != NULL") (" """)) (, ",") (string_literal ""src/ciphers/cast5.c"" (" """) (string_content "src/ciphers/cast5.c") (" """)) (, ",") (number_literal "0x220") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = param_1[1];\n    uVar3 = *param_1;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = *param_3 + uVar4;\n    bVar1 = (byte)param_3[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);\n    uVar3 = param_3[1] ^ uVar2;\n    bVar1 = (byte)param_3[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);\n    uVar3 = param_3[2] - uVar4;\n    bVar1 = (byte)param_3[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[3] + uVar2;\n    bVar1 = (byte)param_3[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[4] ^ uVar4;\n    bVar1 = (byte)param_3[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[5] - uVar2;\n    bVar1 = (byte)param_3[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[6] + uVar4;\n    bVar1 = (byte)param_3[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[7] ^ uVar2;\n    bVar1 = (byte)param_3[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[8] - uVar4;\n    bVar1 = (byte)param_3[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[9] + uVar2;\n    bVar1 = (byte)param_3[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[10] ^ uVar4;\n    bVar1 = (byte)param_3[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    bVar1 = (byte)param_3[0x1b] & 0x1f;\n    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }" (if "if") (parenthesized_expression "(param_2 != (uint *)0x0)" (( "(") (binary_expression "param_2 != (uint *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }\n    uVar2 = param_1[1];\n    uVar3 = *param_1;\n    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar2 = *param_3 + uVar4;\n    bVar1 = (byte)param_3[0x10] & 0x1f;\n    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;\n    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);\n    uVar3 = param_3[1] ^ uVar2;\n    bVar1 = (byte)param_3[0x11] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);\n    uVar3 = param_3[2] - uVar4;\n    bVar1 = (byte)param_3[0x12] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[3] + uVar2;\n    bVar1 = (byte)param_3[0x13] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[4] ^ uVar4;\n    bVar1 = (byte)param_3[0x14] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[5] - uVar2;\n    bVar1 = (byte)param_3[0x15] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[6] + uVar4;\n    bVar1 = (byte)param_3[0x16] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[7] ^ uVar2;\n    bVar1 = (byte)param_3[0x17] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[8] - uVar4;\n    bVar1 = (byte)param_3[0x18] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    uVar3 = param_3[9] + uVar2;\n    bVar1 = (byte)param_3[0x19] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    uVar3 = param_3[10] ^ uVar4;\n    bVar1 = (byte)param_3[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;\n    bVar1 = (byte)param_3[0x1b] & 0x1f;\n    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }" ({ "{") (if_statement "if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }" (if "if") (parenthesized_expression "(param_3 == (int *)0x0)" (( "(") (binary_expression "param_3 == (int *)0x0" (identifier "param_3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);\n    }" ({ "{") (expression_statement "crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222)" (identifier "crypt_argchk") (argument_list "("skey != NULL","src/ciphers/cast5.c",0x222)" (( "(") (string_literal ""skey != NULL"" (" """) (string_content "skey != NULL") (" """)) (, ",") (string_literal ""src/ciphers/cast5.c"" (" """) (string_content "src/ciphers/cast5.c") (" """)) (, ",") (number_literal "0x222") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" (identifier "uVar2") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar3 = *param_1;" (assignment_expression "uVar3 = *param_1" (identifier "uVar3") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (identifier "uVar4") (= "=") (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" (identifier "uVar2") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" (( "(") (binary_expression "uVar2 & 0xff0000" (identifier "uVar2") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" (( "(") (binary_expression "uVar2 & 0xff00" (identifier "uVar2") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar2 << 0x18" (identifier "uVar2") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar2 = *param_3 + uVar4;" (assignment_expression "uVar2 = *param_3 + uVar4" (identifier "uVar2") (= "=") (binary_expression "*param_3 + uVar4" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (+ "+") (identifier "uVar4"))) (; ";")) (expression_statement "bVar1 = (byte)param_3[0x10] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x10] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x10] & 0x1f" (cast_expression "(byte)param_3[0x10]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;" (assignment_expression "uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1" (identifier "uVar2") (= "=") (binary_expression "uVar2 << bVar1 | uVar2 >> 0x20 - bVar1" (binary_expression "uVar2 << bVar1" (identifier "uVar2") (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "uVar2 >> 0x20 - bVar1" (identifier "uVar2") (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);" (assignment_expression "uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" (identifier "uVar2") (= "=") (binary_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^\n            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" (parenthesized_expression "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18)" (( "(") (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" (( "(") (binary_expression "uVar3 & 0xff0000" (identifier "uVar3") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" (( "(") (binary_expression "uVar3 & 0xff00" (identifier "uVar3") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar3 << 0x18" (identifier "uVar3") (<< "<<") (number_literal "0x18"))) () ")")) (^ "^") (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff])" (( "(") (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar2 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4))" (( "(") (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar2 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar2 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar2 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar2 >> 0x10 & 0xff" (binary_expression "uVar2 >> 0x10" (identifier "uVar2") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (^ "^") (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar2 >> 0x18) * 4" (call_expression "(ulong)(uVar2 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar2 >> 0x18)" (( "(") (binary_expression "uVar2 >> 0x18" (identifier "uVar2") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")) (- "-") (subscript_expression "(&DAT_00198a20)[uVar2 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar2 >> 8 & 0xff" (binary_expression "uVar2 >> 8" (identifier "uVar2") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (+ "+") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar2 & 0xff) * 4" (call_expression "(ulong)(uVar2 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar2 & 0xff)" (( "(") (binary_expression "uVar2 & 0xff" (identifier "uVar2") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))))) (; ";")) (expression_statement "uVar3 = param_3[1] ^ uVar2;" (assignment_expression "uVar3 = param_3[1] ^ uVar2" (identifier "uVar3") (= "=") (binary_expression "param_3[1] ^ uVar2" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "bVar1 = (byte)param_3[0x11] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x11] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x11] & 0x1f" (cast_expression "(byte)param_3[0x11]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x11]" (identifier "param_3") ([ "[") (number_literal "0x11") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (identifier "uVar3") (= "=") (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" (identifier "uVar3") (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "uVar3 >> 0x20 - bVar1" (identifier "uVar3") (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);" (assignment_expression "uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (identifier "uVar4") (= "=") (binary_expression "uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (binary_expression "uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (identifier "uVar4") (^ "^") (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x18)" (( "(") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))))) (; ";")) (expression_statement "uVar3 = param_3[2] - uVar4;" (assignment_expression "uVar3 = param_3[2] - uVar4" (identifier "uVar3") (= "=") (binary_expression "param_3[2] - uVar4" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (- "-") (identifier "uVar4"))) (; ";")) (expression_statement "bVar1 = (byte)param_3[0x12] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x12] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x12] & 0x1f" (cast_expression "(byte)param_3[0x12]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x12]" (identifier "param_3") ([ "[") (number_literal "0x12") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (identifier "uVar3") (= "=") (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" (identifier "uVar3") (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "uVar3 >> 0x20 - bVar1" (identifier "uVar3") (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;" (assignment_expression "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (identifier "uVar2") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x18)" (( "(") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar3 = param_3[3] + uVar2;" (assignment_expression "uVar3 = param_3[3] + uVar2" (identifier "uVar3") (= "=") (binary_expression "param_3[3] + uVar2" (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")) (+ "+") (identifier "uVar2"))) (; ";")) (expression_statement "bVar1 = (byte)param_3[0x13] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x13] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x13] & 0x1f" (cast_expression "(byte)param_3[0x13]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x13]" (identifier "param_3") ([ "[") (number_literal "0x13") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (identifier "uVar3") (= "=") (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" (identifier "uVar3") (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "uVar3 >> 0x20 - bVar1" (identifier "uVar3") (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (identifier "uVar4") (= "=") (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" (( "(") (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4))" (( "(") (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (^ "^") (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x18)" (( "(") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")) (- "-") (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (+ "+") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar3 = param_3[4] ^ uVar4;" (assignment_expression "uVar3 = param_3[4] ^ uVar4" (identifier "uVar3") (= "=") (binary_expression "param_3[4] ^ uVar4" (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]")) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "bVar1 = (byte)param_3[0x14] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x14] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x14] & 0x1f" (cast_expression "(byte)param_3[0x14]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (identifier "uVar3") (= "=") (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" (identifier "uVar3") (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "uVar3 >> 0x20 - bVar1" (identifier "uVar3") (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;" (assignment_expression "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (identifier "uVar2") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x18)" (( "(") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar3 = param_3[5] - uVar2;" (assignment_expression "uVar3 = param_3[5] - uVar2" (identifier "uVar3") (= "=") (binary_expression "param_3[5] - uVar2" (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")) (- "-") (identifier "uVar2"))) (; ";")) (expression_statement "bVar1 = (byte)param_3[0x15] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x15] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x15] & 0x1f" (cast_expression "(byte)param_3[0x15]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x15]" (identifier "param_3") ([ "[") (number_literal "0x15") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (identifier "uVar3") (= "=") (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" (identifier "uVar3") (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "uVar3 >> 0x20 - bVar1" (identifier "uVar3") (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (identifier "uVar4") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x18)" (( "(") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar3 = param_3[6] + uVar4;" (assignment_expression "uVar3 = param_3[6] + uVar4" (identifier "uVar3") (= "=") (binary_expression "param_3[6] + uVar4" (subscript_expression "param_3[6]" (identifier "param_3") ([ "[") (number_literal "6") (] "]")) (+ "+") (identifier "uVar4"))) (; ";")) (expression_statement "bVar1 = (byte)param_3[0x16] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x16] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x16] & 0x1f" (cast_expression "(byte)param_3[0x16]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x16]" (identifier "param_3") ([ "[") (number_literal "0x16") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (identifier "uVar3") (= "=") (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" (identifier "uVar3") (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "uVar3 >> 0x20 - bVar1" (identifier "uVar3") (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;" (assignment_expression "uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (identifier "uVar2") (= "=") (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" (( "(") (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4))" (( "(") (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (^ "^") (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x18)" (( "(") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")) (- "-") (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (+ "+") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar3 = param_3[7] ^ uVar2;" (assignment_expression "uVar3 = param_3[7] ^ uVar2" (identifier "uVar3") (= "=") (binary_expression "param_3[7] ^ uVar2" (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "bVar1 = (byte)param_3[0x17] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x17] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x17] & 0x1f" (cast_expression "(byte)param_3[0x17]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x17]" (identifier "param_3") ([ "[") (number_literal "0x17") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (identifier "uVar3") (= "=") (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" (identifier "uVar3") (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "uVar3 >> 0x20 - bVar1" (identifier "uVar3") (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (identifier "uVar4") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x18)" (( "(") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar3 = param_3[8] - uVar4;" (assignment_expression "uVar3 = param_3[8] - uVar4" (identifier "uVar3") (= "=") (binary_expression "param_3[8] - uVar4" (subscript_expression "param_3[8]" (identifier "param_3") ([ "[") (number_literal "8") (] "]")) (- "-") (identifier "uVar4"))) (; ";")) (expression_statement "bVar1 = (byte)param_3[0x18] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x18] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x18] & 0x1f" (cast_expression "(byte)param_3[0x18]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x18]" (identifier "param_3") ([ "[") (number_literal "0x18") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (identifier "uVar3") (= "=") (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" (identifier "uVar3") (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "uVar3 >> 0x20 - bVar1" (identifier "uVar3") (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;" (assignment_expression "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (identifier "uVar2") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x18)" (( "(") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar3 = param_3[9] + uVar2;" (assignment_expression "uVar3 = param_3[9] + uVar2" (identifier "uVar3") (= "=") (binary_expression "param_3[9] + uVar2" (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]")) (+ "+") (identifier "uVar2"))) (; ";")) (expression_statement "bVar1 = (byte)param_3[0x19] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x19] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x19] & 0x1f" (cast_expression "(byte)param_3[0x19]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x19]" (identifier "param_3") ([ "[") (number_literal "0x19") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (identifier "uVar3") (= "=") (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" (identifier "uVar3") (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "uVar3 >> 0x20 - bVar1" (identifier "uVar3") (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (identifier "uVar4") (= "=") (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" (( "(") (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4))" (( "(") (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (^ "^") (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x18)" (( "(") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")) (- "-") (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (+ "+") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar3 = param_3[10] ^ uVar4;" (assignment_expression "uVar3 = param_3[10] ^ uVar4" (identifier "uVar3") (= "=") (binary_expression "param_3[10] ^ uVar4" (subscript_expression "param_3[10]" (identifier "param_3") ([ "[") (number_literal "10") (] "]")) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "bVar1 = (byte)param_3[0x1a] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1a] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x1a] & 0x1f" (cast_expression "(byte)param_3[0x1a]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x1a]" (identifier "param_3") ([ "[") (number_literal "0x1a") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (identifier "uVar3") (= "=") (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" (identifier "uVar3") (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "uVar3 >> 0x20 - bVar1" (identifier "uVar3") (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;" (assignment_expression "uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (identifier "uVar2") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x18)" (( "(") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "bVar1 = (byte)param_3[0x1b] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1b] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x1b] & 0x1f" (cast_expression "(byte)param_3[0x1b]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x1b]" (identifier "param_3") ([ "[") (number_literal "0x1b") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;" (assignment_expression "uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1" (identifier "uVar3") (= "=") (binary_expression "param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1" (binary_expression "param_3[0xb] - uVar2 << bVar1" (binary_expression "param_3[0xb] - uVar2" (subscript_expression "param_3[0xb]" (identifier "param_3") ([ "[") (number_literal "0xb") (] "]")) (- "-") (identifier "uVar2")) (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "param_3[0xb] - uVar2 >> 0x20 - bVar1" (binary_expression "param_3[0xb] - uVar2" (subscript_expression "param_3[0xb]" (identifier "param_3") ([ "[") (number_literal "0xb") (] "]")) (- "-") (identifier "uVar2")) (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (identifier "uVar4") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x18)" (( "(") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar4"))) (; ";")) (if_statement "if (10 < (uint)param_3[0x20]) {\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }" (if "if") (parenthesized_expression "(10 < (uint)param_3[0x20])" (( "(") (binary_expression "10 < (uint)param_3[0x20]" (number_literal "10") (< "<") (cast_expression "(uint)param_3[0x20]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[0x20]" (identifier "param_3") ([ "[") (number_literal "0x20") (] "]")))) () ")")) (compound_statement "{\n      bVar1 = (byte)param_3[0x1c] & 0x1f;\n      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xd] ^ uVar2;\n      bVar1 = (byte)param_3[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      uVar3 = param_3[0xe] - uVar4;\n      bVar1 = (byte)param_3[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;\n      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);\n      bVar1 = (byte)param_3[0x1f] & 0x1f;\n      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;\n      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;\n    }" ({ "{") (expression_statement "bVar1 = (byte)param_3[0x1c] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1c] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x1c] & 0x1f" (cast_expression "(byte)param_3[0x1c]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x1c]" (identifier "param_3") ([ "[") (number_literal "0x1c") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;" (assignment_expression "uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1" (identifier "uVar3") (= "=") (binary_expression "param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1" (binary_expression "param_3[0xc] + uVar4 << bVar1" (binary_expression "param_3[0xc] + uVar4" (subscript_expression "param_3[0xc]" (identifier "param_3") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (identifier "uVar4")) (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "param_3[0xc] + uVar4 >> 0x20 - bVar1" (binary_expression "param_3[0xc] + uVar4" (subscript_expression "param_3[0xc]" (identifier "param_3") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (identifier "uVar4")) (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);" (assignment_expression "uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (identifier "uVar2") (= "=") (binary_expression "uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (identifier "uVar2") (^ "^") (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff])" (( "(") (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4))" (( "(") (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (^ "^") (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x18)" (( "(") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")) (- "-") (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (+ "+") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))))) (; ";")) (expression_statement "uVar3 = param_3[0xd] ^ uVar2;" (assignment_expression "uVar3 = param_3[0xd] ^ uVar2" (identifier "uVar3") (= "=") (binary_expression "param_3[0xd] ^ uVar2" (subscript_expression "param_3[0xd]" (identifier "param_3") ([ "[") (number_literal "0xd") (] "]")) (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "bVar1 = (byte)param_3[0x1d] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1d] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x1d] & 0x1f" (cast_expression "(byte)param_3[0x1d]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x1d]" (identifier "param_3") ([ "[") (number_literal "0x1d") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (identifier "uVar3") (= "=") (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" (identifier "uVar3") (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "uVar3 >> 0x20 - bVar1" (identifier "uVar3") (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (identifier "uVar4") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n              uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x18)" (( "(") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar4")) (^ "^") (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "uVar3 = param_3[0xe] - uVar4;" (assignment_expression "uVar3 = param_3[0xe] - uVar4" (identifier "uVar3") (= "=") (binary_expression "param_3[0xe] - uVar4" (subscript_expression "param_3[0xe]" (identifier "param_3") ([ "[") (number_literal "0xe") (] "]")) (- "-") (identifier "uVar4"))) (; ";")) (expression_statement "bVar1 = (byte)param_3[0x1e] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1e] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x1e] & 0x1f" (cast_expression "(byte)param_3[0x1e]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x1e]" (identifier "param_3") ([ "[") (number_literal "0x1e") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;" (assignment_expression "uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (identifier "uVar3") (= "=") (binary_expression "uVar3 << bVar1 | uVar3 >> 0x20 - bVar1" (binary_expression "uVar3 << bVar1" (identifier "uVar3") (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "uVar3 >> 0x20 - bVar1" (identifier "uVar3") (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);" (assignment_expression "uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (identifier "uVar2") (= "=") (binary_expression "uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (identifier "uVar2") (^ "^") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x18)" (( "(") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))))) (; ";")) (expression_statement "bVar1 = (byte)param_3[0x1f] & 0x1f;" (assignment_expression "bVar1 = (byte)param_3[0x1f] & 0x1f" (identifier "bVar1") (= "=") (binary_expression "(byte)param_3[0x1f] & 0x1f" (cast_expression "(byte)param_3[0x1f]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[0x1f]" (identifier "param_3") ([ "[") (number_literal "0x1f") (] "]"))) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;" (assignment_expression "uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1" (identifier "uVar3") (= "=") (binary_expression "param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1" (binary_expression "param_3[0xf] + uVar2 << bVar1" (binary_expression "param_3[0xf] + uVar2" (subscript_expression "param_3[0xf]" (identifier "param_3") ([ "[") (number_literal "0xf") (] "]")) (+ "+") (identifier "uVar2")) (<< "<<") (identifier "bVar1")) (| "|") (binary_expression "param_3[0xf] + uVar2 >> 0x20 - bVar1" (binary_expression "param_3[0xf] + uVar2" (subscript_expression "param_3[0xf]" (identifier "param_3") ([ "[") (number_literal "0xf") (] "]")) (+ "+") (identifier "uVar2")) (>> ">>") (binary_expression "0x20 - bVar1" (number_literal "0x20") (- "-") (identifier "bVar1"))))) (; ";")) (expression_statement "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (identifier "uVar4") (= "=") (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff])" (( "(") (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4))" (( "(") (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (^ "^") (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar3 >> 0x18) * 4" (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 >> 0x18)" (( "(") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")) (- "-") (subscript_expression "(&DAT_00198a20)[uVar3 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (+ "+") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar3 & 0xff) * 4" (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 & 0xff)" (( "(") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar4"))) (; ";")) (} "}"))) (expression_statement "param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" (identifier "uVar2") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" (( "(") (binary_expression "uVar2 & 0xff0000" (identifier "uVar2") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" (( "(") (binary_expression "uVar2 & 0xff00" (identifier "uVar2") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar2 << 0x18" (identifier "uVar2") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "*param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;" (assignment_expression "*param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" (( "(") (binary_expression "uVar4 & 0xff0000" (identifier "uVar4") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" (( "(") (binary_expression "uVar4 & 0xff00" (identifier "uVar4") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar4 << 0x18" (identifier "uVar4") (<< "<<") (number_literal "0x18")))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);" (call_expression "crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221)" (identifier "crypt_argchk") (argument_list "("ct != NULL","src/ciphers/cast5.c",0x221)" (( "(") (string_literal ""ct != NULL"" (" """) (string_content "ct != NULL") (" """)) (, ",") (string_literal ""src/ciphers/cast5.c"" (" """) (string_content "src/ciphers/cast5.c") (" """)) (, ",") (number_literal "0x221") () ")"))) (; ";")) (} "}")))

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

int function_1(type_1 *var_1,type_1 *var_3,type_2 *var_4)

{
  type_3 var_7;
  type_4 var_5;
  type_4 var_8;
  type_4 var_6;
  
  if (var_1 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("pt != NULL","src/ciphers/cast5.c",0x220);
  }
  if (var_3 != (type_1 *)0x0) {
    if (var_4 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
      var_2("skey != NULL","src/ciphers/cast5.c",0x222);
    }
    var_5 = *(type_4 *)(var_1 + 4);
    var_8 = *(type_4 *)var_1;
    var_6 = var_5 >> 0x18 | (var_5 & 0xff0000) >> 8 | (var_5 & 0xff00) << 8 | var_5 << 0x18;
    var_5 = (var_4->des).ek[0] + var_6;
    var_7 = (type_3)(var_4->des).ek[0x10] & 0x1f;
    var_5 = var_5 << var_7 | var_5 >> 0x20 - var_7;
    var_5 = (var_8 >> 0x18 | (var_8 & 0xff0000) >> 8 | (var_8 & 0xff00) << 8 | var_8 << 0x18) ^
            ((S2[var_5 >> 0x10 & 0xff] ^ S1[var_5 >> 0x18]) - S3[var_5 >> 8 & 0xff]) +
            S4[var_5 & 0xff];
    var_8 = (var_4->des).ek[1] ^ var_5;
    var_7 = (type_3)(var_4->des).ek[0x11] & 0x1f;
    var_8 = var_8 << var_7 | var_8 >> 0x20 - var_7;
    var_6 = var_6 ^ S4[var_8 & 0xff] ^
            (S1[var_8 >> 0x18] + S3[var_8 >> 8 & 0xff]) - S2[var_8 >> 0x10 & 0xff];
    var_8 = (var_4->des).ek[2] - var_6;
    var_7 = (type_3)(var_4->des).ek[0x12] & 0x1f;
    var_8 = var_8 << var_7 | var_8 >> 0x20 - var_7;
    var_5 = (S1[var_8 >> 0x18] + S2[var_8 >> 0x10 & 0xff] ^ S3[var_8 >> 8 & 0xff]) -
            S4[var_8 & 0xff] ^ var_5;
    var_8 = (var_4->des).ek[3] + var_5;
    var_7 = (type_3)(var_4->des).ek[0x13] & 0x1f;
    var_8 = var_8 << var_7 | var_8 >> 0x20 - var_7;
    var_6 = ((S2[var_8 >> 0x10 & 0xff] ^ S1[var_8 >> 0x18]) - S3[var_8 >> 8 & 0xff]) +
            S4[var_8 & 0xff] ^ var_6;
    var_8 = (var_4->des).ek[4] ^ var_6;
    var_7 = (type_3)(var_4->des).ek[0x14] & 0x1f;
    var_8 = var_8 << var_7 | var_8 >> 0x20 - var_7;
    var_5 = (S1[var_8 >> 0x18] + S3[var_8 >> 8 & 0xff]) - S2[var_8 >> 0x10 & 0xff] ^
            S4[var_8 & 0xff] ^ var_5;
    var_8 = (var_4->des).ek[5] - var_5;
    var_7 = (type_3)(var_4->des).ek[0x15] & 0x1f;
    var_8 = var_8 << var_7 | var_8 >> 0x20 - var_7;
    var_6 = (S1[var_8 >> 0x18] + S2[var_8 >> 0x10 & 0xff] ^ S3[var_8 >> 8 & 0xff]) -
            S4[var_8 & 0xff] ^ var_6;
    var_8 = (var_4->des).ek[6] + var_6;
    var_7 = (type_3)(var_4->des).ek[0x16] & 0x1f;
    var_8 = var_8 << var_7 | var_8 >> 0x20 - var_7;
    var_5 = ((S2[var_8 >> 0x10 & 0xff] ^ S1[var_8 >> 0x18]) - S3[var_8 >> 8 & 0xff]) +
            S4[var_8 & 0xff] ^ var_5;
    var_8 = (var_4->des).ek[7] ^ var_5;
    var_7 = (type_3)(var_4->des).ek[0x17] & 0x1f;
    var_8 = var_8 << var_7 | var_8 >> 0x20 - var_7;
    var_6 = (S1[var_8 >> 0x18] + S3[var_8 >> 8 & 0xff]) - S2[var_8 >> 0x10 & 0xff] ^
            S4[var_8 & 0xff] ^ var_6;
    var_8 = (var_4->des).ek[8] - var_6;
    var_7 = (type_3)(var_4->des).ek[0x18] & 0x1f;
    var_8 = var_8 << var_7 | var_8 >> 0x20 - var_7;
    var_5 = (S1[var_8 >> 0x18] + S2[var_8 >> 0x10 & 0xff] ^ S3[var_8 >> 8 & 0xff]) -
            S4[var_8 & 0xff] ^ var_5;
    var_8 = (var_4->des).ek[9] + var_5;
    var_7 = (type_3)(var_4->des).ek[0x19] & 0x1f;
    var_8 = var_8 << var_7 | var_8 >> 0x20 - var_7;
    var_6 = ((S2[var_8 >> 0x10 & 0xff] ^ S1[var_8 >> 0x18]) - S3[var_8 >> 8 & 0xff]) +
            S4[var_8 & 0xff] ^ var_6;
    var_8 = (var_4->des).ek[10] ^ var_6;
    var_7 = (type_3)(var_4->des).ek[0x1a] & 0x1f;
    var_8 = var_8 << var_7 | var_8 >> 0x20 - var_7;
    var_5 = (S1[var_8 >> 0x18] + S3[var_8 >> 8 & 0xff]) - S2[var_8 >> 0x10 & 0xff] ^
            S4[var_8 & 0xff] ^ var_5;
    var_8 = (var_4->des).ek[0xb] - var_5;
    var_7 = (type_3)(var_4->des).ek[0x1b] & 0x1f;
    var_8 = var_8 << var_7 | var_8 >> 0x20 - var_7;
    var_6 = (S1[var_8 >> 0x18] + S2[var_8 >> 0x10 & 0xff] ^ S3[var_8 >> 8 & 0xff]) -
            S4[var_8 & 0xff] ^ var_6;
    if (10 < (var_4->des).dk[0]) {
      var_8 = (var_4->des).ek[0xc] + var_6;
      var_7 = (type_3)(var_4->des).ek[0x1c] & 0x1f;
      var_8 = var_8 << var_7 | var_8 >> 0x20 - var_7;
      var_5 = var_5 ^ ((S2[var_8 >> 0x10 & 0xff] ^ S1[var_8 >> 0x18]) - S3[var_8 >> 8 & 0xff]) +
                      S4[var_8 & 0xff];
      var_8 = (var_4->des).ek[0xd] ^ var_5;
      var_7 = (type_3)(var_4->des).ek[0x1d] & 0x1f;
      var_8 = var_8 << var_7 | var_8 >> 0x20 - var_7;
      var_6 = (S1[var_8 >> 0x18] + S3[var_8 >> 8 & 0xff]) - S2[var_8 >> 0x10 & 0xff] ^
              var_6 ^ S4[var_8 & 0xff];
      var_8 = (var_4->des).ek[0xe] - var_6;
      var_7 = (type_3)(var_4->des).ek[0x1e] & 0x1f;
      var_8 = var_8 << var_7 | var_8 >> 0x20 - var_7;
      var_5 = var_5 ^ (S1[var_8 >> 0x18] + S2[var_8 >> 0x10 & 0xff] ^ S3[var_8 >> 8 & 0xff]) -
                      S4[var_8 & 0xff];
      var_8 = (var_4->des).ek[0xf] + var_5;
      var_7 = (type_3)(var_4->des).ek[0x1f] & 0x1f;
      var_8 = var_8 << var_7 | var_8 >> 0x20 - var_7;
      var_6 = ((S2[var_8 >> 0x10 & 0xff] ^ S1[var_8 >> 0x18]) - S3[var_8 >> 8 & 0xff]) +
              S4[var_8 & 0xff] ^ var_6;
    }
    *(type_4 *)(var_3 + 4) =
         var_5 >> 0x18 | (var_5 & 0xff0000) >> 8 | (var_5 & 0xff00) << 8 | var_5 << 0x18;
    *(type_4 *)var_3 = var_6 >> 0x18 | (var_6 & 0xff0000) >> 8 | (var_6 & 0xff00) << 8 | var_6 << 0x18;
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  var_2("ct != NULL","src/ciphers/cast5.c",0x221);
}


(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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) 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: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) 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: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal))))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal))))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal))))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) 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: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (identifier)) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal))))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) 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: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (identifier)) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) 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: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal))))))) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) 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: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal))))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (identifier)) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))))) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))) right: (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (return_statement (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal)))))))

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

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

{
  byte bVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  
  if (param_1 == (uint *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x220);
  }
  if (param_2 != (uint *)0x0) {
    if (param_3 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("skey != NULL","src/ciphers/cast5.c",0x222);
    }
    uVar2 = param_1[1];
    uVar3 = *param_1;
    uVar4 = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;
    uVar2 = *param_3 + uVar4;
    bVar1 = (byte)param_3[0x10] & 0x1f;
    uVar2 = uVar2 << bVar1 | uVar2 >> 0x20 - bVar1;
    uVar2 = (uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18) ^
            ((*(uint *)(&DAT_00198e20 + (ulong)(uVar2 >> 0x10 & 0xff) * 4) ^
             *(uint *)(&DAT_00199220 + (ulong)(uVar2 >> 0x18) * 4)) -
            (&DAT_00198a20)[uVar2 >> 8 & 0xff]) +
            *(int *)(&DAT_00198620 + (ulong)(uVar2 & 0xff) * 4);
    uVar3 = param_3[1] ^ uVar2;
    bVar1 = (byte)param_3[0x11] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^
            (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4);
    uVar3 = param_3[2] - uVar4;
    bVar1 = (byte)param_3[0x12] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;
    uVar3 = param_3[3] + uVar2;
    bVar1 = (byte)param_3[0x13] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +
            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;
    uVar3 = param_3[4] ^ uVar4;
    bVar1 = (byte)param_3[0x14] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;
    uVar3 = param_3[5] - uVar2;
    bVar1 = (byte)param_3[0x15] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;
    uVar3 = param_3[6] + uVar4;
    bVar1 = (byte)param_3[0x16] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar2 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +
            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;
    uVar3 = param_3[7] ^ uVar2;
    bVar1 = (byte)param_3[0x17] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;
    uVar3 = param_3[8] - uVar4;
    bVar1 = (byte)param_3[0x18] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;
    uVar3 = param_3[9] + uVar2;
    bVar1 = (byte)param_3[0x19] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
             *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +
            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;
    uVar3 = param_3[10] ^ uVar4;
    bVar1 = (byte)param_3[0x1a] & 0x1f;
    uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
    uVar2 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
            *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar2;
    bVar1 = (byte)param_3[0x1b] & 0x1f;
    uVar3 = param_3[0xb] - uVar2 << bVar1 | param_3[0xb] - uVar2 >> 0x20 - bVar1;
    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
             *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
            (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
            *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;
    if (10 < (uint)param_3[0x20]) {
      bVar1 = (byte)param_3[0x1c] & 0x1f;
      uVar3 = param_3[0xc] + uVar4 << bVar1 | param_3[0xc] + uVar4 >> 0x20 - bVar1;
      uVar2 = uVar2 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
                       *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -
                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +
                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);
      uVar3 = param_3[0xd] ^ uVar2;
      bVar1 = (byte)param_3[0x1d] & 0x1f;
      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
      uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
              *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
              uVar4 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);
      uVar3 = param_3[0xe] - uVar4;
      bVar1 = (byte)param_3[0x1e] & 0x1f;
      uVar3 = uVar3 << bVar1 | uVar3 >> 0x20 - bVar1;
      uVar2 = uVar2 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4) +
                       *(int *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
                      (&DAT_00198a20)[uVar3 >> 8 & 0xff]) -
                      *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4);
      bVar1 = (byte)param_3[0x1f] & 0x1f;
      uVar3 = param_3[0xf] + uVar2 << bVar1 | param_3[0xf] + uVar2 >> 0x20 - bVar1;
      uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar3 >> 0x10 & 0xff) * 4) ^
               *(uint *)(&DAT_00199220 + (ulong)(uVar3 >> 0x18) * 4)) -
              (&DAT_00198a20)[uVar3 >> 8 & 0xff]) +
              *(int *)(&DAT_00198620 + (ulong)(uVar3 & 0xff) * 4) ^ uVar4;
    }
    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;
    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x221);
}

