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

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

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



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

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

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


JMP qword ptr [0x001dd7f8]
(translation_unit "/* WARNING: Switch with 1 destination removed at 0x00114430 */\n\nundefined8 cast5_ecb_decrypt(uint *param_1,uint *param_2,int *param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  byte bVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  if (param_2 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\n  }\n  if (param_1 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);\n    }\n    uVar6 = *param_1;\n    uVar5 = param_1[1];\n    uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }\n    bVar3 = (byte)param_3[0x1b] & 0x1f;\n    uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n    uVar4 = param_3[10] ^ uVar6;\n    bVar3 = (byte)param_3[0x1a] & 0x1f;\n    uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    uVar5 = param_3[9] + uVar4;\n    bVar3 = (byte)param_3[0x19] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[8] - uVar6;\n    bVar3 = (byte)param_3[0x18] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[7] ^ uVar4;\n    bVar3 = (byte)param_3[0x17] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[6] + uVar6;\n    bVar3 = (byte)param_3[0x16] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[5] - uVar4;\n    bVar3 = (byte)param_3[0x15] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[4] ^ uVar6;\n    bVar3 = (byte)param_3[0x14] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[3] + uVar4;\n    bVar3 = (byte)param_3[0x13] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[2] - uVar6;\n    bVar3 = (byte)param_3[0x12] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[1] ^ uVar4;\n    bVar3 = (byte)param_3[0x11] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    iVar1 = *param_3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    iVar2 = param_3[0x10];\n    param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    bVar3 = (byte)iVar2 & 0x1f;\n    uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;\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",0x256);\n}\n\n" comment (function_definition "undefined8 cast5_ecb_decrypt(uint *param_1,uint *param_2,int *param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  byte bVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  if (param_2 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\n  }\n  if (param_1 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);\n    }\n    uVar6 = *param_1;\n    uVar5 = param_1[1];\n    uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }\n    bVar3 = (byte)param_3[0x1b] & 0x1f;\n    uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n    uVar4 = param_3[10] ^ uVar6;\n    bVar3 = (byte)param_3[0x1a] & 0x1f;\n    uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    uVar5 = param_3[9] + uVar4;\n    bVar3 = (byte)param_3[0x19] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[8] - uVar6;\n    bVar3 = (byte)param_3[0x18] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[7] ^ uVar4;\n    bVar3 = (byte)param_3[0x17] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[6] + uVar6;\n    bVar3 = (byte)param_3[0x16] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[5] - uVar4;\n    bVar3 = (byte)param_3[0x15] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[4] ^ uVar6;\n    bVar3 = (byte)param_3[0x14] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[3] + uVar4;\n    bVar3 = (byte)param_3[0x13] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[2] - uVar6;\n    bVar3 = (byte)param_3[0x12] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[1] ^ uVar4;\n    bVar3 = (byte)param_3[0x11] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    iVar1 = *param_3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    iVar2 = param_3[0x10];\n    param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    bVar3 = (byte)iVar2 & 0x1f;\n    uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;\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",0x256);\n}" type_identifier (function_declarator "cast5_ecb_decrypt(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  int iVar1;\n  int iVar2;\n  byte bVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  if (param_2 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\n  }\n  if (param_1 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);\n    }\n    uVar6 = *param_1;\n    uVar5 = param_1[1];\n    uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }\n    bVar3 = (byte)param_3[0x1b] & 0x1f;\n    uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n    uVar4 = param_3[10] ^ uVar6;\n    bVar3 = (byte)param_3[0x1a] & 0x1f;\n    uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    uVar5 = param_3[9] + uVar4;\n    bVar3 = (byte)param_3[0x19] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[8] - uVar6;\n    bVar3 = (byte)param_3[0x18] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[7] ^ uVar4;\n    bVar3 = (byte)param_3[0x17] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[6] + uVar6;\n    bVar3 = (byte)param_3[0x16] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[5] - uVar4;\n    bVar3 = (byte)param_3[0x15] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[4] ^ uVar6;\n    bVar3 = (byte)param_3[0x14] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[3] + uVar4;\n    bVar3 = (byte)param_3[0x13] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[2] - uVar6;\n    bVar3 = (byte)param_3[0x12] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[1] ^ uVar4;\n    bVar3 = (byte)param_3[0x11] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    iVar1 = *param_3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    iVar2 = param_3[0x10];\n    param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    bVar3 = (byte)iVar2 & 0x1f;\n    uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;\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",0x256);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (if_statement "if (param_2 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\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                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\n  }" { comment (expression_statement "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);" (call_expression "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255)" identifier (argument_list "("pt != NULL","src/ciphers/cast5.c",0x255)" ( (string_literal ""pt != NULL"" " string_content ") , (string_literal ""src/ciphers/cast5.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_1 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);\n    }\n    uVar6 = *param_1;\n    uVar5 = param_1[1];\n    uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }\n    bVar3 = (byte)param_3[0x1b] & 0x1f;\n    uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n    uVar4 = param_3[10] ^ uVar6;\n    bVar3 = (byte)param_3[0x1a] & 0x1f;\n    uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    uVar5 = param_3[9] + uVar4;\n    bVar3 = (byte)param_3[0x19] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[8] - uVar6;\n    bVar3 = (byte)param_3[0x18] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[7] ^ uVar4;\n    bVar3 = (byte)param_3[0x17] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[6] + uVar6;\n    bVar3 = (byte)param_3[0x16] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[5] - uVar4;\n    bVar3 = (byte)param_3[0x15] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[4] ^ uVar6;\n    bVar3 = (byte)param_3[0x14] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[3] + uVar4;\n    bVar3 = (byte)param_3[0x13] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[2] - uVar6;\n    bVar3 = (byte)param_3[0x12] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[1] ^ uVar4;\n    bVar3 = (byte)param_3[0x11] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    iVar1 = *param_3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    iVar2 = param_3[0x10];\n    param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    bVar3 = (byte)iVar2 & 0x1f;\n    uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\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    if (param_3 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);\n    }\n    uVar6 = *param_1;\n    uVar5 = param_1[1];\n    uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }\n    bVar3 = (byte)param_3[0x1b] & 0x1f;\n    uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n    uVar4 = param_3[10] ^ uVar6;\n    bVar3 = (byte)param_3[0x1a] & 0x1f;\n    uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    uVar5 = param_3[9] + uVar4;\n    bVar3 = (byte)param_3[0x19] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[8] - uVar6;\n    bVar3 = (byte)param_3[0x18] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[7] ^ uVar4;\n    bVar3 = (byte)param_3[0x17] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[6] + uVar6;\n    bVar3 = (byte)param_3[0x16] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[5] - uVar4;\n    bVar3 = (byte)param_3[0x15] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[4] ^ uVar6;\n    bVar3 = (byte)param_3[0x14] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[3] + uVar4;\n    bVar3 = (byte)param_3[0x13] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[2] - uVar6;\n    bVar3 = (byte)param_3[0x12] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[1] ^ uVar4;\n    bVar3 = (byte)param_3[0x11] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    iVar1 = *param_3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    iVar2 = param_3[0x10];\n    param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    bVar3 = (byte)iVar2 & 0x1f;\n    uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;\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",599);\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",599);\n    }" { comment (expression_statement "crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/cast5.c",599)" identifier (argument_list "("skey != NULL","src/ciphers/cast5.c",599)" ( (string_literal ""skey != NULL"" " string_content ") , (string_literal ""src/ciphers/cast5.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar5 = param_1[1];" (assignment_expression "uVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" identifier = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" identifier = (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal))) ;) (if_statement "if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\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      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }" { (expression_statement "bVar3 = (byte)param_3[0x1f] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3" identifier = (binary_expression "param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3" (binary_expression "param_3[0xf] + uVar5 << bVar3" (binary_expression "param_3[0xf] + uVar5" (subscript_expression "param_3[0xf]" identifier [ number_literal ]) + identifier) << identifier) | (binary_expression "param_3[0xf] + uVar5 >> 0x20 - bVar3" (binary_expression "param_3[0xf] + uVar5" (subscript_expression "param_3[0xf]" identifier [ number_literal ]) + identifier) >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x10 & 0xff)" ( (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar4 = param_3[0xe] - uVar6;" (assignment_expression "uVar4 = param_3[0xe] - uVar6" identifier = (binary_expression "param_3[0xe] - uVar6" (subscript_expression "param_3[0xe]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x1e] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;" (assignment_expression "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" identifier = (binary_expression "uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" (binary_expression "uVar4 << bVar3" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);" (assignment_expression "uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" identifier = (binary_expression "uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" identifier ^ (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x10 & 0xff)" ( (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) ))) * number_literal)) ))))))) ;) (expression_statement "uVar4 = param_3[0xd] ^ uVar5;" (assignment_expression "uVar4 = param_3[0xd] ^ uVar5" identifier = (binary_expression "param_3[0xd] ^ uVar5" (subscript_expression "param_3[0xd]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x1d] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;" (assignment_expression "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" identifier = (binary_expression "uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" (binary_expression "uVar4 << bVar3" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x10 & 0xff)" ( (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x1c] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;" (assignment_expression "uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3" identifier = (binary_expression "param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3" (binary_expression "param_3[0xc] + uVar6 << bVar3" (binary_expression "param_3[0xc] + uVar6" (subscript_expression "param_3[0xc]" identifier [ number_literal ]) + identifier) << identifier) | (binary_expression "param_3[0xc] + uVar6 >> 0x20 - bVar3" (binary_expression "param_3[0xc] + uVar6" (subscript_expression "param_3[0xc]" identifier [ number_literal ]) + identifier) >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);" (assignment_expression "uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" identifier = (binary_expression "uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" identifier ^ (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x10 & 0xff)" ( (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) ))) * number_literal)) ))))))) ;) })) (expression_statement "bVar3 = (byte)param_3[0x1b] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3" identifier = (binary_expression "param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3" (binary_expression "param_3[0xb] - uVar5 << bVar3" (binary_expression "param_3[0xb] - uVar5" (subscript_expression "param_3[0xb]" identifier [ number_literal ]) - identifier) << identifier) | (binary_expression "param_3[0xb] - uVar5 >> 0x20 - bVar3" (binary_expression "param_3[0xb] - uVar5" (subscript_expression "param_3[0xb]" identifier [ number_literal ]) - identifier) >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x10 & 0xff)" ( (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar4 = param_3[10] ^ uVar6;" (assignment_expression "uVar4 = param_3[10] ^ uVar6" identifier = (binary_expression "param_3[10] ^ uVar6" (subscript_expression "param_3[10]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x1a] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;" (assignment_expression "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" identifier = (binary_expression "uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" (binary_expression "uVar4 << bVar3" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x10 & 0xff)" ( (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ identifier) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) ))) * number_literal)) )))))) ;) (expression_statement "uVar5 = param_3[9] + uVar4;" (assignment_expression "uVar5 = param_3[9] + uVar4" identifier = (binary_expression "param_3[9] + uVar4" (subscript_expression "param_3[9]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x19] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[8] - uVar6;" (assignment_expression "uVar5 = param_3[8] - uVar6" identifier = (binary_expression "param_3[8] - uVar6" (subscript_expression "param_3[8]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x18] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[7] ^ uVar4;" (assignment_expression "uVar5 = param_3[7] ^ uVar4" identifier = (binary_expression "param_3[7] ^ uVar4" (subscript_expression "param_3[7]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x17] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6" (binary_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) )))) ^ (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[6] + uVar6;" (assignment_expression "uVar5 = param_3[6] + uVar6" identifier = (binary_expression "param_3[6] + uVar6" (subscript_expression "param_3[6]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x16] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[5] - uVar4;" (assignment_expression "uVar5 = param_3[5] - uVar4" identifier = (binary_expression "param_3[5] - uVar4" (subscript_expression "param_3[5]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x15] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[4] ^ uVar6;" (assignment_expression "uVar5 = param_3[4] ^ uVar6" identifier = (binary_expression "param_3[4] ^ uVar6" (subscript_expression "param_3[4]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x14] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[3] + uVar4;" (assignment_expression "uVar5 = param_3[3] + uVar4" identifier = (binary_expression "param_3[3] + uVar4" (subscript_expression "param_3[3]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x13] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[2] - uVar6;" (assignment_expression "uVar5 = param_3[2] - uVar6" identifier = (binary_expression "param_3[2] - uVar6" (subscript_expression "param_3[2]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x12] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[1] ^ uVar4;" (assignment_expression "uVar5 = param_3[1] ^ uVar4" identifier = (binary_expression "param_3[1] ^ uVar4" (subscript_expression "param_3[1]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x11] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "iVar1 = *param_3;" (assignment_expression "iVar1 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "iVar2 = param_3[0x10];" (assignment_expression "iVar2 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (expression_statement "param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (expression_statement "bVar3 = (byte)iVar2 & 0x1f;" (assignment_expression "bVar3 = (byte)iVar2 & 0x1f" identifier = (binary_expression "(byte)iVar2 & 0x1f" (cast_expression "(byte)iVar2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;" (assignment_expression "uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3" identifier = (binary_expression "iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3" (binary_expression "iVar1 + uVar6 << bVar3" (binary_expression "iVar1 + uVar6" identifier + identifier) << identifier) | (binary_expression "iVar1 + uVar6 >> 0x20 - bVar3" (binary_expression "iVar1 + uVar6" identifier + identifier) >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar6 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar6 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 >> 0x10 & 0xff)" ( (binary_expression "uVar6 >> 0x10 & 0xff" (binary_expression "uVar6 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar6 >> 0x18) * 4" (call_expression "(ulong)(uVar6 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar6 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar6 & 0xff) * 4" (call_expression "(ulong)(uVar6 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 & 0xff)" ( (binary_expression "uVar6 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (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",0x256);" (call_expression "crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x256)" identifier (argument_list "("ct != NULL","src/ciphers/cast5.c",0x256)" ( (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 0x00114430 */\n\nint cast5_ecb_decrypt(uchar *ct,uchar *pt,symmetric_key *skey)\n\n{\n  ulong32 uVar1;\n  byte bVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  if (pt == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\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",599);\n    }\n    uVar5 = *(uint *)ct;\n    uVar4 = *(uint *)(ct + 4);\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    if (10 < (skey->des).dk[0]) {\n      uVar3 = (skey->des).ek[0xf] + uVar4;\n      bVar2 = (byte)(skey->des).ek[0x1f] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar5 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar5;\n      uVar3 = (skey->des).ek[0xe] - uVar5;\n      bVar2 = (byte)(skey->des).ek[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar4 = uVar4 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xd] ^ uVar4;\n      bVar2 = (byte)(skey->des).ek[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar5 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              S4[uVar3 & 0xff] ^ uVar5;\n      uVar3 = (skey->des).ek[0xc] + uVar5;\n      bVar2 = (byte)(skey->des).ek[0x1c] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar4 = uVar4 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];\n    }\n    uVar3 = (skey->des).ek[0xb] - uVar4;\n    bVar2 = (byte)(skey->des).ek[0x1b] & 0x1f;\n    uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n    uVar5 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar5;\n    uVar3 = (skey->des).ek[10] ^ uVar5;\n    bVar2 = (byte)(skey->des).ek[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            uVar4 ^ S4[uVar3 & 0xff];\n    uVar4 = (skey->des).ek[9] + uVar3;\n    bVar2 = (byte)(skey->des).ek[0x19] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[8] - uVar5;\n    bVar2 = (byte)(skey->des).ek[0x18] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[7] ^ uVar3;\n    bVar2 = (byte)(skey->des).ek[0x17] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = S4[uVar4 & 0xff] ^\n            (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[6] + uVar5;\n    bVar2 = (byte)(skey->des).ek[0x16] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[5] - uVar3;\n    bVar2 = (byte)(skey->des).ek[0x15] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[4] ^ uVar5;\n    bVar2 = (byte)(skey->des).ek[0x14] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[3] + uVar3;\n    bVar2 = (byte)(skey->des).ek[0x13] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[2] - uVar5;\n    bVar2 = (byte)(skey->des).ek[0x12] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[1] ^ uVar3;\n    bVar2 = (byte)(skey->des).ek[0x11] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar1 = (skey->des).ek[0x10];\n    uVar4 = (skey->des).ek[0] + uVar5;\n    *(uint *)(pt + 4) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    bVar2 = (byte)uVar1 & 0x1f;\n    uVar5 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = ((S2[uVar5 >> 0x10 & 0xff] ^ S1[uVar5 >> 0x18]) - S3[uVar5 >> 8 & 0xff]) +\n            S4[uVar5 & 0xff] ^ uVar3;\n    *(uint *)pt = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x256);\n}\n\n" comment (function_definition "int cast5_ecb_decrypt(uchar *ct,uchar *pt,symmetric_key *skey)\n\n{\n  ulong32 uVar1;\n  byte bVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  if (pt == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\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",599);\n    }\n    uVar5 = *(uint *)ct;\n    uVar4 = *(uint *)(ct + 4);\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    if (10 < (skey->des).dk[0]) {\n      uVar3 = (skey->des).ek[0xf] + uVar4;\n      bVar2 = (byte)(skey->des).ek[0x1f] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar5 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar5;\n      uVar3 = (skey->des).ek[0xe] - uVar5;\n      bVar2 = (byte)(skey->des).ek[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar4 = uVar4 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xd] ^ uVar4;\n      bVar2 = (byte)(skey->des).ek[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar5 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              S4[uVar3 & 0xff] ^ uVar5;\n      uVar3 = (skey->des).ek[0xc] + uVar5;\n      bVar2 = (byte)(skey->des).ek[0x1c] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar4 = uVar4 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];\n    }\n    uVar3 = (skey->des).ek[0xb] - uVar4;\n    bVar2 = (byte)(skey->des).ek[0x1b] & 0x1f;\n    uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n    uVar5 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar5;\n    uVar3 = (skey->des).ek[10] ^ uVar5;\n    bVar2 = (byte)(skey->des).ek[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            uVar4 ^ S4[uVar3 & 0xff];\n    uVar4 = (skey->des).ek[9] + uVar3;\n    bVar2 = (byte)(skey->des).ek[0x19] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[8] - uVar5;\n    bVar2 = (byte)(skey->des).ek[0x18] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[7] ^ uVar3;\n    bVar2 = (byte)(skey->des).ek[0x17] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = S4[uVar4 & 0xff] ^\n            (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[6] + uVar5;\n    bVar2 = (byte)(skey->des).ek[0x16] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[5] - uVar3;\n    bVar2 = (byte)(skey->des).ek[0x15] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[4] ^ uVar5;\n    bVar2 = (byte)(skey->des).ek[0x14] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[3] + uVar3;\n    bVar2 = (byte)(skey->des).ek[0x13] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[2] - uVar5;\n    bVar2 = (byte)(skey->des).ek[0x12] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[1] ^ uVar3;\n    bVar2 = (byte)(skey->des).ek[0x11] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar1 = (skey->des).ek[0x10];\n    uVar4 = (skey->des).ek[0] + uVar5;\n    *(uint *)(pt + 4) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    bVar2 = (byte)uVar1 & 0x1f;\n    uVar5 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = ((S2[uVar5 >> 0x10 & 0xff] ^ S1[uVar5 >> 0x18]) - S3[uVar5 >> 8 & 0xff]) +\n            S4[uVar5 & 0xff] ^ uVar3;\n    *(uint *)pt = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x256);\n}" primitive_type (function_declarator "cast5_ecb_decrypt(uchar *ct,uchar *pt,symmetric_key *skey)" identifier (parameter_list "(uchar *ct,uchar *pt,symmetric_key *skey)" ( (parameter_declaration "uchar *ct" type_identifier (pointer_declarator "*ct" * identifier)) , (parameter_declaration "uchar *pt" type_identifier (pointer_declarator "*pt" * identifier)) , (parameter_declaration "symmetric_key *skey" type_identifier (pointer_declarator "*skey" * identifier)) ))) (compound_statement "{\n  ulong32 uVar1;\n  byte bVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  if (pt == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\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",599);\n    }\n    uVar5 = *(uint *)ct;\n    uVar4 = *(uint *)(ct + 4);\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    if (10 < (skey->des).dk[0]) {\n      uVar3 = (skey->des).ek[0xf] + uVar4;\n      bVar2 = (byte)(skey->des).ek[0x1f] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar5 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar5;\n      uVar3 = (skey->des).ek[0xe] - uVar5;\n      bVar2 = (byte)(skey->des).ek[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar4 = uVar4 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xd] ^ uVar4;\n      bVar2 = (byte)(skey->des).ek[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar5 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              S4[uVar3 & 0xff] ^ uVar5;\n      uVar3 = (skey->des).ek[0xc] + uVar5;\n      bVar2 = (byte)(skey->des).ek[0x1c] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar4 = uVar4 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];\n    }\n    uVar3 = (skey->des).ek[0xb] - uVar4;\n    bVar2 = (byte)(skey->des).ek[0x1b] & 0x1f;\n    uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n    uVar5 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar5;\n    uVar3 = (skey->des).ek[10] ^ uVar5;\n    bVar2 = (byte)(skey->des).ek[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            uVar4 ^ S4[uVar3 & 0xff];\n    uVar4 = (skey->des).ek[9] + uVar3;\n    bVar2 = (byte)(skey->des).ek[0x19] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[8] - uVar5;\n    bVar2 = (byte)(skey->des).ek[0x18] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[7] ^ uVar3;\n    bVar2 = (byte)(skey->des).ek[0x17] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = S4[uVar4 & 0xff] ^\n            (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[6] + uVar5;\n    bVar2 = (byte)(skey->des).ek[0x16] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[5] - uVar3;\n    bVar2 = (byte)(skey->des).ek[0x15] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[4] ^ uVar5;\n    bVar2 = (byte)(skey->des).ek[0x14] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[3] + uVar3;\n    bVar2 = (byte)(skey->des).ek[0x13] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[2] - uVar5;\n    bVar2 = (byte)(skey->des).ek[0x12] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[1] ^ uVar3;\n    bVar2 = (byte)(skey->des).ek[0x11] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar1 = (skey->des).ek[0x10];\n    uVar4 = (skey->des).ek[0] + uVar5;\n    *(uint *)(pt + 4) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    bVar2 = (byte)uVar1 & 0x1f;\n    uVar5 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = ((S2[uVar5 >> 0x10 & 0xff] ^ S1[uVar5 >> 0x18]) - S3[uVar5 >> 8 & 0xff]) +\n            S4[uVar5 & 0xff] ^ uVar3;\n    *(uint *)pt = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x256);\n}" { (declaration "ulong32 uVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (if_statement "if (pt == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\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",0x255);\n  }" { comment (expression_statement "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);" (call_expression "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255)" identifier (argument_list "("pt != NULL","src/ciphers/cast5.c",0x255)" ( (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",599);\n    }\n    uVar5 = *(uint *)ct;\n    uVar4 = *(uint *)(ct + 4);\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    if (10 < (skey->des).dk[0]) {\n      uVar3 = (skey->des).ek[0xf] + uVar4;\n      bVar2 = (byte)(skey->des).ek[0x1f] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar5 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar5;\n      uVar3 = (skey->des).ek[0xe] - uVar5;\n      bVar2 = (byte)(skey->des).ek[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar4 = uVar4 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xd] ^ uVar4;\n      bVar2 = (byte)(skey->des).ek[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar5 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              S4[uVar3 & 0xff] ^ uVar5;\n      uVar3 = (skey->des).ek[0xc] + uVar5;\n      bVar2 = (byte)(skey->des).ek[0x1c] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar4 = uVar4 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];\n    }\n    uVar3 = (skey->des).ek[0xb] - uVar4;\n    bVar2 = (byte)(skey->des).ek[0x1b] & 0x1f;\n    uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n    uVar5 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar5;\n    uVar3 = (skey->des).ek[10] ^ uVar5;\n    bVar2 = (byte)(skey->des).ek[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            uVar4 ^ S4[uVar3 & 0xff];\n    uVar4 = (skey->des).ek[9] + uVar3;\n    bVar2 = (byte)(skey->des).ek[0x19] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[8] - uVar5;\n    bVar2 = (byte)(skey->des).ek[0x18] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[7] ^ uVar3;\n    bVar2 = (byte)(skey->des).ek[0x17] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = S4[uVar4 & 0xff] ^\n            (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[6] + uVar5;\n    bVar2 = (byte)(skey->des).ek[0x16] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[5] - uVar3;\n    bVar2 = (byte)(skey->des).ek[0x15] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[4] ^ uVar5;\n    bVar2 = (byte)(skey->des).ek[0x14] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[3] + uVar3;\n    bVar2 = (byte)(skey->des).ek[0x13] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[2] - uVar5;\n    bVar2 = (byte)(skey->des).ek[0x12] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[1] ^ uVar3;\n    bVar2 = (byte)(skey->des).ek[0x11] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar1 = (skey->des).ek[0x10];\n    uVar4 = (skey->des).ek[0] + uVar5;\n    *(uint *)(pt + 4) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    bVar2 = (byte)uVar1 & 0x1f;\n    uVar5 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = ((S2[uVar5 >> 0x10 & 0xff] ^ S1[uVar5 >> 0x18]) - S3[uVar5 >> 8 & 0xff]) +\n            S4[uVar5 & 0xff] ^ uVar3;\n    *(uint *)pt = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 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",599);\n    }\n    uVar5 = *(uint *)ct;\n    uVar4 = *(uint *)(ct + 4);\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    if (10 < (skey->des).dk[0]) {\n      uVar3 = (skey->des).ek[0xf] + uVar4;\n      bVar2 = (byte)(skey->des).ek[0x1f] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar5 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar5;\n      uVar3 = (skey->des).ek[0xe] - uVar5;\n      bVar2 = (byte)(skey->des).ek[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar4 = uVar4 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xd] ^ uVar4;\n      bVar2 = (byte)(skey->des).ek[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar5 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              S4[uVar3 & 0xff] ^ uVar5;\n      uVar3 = (skey->des).ek[0xc] + uVar5;\n      bVar2 = (byte)(skey->des).ek[0x1c] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar4 = uVar4 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];\n    }\n    uVar3 = (skey->des).ek[0xb] - uVar4;\n    bVar2 = (byte)(skey->des).ek[0x1b] & 0x1f;\n    uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n    uVar5 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar5;\n    uVar3 = (skey->des).ek[10] ^ uVar5;\n    bVar2 = (byte)(skey->des).ek[0x1a] & 0x1f;\n    uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            uVar4 ^ S4[uVar3 & 0xff];\n    uVar4 = (skey->des).ek[9] + uVar3;\n    bVar2 = (byte)(skey->des).ek[0x19] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[8] - uVar5;\n    bVar2 = (byte)(skey->des).ek[0x18] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[7] ^ uVar3;\n    bVar2 = (byte)(skey->des).ek[0x17] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = S4[uVar4 & 0xff] ^\n            (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[6] + uVar5;\n    bVar2 = (byte)(skey->des).ek[0x16] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[5] - uVar3;\n    bVar2 = (byte)(skey->des).ek[0x15] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[4] ^ uVar5;\n    bVar2 = (byte)(skey->des).ek[0x14] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[3] + uVar3;\n    bVar2 = (byte)(skey->des).ek[0x13] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar4 = (skey->des).ek[2] - uVar5;\n    bVar2 = (byte)(skey->des).ek[0x12] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3;\n    uVar4 = (skey->des).ek[1] ^ uVar3;\n    bVar2 = (byte)(skey->des).ek[0x11] & 0x1f;\n    uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar5 = (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar5;\n    uVar1 = (skey->des).ek[0x10];\n    uVar4 = (skey->des).ek[0] + uVar5;\n    *(uint *)(pt + 4) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    bVar2 = (byte)uVar1 & 0x1f;\n    uVar5 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;\n    uVar3 = ((S2[uVar5 >> 0x10 & 0xff] ^ S1[uVar5 >> 0x18]) - S3[uVar5 >> 8 & 0xff]) +\n            S4[uVar5 & 0xff] ^ uVar3;\n    *(uint *)pt = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 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",599);\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",599);\n    }" { comment (expression_statement "crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/cast5.c",599)" identifier (argument_list "("skey != NULL","src/ciphers/cast5.c",599)" ( (string_literal ""skey != NULL"" " string_content ") , (string_literal ""src/ciphers/cast5.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar5 = *(uint *)ct;" (assignment_expression "uVar5 = *(uint *)ct" identifier = (pointer_expression "*(uint *)ct" * (cast_expression "(uint *)ct" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar4 = *(uint *)(ct + 4);" (assignment_expression "uVar4 = *(uint *)(ct + 4)" identifier = (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) ))))) ;) (expression_statement "uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" identifier = (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar4 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;" (assignment_expression "uVar4 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" 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))) ;) (if_statement "if (10 < (skey->des).dk[0]) {\n      uVar3 = (skey->des).ek[0xf] + uVar4;\n      bVar2 = (byte)(skey->des).ek[0x1f] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar5 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar5;\n      uVar3 = (skey->des).ek[0xe] - uVar5;\n      bVar2 = (byte)(skey->des).ek[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar4 = uVar4 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xd] ^ uVar4;\n      bVar2 = (byte)(skey->des).ek[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar5 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              S4[uVar3 & 0xff] ^ uVar5;\n      uVar3 = (skey->des).ek[0xc] + uVar5;\n      bVar2 = (byte)(skey->des).ek[0x1c] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar4 = uVar4 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];\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[0xf] + uVar4;\n      bVar2 = (byte)(skey->des).ek[0x1f] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar5 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar5;\n      uVar3 = (skey->des).ek[0xe] - uVar5;\n      bVar2 = (byte)(skey->des).ek[0x1e] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar4 = uVar4 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];\n      uVar3 = (skey->des).ek[0xd] ^ uVar4;\n      bVar2 = (byte)(skey->des).ek[0x1d] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar5 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              S4[uVar3 & 0xff] ^ uVar5;\n      uVar3 = (skey->des).ek[0xc] + uVar5;\n      bVar2 = (byte)(skey->des).ek[0x1c] & 0x1f;\n      uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2;\n      uVar4 = uVar4 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];\n    }" { (expression_statement "uVar3 = (skey->des).ek[0xf] + uVar4;" (assignment_expression "uVar3 = (skey->des).ek[0xf] + uVar4" identifier = (binary_expression "(skey->des).ek[0xf] + uVar4" (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 "bVar2 = (byte)(skey->des).ek[0x1f] & 0x1f;" (assignment_expression "bVar2 = (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 << bVar2 | uVar3 >> 0x20 - bVar2;" (assignment_expression "uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2" identifier = (binary_expression "uVar3 << bVar2 | uVar3 >> 0x20 - bVar2" (binary_expression "uVar3 << bVar2" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar5 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar5;" (assignment_expression "uVar5 = ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar5" identifier = (binary_expression "((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n              S4[uVar3 & 0xff] ^ uVar5" (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[0xe] - uVar5;" (assignment_expression "uVar3 = (skey->des).ek[0xe] - uVar5" identifier = (binary_expression "(skey->des).ek[0xe] - uVar5" (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 "bVar2 = (byte)(skey->des).ek[0x1e] & 0x1f;" (assignment_expression "bVar2 = (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 << bVar2 | uVar3 >> 0x20 - bVar2;" (assignment_expression "uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2" identifier = (binary_expression "uVar3 << bVar2 | uVar3 >> 0x20 - bVar2" (binary_expression "uVar3 << bVar2" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar4 = uVar4 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff];" (assignment_expression "uVar4 = uVar4 ^ (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n                      S4[uVar3 & 0xff]" identifier = (binary_expression "uVar4 ^ (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[0xd] ^ uVar4;" (assignment_expression "uVar3 = (skey->des).ek[0xd] ^ uVar4" identifier = (binary_expression "(skey->des).ek[0xd] ^ uVar4" (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 "bVar2 = (byte)(skey->des).ek[0x1d] & 0x1f;" (assignment_expression "bVar2 = (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 << bVar2 | uVar3 >> 0x20 - bVar2;" (assignment_expression "uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2" identifier = (binary_expression "uVar3 << bVar2 | uVar3 >> 0x20 - bVar2" (binary_expression "uVar3 << bVar2" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar5 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              S4[uVar3 & 0xff] ^ uVar5;" (assignment_expression "uVar5 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              S4[uVar3 & 0xff] ^ uVar5" identifier = (binary_expression "(S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n              S4[uVar3 & 0xff] ^ uVar5" (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[0xc] + uVar5;" (assignment_expression "uVar3 = (skey->des).ek[0xc] + uVar5" identifier = (binary_expression "(skey->des).ek[0xc] + uVar5" (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 "bVar2 = (byte)(skey->des).ek[0x1c] & 0x1f;" (assignment_expression "bVar2 = (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 << bVar2 | uVar3 >> 0x20 - bVar2;" (assignment_expression "uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2" identifier = (binary_expression "uVar3 << bVar2 | uVar3 >> 0x20 - bVar2" (binary_expression "uVar3 << bVar2" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar4 = uVar4 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff];" (assignment_expression "uVar4 = uVar4 ^ ((S2[uVar3 >> 0x10 & 0xff] ^ S1[uVar3 >> 0x18]) - S3[uVar3 >> 8 & 0xff]) +\n                      S4[uVar3 & 0xff]" identifier = (binary_expression "uVar4 ^ ((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[0xb] - uVar4;" (assignment_expression "uVar3 = (skey->des).ek[0xb] - uVar4" identifier = (binary_expression "(skey->des).ek[0xb] - uVar4" (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 "bVar2 = (byte)(skey->des).ek[0x1b] & 0x1f;" (assignment_expression "bVar2 = (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 << bVar2 | uVar3 >> 0x20 - bVar2;" (assignment_expression "uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2" identifier = (binary_expression "uVar3 << bVar2 | uVar3 >> 0x20 - bVar2" (binary_expression "uVar3 << bVar2" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar5 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar5;" (assignment_expression "uVar5 = (S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar5" identifier = (binary_expression "(S1[uVar3 >> 0x18] + S2[uVar3 >> 0x10 & 0xff] ^ S3[uVar3 >> 8 & 0xff]) -\n            S4[uVar3 & 0xff] ^ uVar5" (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[10] ^ uVar5;" (assignment_expression "uVar3 = (skey->des).ek[10] ^ uVar5" identifier = (binary_expression "(skey->des).ek[10] ^ uVar5" (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 "bVar2 = (byte)(skey->des).ek[0x1a] & 0x1f;" (assignment_expression "bVar2 = (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 << bVar2 | uVar3 >> 0x20 - bVar2;" (assignment_expression "uVar3 = uVar3 << bVar2 | uVar3 >> 0x20 - bVar2" identifier = (binary_expression "uVar3 << bVar2 | uVar3 >> 0x20 - bVar2" (binary_expression "uVar3 << bVar2" identifier << identifier) | (binary_expression "uVar3 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar3 = (S1[uVar3 >> 0x18] + S3[uVar3 >> 8 & 0xff]) - S2[uVar3 >> 0x10 & 0xff] ^\n            uVar4 ^ S4[uVar3 & 0xff];" (assignment_expression "uVar3 = (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 "uVar4 = (skey->des).ek[9] + uVar3;" (assignment_expression "uVar4 = (skey->des).ek[9] + uVar3" identifier = (binary_expression "(skey->des).ek[9] + uVar3" (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 "bVar2 = (byte)(skey->des).ek[0x19] & 0x1f;" (assignment_expression "bVar2 = (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 "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;" (assignment_expression "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" identifier = (binary_expression "uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" (binary_expression "uVar4 << bVar2" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar5 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5;" (assignment_expression "uVar5 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5" identifier = (binary_expression "((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5" (binary_expression "((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff]" (parenthesized_expression "((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff])" ( (binary_expression "(S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]" (parenthesized_expression "(S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18])" ( (binary_expression "S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]" (subscript_expression "S2[uVar4 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ]) ^ (subscript_expression "S1[uVar4 >> 0x18]" identifier [ (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ])) )) - (subscript_expression "S3[uVar4 >> 8 & 0xff]" identifier [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) + (subscript_expression "S4[uVar4 & 0xff]" identifier [ (binary_expression "uVar4 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar4 = (skey->des).ek[8] - uVar5;" (assignment_expression "uVar4 = (skey->des).ek[8] - uVar5" identifier = (binary_expression "(skey->des).ek[8] - uVar5" (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 "bVar2 = (byte)(skey->des).ek[0x18] & 0x1f;" (assignment_expression "bVar2 = (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 "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;" (assignment_expression "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" identifier = (binary_expression "uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" (binary_expression "uVar4 << bVar2" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar3 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3;" (assignment_expression "uVar3 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3" identifier = (binary_expression "(S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3" (binary_expression "(S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff]" (parenthesized_expression "(S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff])" ( (binary_expression "S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]" (binary_expression "S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff]" (subscript_expression "S1[uVar4 >> 0x18]" identifier [ (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S2[uVar4 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ])) ^ (subscript_expression "S3[uVar4 >> 8 & 0xff]" identifier [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S4[uVar4 & 0xff]" identifier [ (binary_expression "uVar4 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar4 = (skey->des).ek[7] ^ uVar3;" (assignment_expression "uVar4 = (skey->des).ek[7] ^ uVar3" identifier = (binary_expression "(skey->des).ek[7] ^ uVar3" (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 "bVar2 = (byte)(skey->des).ek[0x17] & 0x1f;" (assignment_expression "bVar2 = (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 "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;" (assignment_expression "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" identifier = (binary_expression "uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" (binary_expression "uVar4 << bVar2" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar5 = S4[uVar4 & 0xff] ^\n            (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^ uVar5;" (assignment_expression "uVar5 = S4[uVar4 & 0xff] ^\n            (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^ uVar5" identifier = (binary_expression "S4[uVar4 & 0xff] ^\n            (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^ uVar5" (binary_expression "S4[uVar4 & 0xff] ^\n            (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff]" (subscript_expression "S4[uVar4 & 0xff]" identifier [ (binary_expression "uVar4 & 0xff" identifier & number_literal) ]) ^ (binary_expression "(S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff]" (parenthesized_expression "(S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff])" ( (binary_expression "S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]" (subscript_expression "S1[uVar4 >> 0x18]" identifier [ (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S3[uVar4 >> 8 & 0xff]" identifier [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S2[uVar4 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ]))) ^ identifier)) ;) (expression_statement "uVar4 = (skey->des).ek[6] + uVar5;" (assignment_expression "uVar4 = (skey->des).ek[6] + uVar5" identifier = (binary_expression "(skey->des).ek[6] + uVar5" (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 "bVar2 = (byte)(skey->des).ek[0x16] & 0x1f;" (assignment_expression "bVar2 = (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 "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;" (assignment_expression "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" identifier = (binary_expression "uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" (binary_expression "uVar4 << bVar2" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar3 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar3;" (assignment_expression "uVar3 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar3" identifier = (binary_expression "((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar3" (binary_expression "((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff]" (parenthesized_expression "((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff])" ( (binary_expression "(S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]" (parenthesized_expression "(S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18])" ( (binary_expression "S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]" (subscript_expression "S2[uVar4 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ]) ^ (subscript_expression "S1[uVar4 >> 0x18]" identifier [ (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ])) )) - (subscript_expression "S3[uVar4 >> 8 & 0xff]" identifier [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) + (subscript_expression "S4[uVar4 & 0xff]" identifier [ (binary_expression "uVar4 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar4 = (skey->des).ek[5] - uVar3;" (assignment_expression "uVar4 = (skey->des).ek[5] - uVar3" identifier = (binary_expression "(skey->des).ek[5] - uVar3" (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 "bVar2 = (byte)(skey->des).ek[0x15] & 0x1f;" (assignment_expression "bVar2 = (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 "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;" (assignment_expression "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" identifier = (binary_expression "uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" (binary_expression "uVar4 << bVar2" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar5 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar5;" (assignment_expression "uVar5 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar5" identifier = (binary_expression "(S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar5" (binary_expression "(S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff]" (parenthesized_expression "(S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff])" ( (binary_expression "S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]" (binary_expression "S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff]" (subscript_expression "S1[uVar4 >> 0x18]" identifier [ (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S2[uVar4 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ])) ^ (subscript_expression "S3[uVar4 >> 8 & 0xff]" identifier [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S4[uVar4 & 0xff]" identifier [ (binary_expression "uVar4 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar4 = (skey->des).ek[4] ^ uVar5;" (assignment_expression "uVar4 = (skey->des).ek[4] ^ uVar5" identifier = (binary_expression "(skey->des).ek[4] ^ uVar5" (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 "bVar2 = (byte)(skey->des).ek[0x14] & 0x1f;" (assignment_expression "bVar2 = (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 "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;" (assignment_expression "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" identifier = (binary_expression "uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" (binary_expression "uVar4 << bVar2" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar3 = (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar3;" (assignment_expression "uVar3 = (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar3" identifier = (binary_expression "(S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar3" (binary_expression "(S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff]" (binary_expression "(S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff]" (parenthesized_expression "(S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff])" ( (binary_expression "S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]" (subscript_expression "S1[uVar4 >> 0x18]" identifier [ (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S3[uVar4 >> 8 & 0xff]" identifier [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S2[uVar4 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ])) ^ (subscript_expression "S4[uVar4 & 0xff]" identifier [ (binary_expression "uVar4 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar4 = (skey->des).ek[3] + uVar3;" (assignment_expression "uVar4 = (skey->des).ek[3] + uVar3" identifier = (binary_expression "(skey->des).ek[3] + uVar3" (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 "bVar2 = (byte)(skey->des).ek[0x13] & 0x1f;" (assignment_expression "bVar2 = (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 "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;" (assignment_expression "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" identifier = (binary_expression "uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" (binary_expression "uVar4 << bVar2" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar5 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5;" (assignment_expression "uVar5 = ((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5" identifier = (binary_expression "((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff] ^ uVar5" (binary_expression "((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]) +\n            S4[uVar4 & 0xff]" (parenthesized_expression "((S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff])" ( (binary_expression "(S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]) - S3[uVar4 >> 8 & 0xff]" (parenthesized_expression "(S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18])" ( (binary_expression "S2[uVar4 >> 0x10 & 0xff] ^ S1[uVar4 >> 0x18]" (subscript_expression "S2[uVar4 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ]) ^ (subscript_expression "S1[uVar4 >> 0x18]" identifier [ (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ])) )) - (subscript_expression "S3[uVar4 >> 8 & 0xff]" identifier [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) + (subscript_expression "S4[uVar4 & 0xff]" identifier [ (binary_expression "uVar4 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar4 = (skey->des).ek[2] - uVar5;" (assignment_expression "uVar4 = (skey->des).ek[2] - uVar5" identifier = (binary_expression "(skey->des).ek[2] - uVar5" (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 "bVar2 = (byte)(skey->des).ek[0x12] & 0x1f;" (assignment_expression "bVar2 = (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 "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;" (assignment_expression "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" identifier = (binary_expression "uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" (binary_expression "uVar4 << bVar2" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar3 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3;" (assignment_expression "uVar3 = (S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3" identifier = (binary_expression "(S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff] ^ uVar3" (binary_expression "(S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]) -\n            S4[uVar4 & 0xff]" (parenthesized_expression "(S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff])" ( (binary_expression "S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff] ^ S3[uVar4 >> 8 & 0xff]" (binary_expression "S1[uVar4 >> 0x18] + S2[uVar4 >> 0x10 & 0xff]" (subscript_expression "S1[uVar4 >> 0x18]" identifier [ (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S2[uVar4 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ])) ^ (subscript_expression "S3[uVar4 >> 8 & 0xff]" identifier [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S4[uVar4 & 0xff]" identifier [ (binary_expression "uVar4 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar4 = (skey->des).ek[1] ^ uVar3;" (assignment_expression "uVar4 = (skey->des).ek[1] ^ uVar3" identifier = (binary_expression "(skey->des).ek[1] ^ uVar3" (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 "bVar2 = (byte)(skey->des).ek[0x11] & 0x1f;" (assignment_expression "bVar2 = (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 "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;" (assignment_expression "uVar4 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" identifier = (binary_expression "uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" (binary_expression "uVar4 << bVar2" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar5 = (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar5;" (assignment_expression "uVar5 = (S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar5" identifier = (binary_expression "(S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff] ^ uVar5" (binary_expression "(S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff] ^\n            S4[uVar4 & 0xff]" (binary_expression "(S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]) - S2[uVar4 >> 0x10 & 0xff]" (parenthesized_expression "(S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff])" ( (binary_expression "S1[uVar4 >> 0x18] + S3[uVar4 >> 8 & 0xff]" (subscript_expression "S1[uVar4 >> 0x18]" identifier [ (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ]) + (subscript_expression "S3[uVar4 >> 8 & 0xff]" identifier [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) - (subscript_expression "S2[uVar4 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ])) ^ (subscript_expression "S4[uVar4 & 0xff]" identifier [ (binary_expression "uVar4 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "uVar1 = (skey->des).ek[0x10];" (assignment_expression "uVar1 = (skey->des).ek[0x10]" identifier = (subscript_expression "(skey->des).ek[0x10]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "uVar4 = (skey->des).ek[0] + uVar5;" (assignment_expression "uVar4 = (skey->des).ek[0] + uVar5" identifier = (binary_expression "(skey->des).ek[0] + uVar5" (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 "*(uint *)(pt + 4) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "*(uint *)(pt + 4) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (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) )))) = (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal))) ;) (expression_statement "bVar2 = (byte)uVar1 & 0x1f;" (assignment_expression "bVar2 = (byte)uVar1 & 0x1f" identifier = (binary_expression "(byte)uVar1 & 0x1f" (cast_expression "(byte)uVar1" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar5 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2;" (assignment_expression "uVar5 = uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" identifier = (binary_expression "uVar4 << bVar2 | uVar4 >> 0x20 - bVar2" (binary_expression "uVar4 << bVar2" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar2" identifier >> (binary_expression "0x20 - bVar2" number_literal - identifier)))) ;) (expression_statement "uVar3 = ((S2[uVar5 >> 0x10 & 0xff] ^ S1[uVar5 >> 0x18]) - S3[uVar5 >> 8 & 0xff]) +\n            S4[uVar5 & 0xff] ^ uVar3;" (assignment_expression "uVar3 = ((S2[uVar5 >> 0x10 & 0xff] ^ S1[uVar5 >> 0x18]) - S3[uVar5 >> 8 & 0xff]) +\n            S4[uVar5 & 0xff] ^ uVar3" identifier = (binary_expression "((S2[uVar5 >> 0x10 & 0xff] ^ S1[uVar5 >> 0x18]) - S3[uVar5 >> 8 & 0xff]) +\n            S4[uVar5 & 0xff] ^ uVar3" (binary_expression "((S2[uVar5 >> 0x10 & 0xff] ^ S1[uVar5 >> 0x18]) - S3[uVar5 >> 8 & 0xff]) +\n            S4[uVar5 & 0xff]" (parenthesized_expression "((S2[uVar5 >> 0x10 & 0xff] ^ S1[uVar5 >> 0x18]) - S3[uVar5 >> 8 & 0xff])" ( (binary_expression "(S2[uVar5 >> 0x10 & 0xff] ^ S1[uVar5 >> 0x18]) - S3[uVar5 >> 8 & 0xff]" (parenthesized_expression "(S2[uVar5 >> 0x10 & 0xff] ^ S1[uVar5 >> 0x18])" ( (binary_expression "S2[uVar5 >> 0x10 & 0xff] ^ S1[uVar5 >> 0x18]" (subscript_expression "S2[uVar5 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ]) ^ (subscript_expression "S1[uVar5 >> 0x18]" identifier [ (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ])) )) - (subscript_expression "S3[uVar5 >> 8 & 0xff]" identifier [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) + (subscript_expression "S4[uVar5 & 0xff]" identifier [ (binary_expression "uVar5 & 0xff" identifier & number_literal) ])) ^ identifier)) ;) (expression_statement "*(uint *)pt = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18;" (assignment_expression "*(uint *)pt = uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (pointer_expression "*(uint *)pt" * (cast_expression "(uint *)pt" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (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))) ;) (return_statement "return 0;" return number_literal ;) })) comment (expression_statement "crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x256);" (call_expression "crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x256)" identifier (argument_list "("ct != NULL","src/ciphers/cast5.c",0x256)" ( (string_literal ""ct != NULL"" " string_content ") , (string_literal ""src/ciphers/cast5.c"" " string_content ") , number_literal ))) ;) })))
(translation_unit "undefined8 cast5_ecb_decrypt(uint *param_1,uint *param_2,int *param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  byte bVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  if (param_2 == (uint *)0x0) {\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\n  }\n  if (param_1 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);\n    }\n    uVar6 = *param_1;\n    uVar5 = param_1[1];\n    uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }\n    bVar3 = (byte)param_3[0x1b] & 0x1f;\n    uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n    uVar4 = param_3[10] ^ uVar6;\n    bVar3 = (byte)param_3[0x1a] & 0x1f;\n    uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    uVar5 = param_3[9] + uVar4;\n    bVar3 = (byte)param_3[0x19] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[8] - uVar6;\n    bVar3 = (byte)param_3[0x18] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[7] ^ uVar4;\n    bVar3 = (byte)param_3[0x17] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[6] + uVar6;\n    bVar3 = (byte)param_3[0x16] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[5] - uVar4;\n    bVar3 = (byte)param_3[0x15] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[4] ^ uVar6;\n    bVar3 = (byte)param_3[0x14] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[3] + uVar4;\n    bVar3 = (byte)param_3[0x13] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[2] - uVar6;\n    bVar3 = (byte)param_3[0x12] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[1] ^ uVar4;\n    bVar3 = (byte)param_3[0x11] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    iVar1 = *param_3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    iVar2 = param_3[0x10];\n    param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    bVar3 = (byte)iVar2 & 0x1f;\n    uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;\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",0x256);\n}\n\n" (function_definition "undefined8 cast5_ecb_decrypt(uint *param_1,uint *param_2,int *param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  byte bVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  if (param_2 == (uint *)0x0) {\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\n  }\n  if (param_1 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);\n    }\n    uVar6 = *param_1;\n    uVar5 = param_1[1];\n    uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }\n    bVar3 = (byte)param_3[0x1b] & 0x1f;\n    uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n    uVar4 = param_3[10] ^ uVar6;\n    bVar3 = (byte)param_3[0x1a] & 0x1f;\n    uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    uVar5 = param_3[9] + uVar4;\n    bVar3 = (byte)param_3[0x19] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[8] - uVar6;\n    bVar3 = (byte)param_3[0x18] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[7] ^ uVar4;\n    bVar3 = (byte)param_3[0x17] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[6] + uVar6;\n    bVar3 = (byte)param_3[0x16] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[5] - uVar4;\n    bVar3 = (byte)param_3[0x15] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[4] ^ uVar6;\n    bVar3 = (byte)param_3[0x14] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[3] + uVar4;\n    bVar3 = (byte)param_3[0x13] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[2] - uVar6;\n    bVar3 = (byte)param_3[0x12] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[1] ^ uVar4;\n    bVar3 = (byte)param_3[0x11] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    iVar1 = *param_3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    iVar2 = param_3[0x10];\n    param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    bVar3 = (byte)iVar2 & 0x1f;\n    uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;\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",0x256);\n}" type_identifier (function_declarator "cast5_ecb_decrypt(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  int iVar1;\n  int iVar2;\n  byte bVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  if (param_2 == (uint *)0x0) {\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\n  }\n  if (param_1 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);\n    }\n    uVar6 = *param_1;\n    uVar5 = param_1[1];\n    uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }\n    bVar3 = (byte)param_3[0x1b] & 0x1f;\n    uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n    uVar4 = param_3[10] ^ uVar6;\n    bVar3 = (byte)param_3[0x1a] & 0x1f;\n    uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    uVar5 = param_3[9] + uVar4;\n    bVar3 = (byte)param_3[0x19] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[8] - uVar6;\n    bVar3 = (byte)param_3[0x18] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[7] ^ uVar4;\n    bVar3 = (byte)param_3[0x17] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[6] + uVar6;\n    bVar3 = (byte)param_3[0x16] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[5] - uVar4;\n    bVar3 = (byte)param_3[0x15] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[4] ^ uVar6;\n    bVar3 = (byte)param_3[0x14] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[3] + uVar4;\n    bVar3 = (byte)param_3[0x13] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[2] - uVar6;\n    bVar3 = (byte)param_3[0x12] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[1] ^ uVar4;\n    bVar3 = (byte)param_3[0x11] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    iVar1 = *param_3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    iVar2 = param_3[0x10];\n    param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    bVar3 = (byte)iVar2 & 0x1f;\n    uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;\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",0x256);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (if_statement "if (param_2 == (uint *)0x0) {\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\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                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\n  }" { (expression_statement "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);" (call_expression "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255)" identifier (argument_list "("pt != NULL","src/ciphers/cast5.c",0x255)" ( (string_literal ""pt != NULL"" " string_content ") , (string_literal ""src/ciphers/cast5.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_1 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);\n    }\n    uVar6 = *param_1;\n    uVar5 = param_1[1];\n    uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }\n    bVar3 = (byte)param_3[0x1b] & 0x1f;\n    uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n    uVar4 = param_3[10] ^ uVar6;\n    bVar3 = (byte)param_3[0x1a] & 0x1f;\n    uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    uVar5 = param_3[9] + uVar4;\n    bVar3 = (byte)param_3[0x19] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[8] - uVar6;\n    bVar3 = (byte)param_3[0x18] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[7] ^ uVar4;\n    bVar3 = (byte)param_3[0x17] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[6] + uVar6;\n    bVar3 = (byte)param_3[0x16] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[5] - uVar4;\n    bVar3 = (byte)param_3[0x15] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[4] ^ uVar6;\n    bVar3 = (byte)param_3[0x14] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[3] + uVar4;\n    bVar3 = (byte)param_3[0x13] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[2] - uVar6;\n    bVar3 = (byte)param_3[0x12] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[1] ^ uVar4;\n    bVar3 = (byte)param_3[0x11] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    iVar1 = *param_3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    iVar2 = param_3[0x10];\n    param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    bVar3 = (byte)iVar2 & 0x1f;\n    uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\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    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);\n    }\n    uVar6 = *param_1;\n    uVar5 = param_1[1];\n    uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }\n    bVar3 = (byte)param_3[0x1b] & 0x1f;\n    uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n    uVar4 = param_3[10] ^ uVar6;\n    bVar3 = (byte)param_3[0x1a] & 0x1f;\n    uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    uVar5 = param_3[9] + uVar4;\n    bVar3 = (byte)param_3[0x19] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[8] - uVar6;\n    bVar3 = (byte)param_3[0x18] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[7] ^ uVar4;\n    bVar3 = (byte)param_3[0x17] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[6] + uVar6;\n    bVar3 = (byte)param_3[0x16] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[5] - uVar4;\n    bVar3 = (byte)param_3[0x15] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[4] ^ uVar6;\n    bVar3 = (byte)param_3[0x14] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[3] + uVar4;\n    bVar3 = (byte)param_3[0x13] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[2] - uVar6;\n    bVar3 = (byte)param_3[0x12] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[1] ^ uVar4;\n    bVar3 = (byte)param_3[0x11] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    iVar1 = *param_3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    iVar2 = param_3[0x10];\n    param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    bVar3 = (byte)iVar2 & 0x1f;\n    uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;\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",599);\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",599);\n    }" { (expression_statement "crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/cast5.c",599)" identifier (argument_list "("skey != NULL","src/ciphers/cast5.c",599)" ( (string_literal ""skey != NULL"" " string_content ") , (string_literal ""src/ciphers/cast5.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar5 = param_1[1];" (assignment_expression "uVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" identifier = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" identifier = (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal))) ;) (if_statement "if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\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      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }" { (expression_statement "bVar3 = (byte)param_3[0x1f] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3" identifier = (binary_expression "param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3" (binary_expression "param_3[0xf] + uVar5 << bVar3" (binary_expression "param_3[0xf] + uVar5" (subscript_expression "param_3[0xf]" identifier [ number_literal ]) + identifier) << identifier) | (binary_expression "param_3[0xf] + uVar5 >> 0x20 - bVar3" (binary_expression "param_3[0xf] + uVar5" (subscript_expression "param_3[0xf]" identifier [ number_literal ]) + identifier) >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x10 & 0xff)" ( (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar4 = param_3[0xe] - uVar6;" (assignment_expression "uVar4 = param_3[0xe] - uVar6" identifier = (binary_expression "param_3[0xe] - uVar6" (subscript_expression "param_3[0xe]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x1e] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;" (assignment_expression "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" identifier = (binary_expression "uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" (binary_expression "uVar4 << bVar3" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);" (assignment_expression "uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" identifier = (binary_expression "uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" identifier ^ (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x10 & 0xff)" ( (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) ))) * number_literal)) ))))))) ;) (expression_statement "uVar4 = param_3[0xd] ^ uVar5;" (assignment_expression "uVar4 = param_3[0xd] ^ uVar5" identifier = (binary_expression "param_3[0xd] ^ uVar5" (subscript_expression "param_3[0xd]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x1d] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;" (assignment_expression "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" identifier = (binary_expression "uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" (binary_expression "uVar4 << bVar3" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x10 & 0xff)" ( (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x1c] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;" (assignment_expression "uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3" identifier = (binary_expression "param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3" (binary_expression "param_3[0xc] + uVar6 << bVar3" (binary_expression "param_3[0xc] + uVar6" (subscript_expression "param_3[0xc]" identifier [ number_literal ]) + identifier) << identifier) | (binary_expression "param_3[0xc] + uVar6 >> 0x20 - bVar3" (binary_expression "param_3[0xc] + uVar6" (subscript_expression "param_3[0xc]" identifier [ number_literal ]) + identifier) >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);" (assignment_expression "uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" identifier = (binary_expression "uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" identifier ^ (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x10 & 0xff)" ( (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) ))) * number_literal)) ))))))) ;) })) (expression_statement "bVar3 = (byte)param_3[0x1b] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3" identifier = (binary_expression "param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3" (binary_expression "param_3[0xb] - uVar5 << bVar3" (binary_expression "param_3[0xb] - uVar5" (subscript_expression "param_3[0xb]" identifier [ number_literal ]) - identifier) << identifier) | (binary_expression "param_3[0xb] - uVar5 >> 0x20 - bVar3" (binary_expression "param_3[0xb] - uVar5" (subscript_expression "param_3[0xb]" identifier [ number_literal ]) - identifier) >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x10 & 0xff)" ( (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar4 = param_3[10] ^ uVar6;" (assignment_expression "uVar4 = param_3[10] ^ uVar6" identifier = (binary_expression "param_3[10] ^ uVar6" (subscript_expression "param_3[10]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x1a] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;" (assignment_expression "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" identifier = (binary_expression "uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" (binary_expression "uVar4 << bVar3" identifier << identifier) | (binary_expression "uVar4 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x10 & 0xff)" ( (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ identifier) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 & 0xff)" ( (binary_expression "uVar4 & 0xff" identifier & number_literal) ))) * number_literal)) )))))) ;) (expression_statement "uVar5 = param_3[9] + uVar4;" (assignment_expression "uVar5 = param_3[9] + uVar4" identifier = (binary_expression "param_3[9] + uVar4" (subscript_expression "param_3[9]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x19] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[8] - uVar6;" (assignment_expression "uVar5 = param_3[8] - uVar6" identifier = (binary_expression "param_3[8] - uVar6" (subscript_expression "param_3[8]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x18] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[7] ^ uVar4;" (assignment_expression "uVar5 = param_3[7] ^ uVar4" identifier = (binary_expression "param_3[7] ^ uVar4" (subscript_expression "param_3[7]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x17] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6" (binary_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) )))) ^ (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[6] + uVar6;" (assignment_expression "uVar5 = param_3[6] + uVar6" identifier = (binary_expression "param_3[6] + uVar6" (subscript_expression "param_3[6]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x16] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[5] - uVar4;" (assignment_expression "uVar5 = param_3[5] - uVar4" identifier = (binary_expression "param_3[5] - uVar4" (subscript_expression "param_3[5]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x15] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[4] ^ uVar6;" (assignment_expression "uVar5 = param_3[4] ^ uVar6" identifier = (binary_expression "param_3[4] ^ uVar6" (subscript_expression "param_3[4]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x14] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[3] + uVar4;" (assignment_expression "uVar5 = param_3[3] + uVar4" identifier = (binary_expression "param_3[3] + uVar4" (subscript_expression "param_3[3]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x13] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[2] - uVar6;" (assignment_expression "uVar5 = param_3[2] - uVar6" identifier = (binary_expression "param_3[2] - uVar6" (subscript_expression "param_3[2]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x12] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "uVar5 = param_3[1] ^ uVar4;" (assignment_expression "uVar5 = param_3[1] ^ uVar4" identifier = (binary_expression "param_3[1] ^ uVar4" (subscript_expression "param_3[1]" identifier [ number_literal ]) ^ identifier)) ;) (expression_statement "bVar3 = (byte)param_3[0x11] & 0x1f;" (assignment_expression "bVar3 = (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" identifier = (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" identifier << identifier) | (binary_expression "uVar5 >> 0x20 - bVar3" identifier >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "iVar1 = *param_3;" (assignment_expression "iVar1 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" identifier = (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" ( (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" * (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x18)" ( (binary_expression "uVar5 >> 0x18" identifier >> number_literal) ))) * number_literal)) )))) + (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" identifier >> number_literal) & number_literal) ])) )) - (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 >> 0x10 & 0xff)" ( (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (expression_statement "iVar2 = param_3[0x10];" (assignment_expression "iVar2 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (expression_statement "param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" ( (binary_expression "uVar6 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" ( (binary_expression "uVar6 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar6 << 0x18" identifier << number_literal))) ;) (expression_statement "bVar3 = (byte)iVar2 & 0x1f;" (assignment_expression "bVar3 = (byte)iVar2 & 0x1f" identifier = (binary_expression "(byte)iVar2 & 0x1f" (cast_expression "(byte)iVar2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;" (assignment_expression "uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3" identifier = (binary_expression "iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3" (binary_expression "iVar1 + uVar6 << bVar3" (binary_expression "iVar1 + uVar6" identifier + identifier) << identifier) | (binary_expression "iVar1 + uVar6 >> 0x20 - bVar3" (binary_expression "iVar1 + uVar6" identifier + identifier) >> (binary_expression "0x20 - bVar3" number_literal - identifier)))) ;) (expression_statement "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4" identifier = (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff])" ( (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4))" ( (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" & identifier) + (binary_expression "(ulong)(uVar6 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar6 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 >> 0x10 & 0xff)" ( (binary_expression "uVar6 >> 0x10 & 0xff" (binary_expression "uVar6 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)" ( (binary_expression "&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4" (pointer_expression "&DAT_00199220" & identifier) + (binary_expression "(ulong)(uVar6 >> 0x18) * 4" (call_expression "(ulong)(uVar6 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) )) - (subscript_expression "(&DAT_00198a20)[uVar6 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" ( (pointer_expression "&DAT_00198a20" & identifier) )) [ (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" identifier >> number_literal) & number_literal) ])) )) + (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4)" * (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4)" ( (binary_expression "&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4" (pointer_expression "&DAT_00198620" & identifier) + (binary_expression "(ulong)(uVar6 & 0xff) * 4" (call_expression "(ulong)(uVar6 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 & 0xff)" ( (binary_expression "uVar6 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ^ identifier)) ;) (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",0x256);" (call_expression "crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x256)" identifier (argument_list "("ct != NULL","src/ciphers/cast5.c",0x256)" ( (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 ;) (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 (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))) ;) (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 (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 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 (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 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 (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)) ;) (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 (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 (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 (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)) )))))) ^ 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 (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 (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 (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 (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 = (pointer_expression * 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 = (subscript_expression IDENT [ LIT ])) ;) (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 IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT + IDENT) << IDENT) | (binary_expression (binary_expression IDENT + 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 (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_decrypt(uint *param_1,uint *param_2,int *param_3)\n\n{\n  int iVar1;\n  int iVar2;\n  byte bVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  if (param_2 == (uint *)0x0) {\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\n  }\n  if (param_1 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);\n    }\n    uVar6 = *param_1;\n    uVar5 = param_1[1];\n    uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }\n    bVar3 = (byte)param_3[0x1b] & 0x1f;\n    uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n    uVar4 = param_3[10] ^ uVar6;\n    bVar3 = (byte)param_3[0x1a] & 0x1f;\n    uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    uVar5 = param_3[9] + uVar4;\n    bVar3 = (byte)param_3[0x19] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[8] - uVar6;\n    bVar3 = (byte)param_3[0x18] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[7] ^ uVar4;\n    bVar3 = (byte)param_3[0x17] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[6] + uVar6;\n    bVar3 = (byte)param_3[0x16] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[5] - uVar4;\n    bVar3 = (byte)param_3[0x15] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[4] ^ uVar6;\n    bVar3 = (byte)param_3[0x14] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[3] + uVar4;\n    bVar3 = (byte)param_3[0x13] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[2] - uVar6;\n    bVar3 = (byte)param_3[0x12] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[1] ^ uVar4;\n    bVar3 = (byte)param_3[0x11] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    iVar1 = *param_3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    iVar2 = param_3[0x10];\n    param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    bVar3 = (byte)iVar2 & 0x1f;\n    uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;\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",0x256);\n}" (type_identifier "undefined8") (function_declarator "cast5_ecb_decrypt(uint *param_1,uint *param_2,int *param_3)" (identifier "cast5_ecb_decrypt") (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  int iVar1;\n  int iVar2;\n  byte bVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  \n  if (param_2 == (uint *)0x0) {\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\n  }\n  if (param_1 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);\n    }\n    uVar6 = *param_1;\n    uVar5 = param_1[1];\n    uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }\n    bVar3 = (byte)param_3[0x1b] & 0x1f;\n    uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n    uVar4 = param_3[10] ^ uVar6;\n    bVar3 = (byte)param_3[0x1a] & 0x1f;\n    uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    uVar5 = param_3[9] + uVar4;\n    bVar3 = (byte)param_3[0x19] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[8] - uVar6;\n    bVar3 = (byte)param_3[0x18] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[7] ^ uVar4;\n    bVar3 = (byte)param_3[0x17] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[6] + uVar6;\n    bVar3 = (byte)param_3[0x16] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[5] - uVar4;\n    bVar3 = (byte)param_3[0x15] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[4] ^ uVar6;\n    bVar3 = (byte)param_3[0x14] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[3] + uVar4;\n    bVar3 = (byte)param_3[0x13] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[2] - uVar6;\n    bVar3 = (byte)param_3[0x12] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[1] ^ uVar4;\n    bVar3 = (byte)param_3[0x11] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    iVar1 = *param_3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    iVar2 = param_3[0x10];\n    param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    bVar3 = (byte)iVar2 & 0x1f;\n    uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;\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",0x256);\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (if_statement "if (param_2 == (uint *)0x0) {\n                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\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                    \n    crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);\n  }" ({ "{") (expression_statement "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255);" (call_expression "crypt_argchk("pt != NULL","src/ciphers/cast5.c",0x255)" (identifier "crypt_argchk") (argument_list "("pt != NULL","src/ciphers/cast5.c",0x255)" (( "(") (string_literal ""pt != NULL"" (" """) (string_content "pt != NULL") (" """)) (, ",") (string_literal ""src/ciphers/cast5.c"" (" """) (string_content "src/ciphers/cast5.c") (" """)) (, ",") (number_literal "0x255") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1 != (uint *)0x0) {\n    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);\n    }\n    uVar6 = *param_1;\n    uVar5 = param_1[1];\n    uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }\n    bVar3 = (byte)param_3[0x1b] & 0x1f;\n    uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n    uVar4 = param_3[10] ^ uVar6;\n    bVar3 = (byte)param_3[0x1a] & 0x1f;\n    uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    uVar5 = param_3[9] + uVar4;\n    bVar3 = (byte)param_3[0x19] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[8] - uVar6;\n    bVar3 = (byte)param_3[0x18] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[7] ^ uVar4;\n    bVar3 = (byte)param_3[0x17] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[6] + uVar6;\n    bVar3 = (byte)param_3[0x16] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[5] - uVar4;\n    bVar3 = (byte)param_3[0x15] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[4] ^ uVar6;\n    bVar3 = (byte)param_3[0x14] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[3] + uVar4;\n    bVar3 = (byte)param_3[0x13] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[2] - uVar6;\n    bVar3 = (byte)param_3[0x12] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[1] ^ uVar4;\n    bVar3 = (byte)param_3[0x11] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    iVar1 = *param_3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    iVar2 = param_3[0x10];\n    param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    bVar3 = (byte)iVar2 & 0x1f;\n    uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;\n    *param_2 = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\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    if (param_3 == (int *)0x0) {\n                    \n      crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);\n    }\n    uVar6 = *param_1;\n    uVar5 = param_1[1];\n    uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }\n    bVar3 = (byte)param_3[0x1b] & 0x1f;\n    uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n    uVar4 = param_3[10] ^ uVar6;\n    bVar3 = (byte)param_3[0x1a] & 0x1f;\n    uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    uVar5 = param_3[9] + uVar4;\n    bVar3 = (byte)param_3[0x19] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[8] - uVar6;\n    bVar3 = (byte)param_3[0x18] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[7] ^ uVar4;\n    bVar3 = (byte)param_3[0x17] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[6] + uVar6;\n    bVar3 = (byte)param_3[0x16] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[5] - uVar4;\n    bVar3 = (byte)param_3[0x15] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[4] ^ uVar6;\n    bVar3 = (byte)param_3[0x14] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[3] + uVar4;\n    bVar3 = (byte)param_3[0x13] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    uVar5 = param_3[2] - uVar6;\n    bVar3 = (byte)param_3[0x12] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;\n    uVar5 = param_3[1] ^ uVar4;\n    bVar3 = (byte)param_3[0x11] & 0x1f;\n    uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;\n    iVar1 = *param_3;\n    uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;\n    iVar2 = param_3[0x10];\n    param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;\n    bVar3 = (byte)iVar2 & 0x1f;\n    uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;\n    uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;\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",599);\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",599);\n    }" ({ "{") (expression_statement "crypt_argchk("skey != NULL","src/ciphers/cast5.c",599);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/cast5.c",599)" (identifier "crypt_argchk") (argument_list "("skey != NULL","src/ciphers/cast5.c",599)" (( "(") (string_literal ""skey != NULL"" (" """) (string_content "skey != NULL") (" """)) (, ",") (string_literal ""src/ciphers/cast5.c"" (" """) (string_content "src/ciphers/cast5.c") (" """)) (, ",") (number_literal "599") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" (identifier "uVar6") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar5 = param_1[1];" (assignment_expression "uVar5 = param_1[1]" (identifier "uVar5") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "uVar6 = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (identifier "uVar6") (= "=") (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" (identifier "uVar6") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar6 << 0x18" (identifier "uVar6") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "uVar5 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (identifier "uVar5") (= "=") (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" (identifier "uVar5") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" (( "(") (binary_expression "uVar5 & 0xff0000" (identifier "uVar5") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" (( "(") (binary_expression "uVar5 & 0xff00" (identifier "uVar5") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar5 << 0x18" (identifier "uVar5") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (10 < (uint)param_3[0x20]) {\n      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\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      bVar3 = (byte)param_3[0x1f] & 0x1f;\n      uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;\n      uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      uVar4 = param_3[0xe] - uVar6;\n      bVar3 = (byte)param_3[0x1e] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n      uVar4 = param_3[0xd] ^ uVar5;\n      bVar3 = (byte)param_3[0x1d] & 0x1f;\n      uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;\n      uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;\n      bVar3 = (byte)param_3[0x1c] & 0x1f;\n      uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;\n      uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);\n    }" ({ "{") (expression_statement "bVar3 = (byte)param_3[0x1f] & 0x1f;" (assignment_expression "bVar3 = (byte)param_3[0x1f] & 0x1f" (identifier "bVar3") (= "=") (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 "uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar4 = param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3" (identifier "uVar4") (= "=") (binary_expression "param_3[0xf] + uVar5 << bVar3 | param_3[0xf] + uVar5 >> 0x20 - bVar3" (binary_expression "param_3[0xf] + uVar5 << bVar3" (binary_expression "param_3[0xf] + uVar5" (subscript_expression "param_3[0xf]" (identifier "param_3") ([ "[") (number_literal "0xf") (] "]")) (+ "+") (identifier "uVar5")) (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "param_3[0xf] + uVar5 >> 0x20 - bVar3" (binary_expression "param_3[0xf] + uVar5" (subscript_expression "param_3[0xf]" (identifier "param_3") ([ "[") (number_literal "0xf") (] "]")) (+ "+") (identifier "uVar5")) (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" (identifier "uVar6") (= "=") (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n              *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff])" (( "(") (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4))" (( "(") (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n               *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" (identifier "uVar4") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (^ "^") (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 >> 0x18)" (( "(") (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")) (- "-") (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" (identifier "uVar4") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (+ "+") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 & 0xff)" (( "(") (binary_expression "uVar4 & 0xff" (identifier "uVar4") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar6"))) (; ";")) (expression_statement "uVar4 = param_3[0xe] - uVar6;" (assignment_expression "uVar4 = param_3[0xe] - uVar6" (identifier "uVar4") (= "=") (binary_expression "param_3[0xe] - uVar6" (subscript_expression "param_3[0xe]" (identifier "param_3") ([ "[") (number_literal "0xe") (] "]")) (- "-") (identifier "uVar6"))) (; ";")) (expression_statement "bVar3 = (byte)param_3[0x1e] & 0x1f;" (assignment_expression "bVar3 = (byte)param_3[0x1e] & 0x1f" (identifier "bVar3") (= "=") (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 "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;" (assignment_expression "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" (identifier "uVar4") (= "=") (binary_expression "uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" (binary_expression "uVar4 << bVar3" (identifier "uVar4") (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "uVar4 >> 0x20 - bVar3" (identifier "uVar4") (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);" (assignment_expression "uVar5 = uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (identifier "uVar5") (= "=") (binary_expression "uVar5 ^ (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (identifier "uVar5") (^ "^") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n                       *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 >> 0x18)" (( "(") (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" (identifier "uVar4") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" (identifier "uVar4") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 & 0xff)" (( "(") (binary_expression "uVar4 & 0xff" (identifier "uVar4") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))))) (; ";")) (expression_statement "uVar4 = param_3[0xd] ^ uVar5;" (assignment_expression "uVar4 = param_3[0xd] ^ uVar5" (identifier "uVar4") (= "=") (binary_expression "param_3[0xd] ^ uVar5" (subscript_expression "param_3[0xd]" (identifier "param_3") ([ "[") (number_literal "0xd") (] "]")) (^ "^") (identifier "uVar5"))) (; ";")) (expression_statement "bVar3 = (byte)param_3[0x1d] & 0x1f;" (assignment_expression "bVar3 = (byte)param_3[0x1d] & 0x1f" (identifier "bVar3") (= "=") (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 "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;" (assignment_expression "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" (identifier "uVar4") (= "=") (binary_expression "uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" (binary_expression "uVar4 << bVar3" (identifier "uVar4") (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "uVar4 >> 0x20 - bVar3" (identifier "uVar4") (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" (identifier "uVar6") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n              *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n              *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n              (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 >> 0x18)" (( "(") (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" (identifier "uVar4") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" (identifier "uVar4") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 & 0xff)" (( "(") (binary_expression "uVar4 & 0xff" (identifier "uVar4") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar6"))) (; ";")) (expression_statement "bVar3 = (byte)param_3[0x1c] & 0x1f;" (assignment_expression "bVar3 = (byte)param_3[0x1c] & 0x1f" (identifier "bVar3") (= "=") (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 "uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3;" (assignment_expression "uVar4 = param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3" (identifier "uVar4") (= "=") (binary_expression "param_3[0xc] + uVar6 << bVar3 | param_3[0xc] + uVar6 >> 0x20 - bVar3" (binary_expression "param_3[0xc] + uVar6 << bVar3" (binary_expression "param_3[0xc] + uVar6" (subscript_expression "param_3[0xc]" (identifier "param_3") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (identifier "uVar6")) (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "param_3[0xc] + uVar6 >> 0x20 - bVar3" (binary_expression "param_3[0xc] + uVar6" (subscript_expression "param_3[0xc]" (identifier "param_3") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (identifier "uVar6")) (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);" (assignment_expression "uVar5 = uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (identifier "uVar5") (= "=") (binary_expression "uVar5 ^ ((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (identifier "uVar5") (^ "^") (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]) +\n                      *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff])" (( "(") (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)) -\n                      (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4))" (( "(") (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n                       *(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" (identifier "uVar4") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (^ "^") (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 >> 0x18)" (( "(") (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")) (- "-") (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" (identifier "uVar4") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (+ "+") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 & 0xff)" (( "(") (binary_expression "uVar4 & 0xff" (identifier "uVar4") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))))) (; ";")) (} "}"))) (expression_statement "bVar3 = (byte)param_3[0x1b] & 0x1f;" (assignment_expression "bVar3 = (byte)param_3[0x1b] & 0x1f" (identifier "bVar3") (= "=") (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 "uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar4 = param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3" (identifier "uVar4") (= "=") (binary_expression "param_3[0xb] - uVar5 << bVar3 | param_3[0xb] - uVar5 >> 0x20 - bVar3" (binary_expression "param_3[0xb] - uVar5 << bVar3" (binary_expression "param_3[0xb] - uVar5" (subscript_expression "param_3[0xb]" (identifier "param_3") ([ "[") (number_literal "0xb") (] "]")) (- "-") (identifier "uVar5")) (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "param_3[0xb] - uVar5 >> 0x20 - bVar3" (binary_expression "param_3[0xb] - uVar5" (subscript_expression "param_3[0xb]" (identifier "param_3") ([ "[") (number_literal "0xb") (] "]")) (- "-") (identifier "uVar5")) (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" (identifier "uVar6") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4) ^ uVar6" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 >> 0x18)" (( "(") (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" (identifier "uVar4") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" (identifier "uVar4") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 & 0xff)" (( "(") (binary_expression "uVar4 & 0xff" (identifier "uVar4") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar6"))) (; ";")) (expression_statement "uVar4 = param_3[10] ^ uVar6;" (assignment_expression "uVar4 = param_3[10] ^ uVar6" (identifier "uVar4") (= "=") (binary_expression "param_3[10] ^ uVar6" (subscript_expression "param_3[10]" (identifier "param_3") ([ "[") (number_literal "10") (] "]")) (^ "^") (identifier "uVar6"))) (; ";")) (expression_statement "bVar3 = (byte)param_3[0x1a] & 0x1f;" (assignment_expression "bVar3 = (byte)param_3[0x1a] & 0x1f" (identifier "bVar3") (= "=") (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 "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3;" (assignment_expression "uVar4 = uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" (identifier "uVar4") (= "=") (binary_expression "uVar4 << bVar3 | uVar4 >> 0x20 - bVar3" (binary_expression "uVar4 << bVar3" (identifier "uVar4") (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "uVar4 >> 0x20 - bVar3" (identifier "uVar4") (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4);" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (identifier "uVar4") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5 ^ *(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4) ^\n            uVar5" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar4 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar4 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar4 >> 0x18) * 4" (call_expression "(ulong)(uVar4 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 >> 0x18)" (( "(") (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (subscript_expression "(&DAT_00198a20)[uVar4 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar4 >> 8 & 0xff" (binary_expression "uVar4 >> 8" (identifier "uVar4") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar4 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar4 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar4 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar4 >> 0x10 & 0xff" (binary_expression "uVar4 >> 0x10" (identifier "uVar4") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar5")) (^ "^") (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar4 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar4 & 0xff) * 4" (call_expression "(ulong)(uVar4 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 & 0xff)" (( "(") (binary_expression "uVar4 & 0xff" (identifier "uVar4") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "uVar5 = param_3[9] + uVar4;" (assignment_expression "uVar5 = param_3[9] + uVar4" (identifier "uVar5") (= "=") (binary_expression "param_3[9] + uVar4" (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]")) (+ "+") (identifier "uVar4"))) (; ";")) (expression_statement "bVar3 = (byte)param_3[0x19] & 0x1f;" (assignment_expression "bVar3 = (byte)param_3[0x19] & 0x1f" (identifier "bVar3") (= "=") (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (identifier "uVar5") (= "=") (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" (identifier "uVar5") (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "uVar5 >> 0x20 - bVar3" (identifier "uVar5") (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (identifier "uVar6") (= "=") (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" (( "(") (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4))" (( "(") (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" (identifier "uVar5") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (^ "^") (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x18)" (( "(") (binary_expression "uVar5 >> 0x18" (identifier "uVar5") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")) (- "-") (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" (identifier "uVar5") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (+ "+") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 & 0xff)" (( "(") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar6"))) (; ";")) (expression_statement "uVar5 = param_3[8] - uVar6;" (assignment_expression "uVar5 = param_3[8] - uVar6" (identifier "uVar5") (= "=") (binary_expression "param_3[8] - uVar6" (subscript_expression "param_3[8]" (identifier "param_3") ([ "[") (number_literal "8") (] "]")) (- "-") (identifier "uVar6"))) (; ";")) (expression_statement "bVar3 = (byte)param_3[0x18] & 0x1f;" (assignment_expression "bVar3 = (byte)param_3[0x18] & 0x1f" (identifier "bVar3") (= "=") (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (identifier "uVar5") (= "=") (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" (identifier "uVar5") (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "uVar5 >> 0x20 - bVar3" (identifier "uVar5") (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (identifier "uVar4") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x18)" (( "(") (binary_expression "uVar5 >> 0x18" (identifier "uVar5") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" (identifier "uVar5") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" (identifier "uVar5") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 & 0xff)" (( "(") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar5 = param_3[7] ^ uVar4;" (assignment_expression "uVar5 = param_3[7] ^ uVar4" (identifier "uVar5") (= "=") (binary_expression "param_3[7] ^ uVar4" (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "bVar3 = (byte)param_3[0x17] & 0x1f;" (assignment_expression "bVar3 = (byte)param_3[0x17] & 0x1f" (identifier "bVar3") (= "=") (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (identifier "uVar5") (= "=") (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" (identifier "uVar5") (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "uVar5 >> 0x20 - bVar3" (identifier "uVar5") (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6" (identifier "uVar6") (= "=") (binary_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^ uVar6" (binary_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^\n            (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 & 0xff)" (( "(") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (^ "^") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x18)" (( "(") (binary_expression "uVar5 >> 0x18" (identifier "uVar5") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" (identifier "uVar5") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" (identifier "uVar5") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))))) (^ "^") (identifier "uVar6"))) (; ";")) (expression_statement "uVar5 = param_3[6] + uVar6;" (assignment_expression "uVar5 = param_3[6] + uVar6" (identifier "uVar5") (= "=") (binary_expression "param_3[6] + uVar6" (subscript_expression "param_3[6]" (identifier "param_3") ([ "[") (number_literal "6") (] "]")) (+ "+") (identifier "uVar6"))) (; ";")) (expression_statement "bVar3 = (byte)param_3[0x16] & 0x1f;" (assignment_expression "bVar3 = (byte)param_3[0x16] & 0x1f" (identifier "bVar3") (= "=") (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (identifier "uVar5") (= "=") (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" (identifier "uVar5") (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "uVar5 >> 0x20 - bVar3" (identifier "uVar5") (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (identifier "uVar4") (= "=") (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" (( "(") (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4))" (( "(") (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" (identifier "uVar5") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (^ "^") (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x18)" (( "(") (binary_expression "uVar5 >> 0x18" (identifier "uVar5") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")) (- "-") (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" (identifier "uVar5") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (+ "+") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 & 0xff)" (( "(") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar5 = param_3[5] - uVar4;" (assignment_expression "uVar5 = param_3[5] - uVar4" (identifier "uVar5") (= "=") (binary_expression "param_3[5] - uVar4" (subscript_expression "param_3[5]" (identifier "param_3") ([ "[") (number_literal "5") (] "]")) (- "-") (identifier "uVar4"))) (; ";")) (expression_statement "bVar3 = (byte)param_3[0x15] & 0x1f;" (assignment_expression "bVar3 = (byte)param_3[0x15] & 0x1f" (identifier "bVar3") (= "=") (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (identifier "uVar5") (= "=") (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" (identifier "uVar5") (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "uVar5 >> 0x20 - bVar3" (identifier "uVar5") (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (identifier "uVar6") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x18)" (( "(") (binary_expression "uVar5 >> 0x18" (identifier "uVar5") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" (identifier "uVar5") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" (identifier "uVar5") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 & 0xff)" (( "(") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar6"))) (; ";")) (expression_statement "uVar5 = param_3[4] ^ uVar6;" (assignment_expression "uVar5 = param_3[4] ^ uVar6" (identifier "uVar5") (= "=") (binary_expression "param_3[4] ^ uVar6" (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]")) (^ "^") (identifier "uVar6"))) (; ";")) (expression_statement "bVar3 = (byte)param_3[0x14] & 0x1f;" (assignment_expression "bVar3 = (byte)param_3[0x14] & 0x1f" (identifier "bVar3") (= "=") (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (identifier "uVar5") (= "=") (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" (identifier "uVar5") (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "uVar5 >> 0x20 - bVar3" (identifier "uVar5") (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (identifier "uVar4") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x18)" (( "(") (binary_expression "uVar5 >> 0x18" (identifier "uVar5") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" (identifier "uVar5") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" (identifier "uVar5") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 & 0xff)" (( "(") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar5 = param_3[3] + uVar4;" (assignment_expression "uVar5 = param_3[3] + uVar4" (identifier "uVar5") (= "=") (binary_expression "param_3[3] + uVar4" (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")) (+ "+") (identifier "uVar4"))) (; ";")) (expression_statement "bVar3 = (byte)param_3[0x13] & 0x1f;" (assignment_expression "bVar3 = (byte)param_3[0x13] & 0x1f" (identifier "bVar3") (= "=") (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (identifier "uVar5") (= "=") (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" (identifier "uVar5") (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "uVar5 >> 0x20 - bVar3" (identifier "uVar5") (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (identifier "uVar6") (= "=") (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" (( "(") (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4))" (( "(") (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" (identifier "uVar5") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (^ "^") (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x18)" (( "(") (binary_expression "uVar5 >> 0x18" (identifier "uVar5") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")) (- "-") (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" (identifier "uVar5") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (+ "+") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 & 0xff)" (( "(") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar6"))) (; ";")) (expression_statement "uVar5 = param_3[2] - uVar6;" (assignment_expression "uVar5 = param_3[2] - uVar6" (identifier "uVar5") (= "=") (binary_expression "param_3[2] - uVar6" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (- "-") (identifier "uVar6"))) (; ";")) (expression_statement "bVar3 = (byte)param_3[0x12] & 0x1f;" (assignment_expression "bVar3 = (byte)param_3[0x12] & 0x1f" (identifier "bVar3") (= "=") (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (identifier "uVar5") (= "=") (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" (identifier "uVar5") (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "uVar5 >> 0x20 - bVar3" (identifier "uVar5") (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (identifier "uVar4") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar4" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n             *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x18)" (( "(") (binary_expression "uVar5 >> 0x18" (identifier "uVar5") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" (identifier "uVar5") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" (identifier "uVar5") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 & 0xff)" (( "(") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar5 = param_3[1] ^ uVar4;" (assignment_expression "uVar5 = param_3[1] ^ uVar4" (identifier "uVar5") (= "=") (binary_expression "param_3[1] ^ uVar4" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "bVar3 = (byte)param_3[0x11] & 0x1f;" (assignment_expression "bVar3 = (byte)param_3[0x11] & 0x1f" (identifier "bVar3") (= "=") (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 "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3;" (assignment_expression "uVar5 = uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (identifier "uVar5") (= "=") (binary_expression "uVar5 << bVar3 | uVar5 >> 0x20 - bVar3" (binary_expression "uVar5 << bVar3" (identifier "uVar5") (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "uVar5 >> 0x20 - bVar3" (identifier "uVar5") (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "iVar1 = *param_3;" (assignment_expression "iVar1 = *param_3" (identifier "iVar1") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6;" (assignment_expression "uVar6 = (*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (identifier "uVar6") (= "=") (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4) ^ uVar6" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4) ^\n            *(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (binary_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]) -\n            *(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (parenthesized_expression "(*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff])" (( "(") (binary_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4) +\n            (&DAT_00198a20)[uVar5 >> 8 & 0xff]" (pointer_expression "*(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (* "*") (cast_expression "(int *)(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar5 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x18) * 4" (call_expression "(ulong)(uVar5 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x18)" (( "(") (binary_expression "uVar5 >> 0x18" (identifier "uVar5") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (subscript_expression "(&DAT_00198a20)[uVar5 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar5 >> 8 & 0xff" (binary_expression "uVar5 >> 8" (identifier "uVar5") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (- "-") (pointer_expression "*(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar5 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar5 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar5 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar5 >> 0x10 & 0xff" (binary_expression "uVar5 >> 0x10" (identifier "uVar5") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (pointer_expression "*(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar5 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar5 & 0xff) * 4" (call_expression "(ulong)(uVar5 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar5 & 0xff)" (( "(") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar6"))) (; ";")) (expression_statement "iVar2 = param_3[0x10];" (assignment_expression "iVar2 = param_3[0x10]" (identifier "iVar2") (= "=") (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18;" (assignment_expression "param_2[1] = uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8 | uVar6 << 0x18" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8 | (uVar6 & 0xff00) << 8" (binary_expression "uVar6 >> 0x18 | (uVar6 & 0xff0000) >> 8" (binary_expression "uVar6 >> 0x18" (identifier "uVar6") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar6 & 0xff0000) >> 8" (parenthesized_expression "(uVar6 & 0xff0000)" (( "(") (binary_expression "uVar6 & 0xff0000" (identifier "uVar6") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar6 & 0xff00) << 8" (parenthesized_expression "(uVar6 & 0xff00)" (( "(") (binary_expression "uVar6 & 0xff00" (identifier "uVar6") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar6 << 0x18" (identifier "uVar6") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "bVar3 = (byte)iVar2 & 0x1f;" (assignment_expression "bVar3 = (byte)iVar2 & 0x1f" (identifier "bVar3") (= "=") (binary_expression "(byte)iVar2 & 0x1f" (cast_expression "(byte)iVar2" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar2")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3;" (assignment_expression "uVar6 = iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3" (identifier "uVar6") (= "=") (binary_expression "iVar1 + uVar6 << bVar3 | iVar1 + uVar6 >> 0x20 - bVar3" (binary_expression "iVar1 + uVar6 << bVar3" (binary_expression "iVar1 + uVar6" (identifier "iVar1") (+ "+") (identifier "uVar6")) (<< "<<") (identifier "bVar3")) (| "|") (binary_expression "iVar1 + uVar6 >> 0x20 - bVar3" (binary_expression "iVar1 + uVar6" (identifier "iVar1") (+ "+") (identifier "uVar6")) (>> ">>") (binary_expression "0x20 - bVar3" (number_literal "0x20") (- "-") (identifier "bVar3"))))) (; ";")) (expression_statement "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4;" (assignment_expression "uVar4 = ((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4" (identifier "uVar4") (= "=") (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4) ^ uVar4" (binary_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]) +\n            *(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4)" (parenthesized_expression "((*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff])" (( "(") (binary_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)) -\n            (&DAT_00198a20)[uVar6 >> 8 & 0xff]" (parenthesized_expression "(*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4))" (( "(") (binary_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4) ^\n             *(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)" (pointer_expression "*(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198e20 + (ulong)(uVar6 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00198e20" (& "&") (identifier "DAT_00198e20")) (+ "+") (binary_expression "(ulong)(uVar6 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar6 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar6 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar6 >> 0x10 & 0xff" (binary_expression "uVar6 >> 0x10" (identifier "uVar6") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (^ "^") (pointer_expression "*(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_00199220 + (ulong)(uVar6 >> 0x18) * 4" (pointer_expression "&DAT_00199220" (& "&") (identifier "DAT_00199220")) (+ "+") (binary_expression "(ulong)(uVar6 >> 0x18) * 4" (call_expression "(ulong)(uVar6 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar6 >> 0x18)" (( "(") (binary_expression "uVar6 >> 0x18" (identifier "uVar6") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) () ")")) (- "-") (subscript_expression "(&DAT_00198a20)[uVar6 >> 8 & 0xff]" (parenthesized_expression "(&DAT_00198a20)" (( "(") (pointer_expression "&DAT_00198a20" (& "&") (identifier "DAT_00198a20")) () ")")) ([ "[") (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" (identifier "uVar6") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]"))) () ")")) (+ "+") (pointer_expression "*(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4)" (* "*") (cast_expression "(int *)(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00198620 + (ulong)(uVar6 & 0xff) * 4" (pointer_expression "&DAT_00198620" (& "&") (identifier "DAT_00198620")) (+ "+") (binary_expression "(ulong)(uVar6 & 0xff) * 4" (call_expression "(ulong)(uVar6 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar6 & 0xff)" (( "(") (binary_expression "uVar6 & 0xff" (identifier "uVar6") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (identifier "uVar4"))) (; ";")) (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",0x256);" (call_expression "crypt_argchk("ct != NULL","src/ciphers/cast5.c",0x256)" (identifier "crypt_argchk") (argument_list "("ct != NULL","src/ciphers/cast5.c",0x256)" (( "(") (string_literal ""ct != NULL"" (" """) (string_content "ct != NULL") (" """)) (, ",") (string_literal ""src/ciphers/cast5.c"" (" """) (string_content "src/ciphers/cast5.c") (" """)) (, ",") (number_literal "0x256") () ")"))) (; ";")) (} "}")))

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

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

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


(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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (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: (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))))) (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: (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: (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: (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: (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: (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)))) (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: (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: (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: (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)))))))) 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: (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: (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: (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: (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: (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) 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: (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 0x00114430 */

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

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

