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

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

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint *puVar7;
  uint uVar8;
  
  if (skey == (symmetric_key *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);
  }
  if (pt != (uchar *)0x0) {
    if (ct == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);
    }
    uVar1 = *(uint *)ct;
    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;
    uVar1 = *(uint *)(ct + 4);
    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;
    uVar1 = *(uint *)(ct + 8);
    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;
    uVar1 = *(uint *)(ct + 0xc);
    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;
    uVar1 = (skey->des).ek[6];
    puVar7 = RC + 0x10;
    do {
      uVar4 = uVar6 ^ uVar8;
      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;
      uVar2 = uVar2 ^ (skey->des).ek[5] ^ uVar4;
      uVar3 = uVar4 ^ (skey->des).ek[7] ^ uVar3;
      uVar4 = uVar2 ^ uVar3;
      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;
      uVar6 = uVar6 ^ uVar1 ^ uVar4;
      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;
      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;
      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);
      uVar2 = ~uVar3;
      uVar4 = uVar4 ^ uVar8 ^ (skey->des).ek[4] ^ *puVar7 ^ uVar2 & uVar6;
      uVar2 = uVar6 ^ uVar5 ^ uVar2;
      uVar6 = uVar4 ^ uVar2;
      uVar3 = (uVar2 | uVar4) ^ uVar3;
      uVar8 = uVar6 & uVar3 ^ uVar5;
      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;
      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;
      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;
      puVar7 = puVar7 + -1;
    } while (puVar7 != RC);
    uVar4 = uVar8 ^ uVar6;
    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);
    uVar2 = uVar2 ^ (skey->des).ek[5];
    uVar3 = (skey->des).ek[7] ^ uVar3;
    uVar5 = uVar2 ^ uVar3;
    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);
    uVar8 = uVar8 ^ (skey->des).ek[4] ^ uVar5;
    *(uint *)pt = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;
    uVar2 = uVar2 ^ uVar4;
    *(uint *)(pt + 4) =
         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;
    uVar5 = uVar1 ^ uVar6 ^ uVar5;
    *(uint *)(pt + 8) =
         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;
    uVar4 = uVar4 ^ uVar3;
    *(uint *)(pt + 0xc) =
         uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae);
}



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

undefined8 noekeon_ecb_decrypt(uint *param_1,uint *param_2,long param_3)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint *puVar7;
  uint uVar8;
  
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);
  }
  if (param_2 != (uint *)0x0) {
    if (param_1 == (uint *)0x0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);
    }
    uVar1 = *param_1;
    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;
    uVar1 = param_1[1];
    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;
    uVar1 = param_1[2];
    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;
    uVar1 = param_1[3];
    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;
    uVar1 = *(uint *)(param_3 + 0x18);
    puVar7 = &DAT_001ab160;
    do {
      uVar4 = uVar6 ^ uVar8;
      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;
      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;
      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;
      uVar4 = uVar2 ^ uVar3;
      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;
      uVar6 = uVar6 ^ uVar1 ^ uVar4;
      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;
      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;
      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);
      uVar2 = ~uVar3;
      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;
      uVar2 = uVar6 ^ uVar5 ^ uVar2;
      uVar6 = uVar4 ^ uVar2;
      uVar3 = (uVar2 | uVar4) ^ uVar3;
      uVar8 = uVar6 & uVar3 ^ uVar5;
      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;
      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;
      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;
      puVar7 = puVar7 + -1;
    } while (puVar7 != &DAT_001ab120);
    uVar4 = uVar8 ^ uVar6;
    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);
    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);
    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;
    uVar5 = uVar2 ^ uVar3;
    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);
    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;
    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;
    uVar2 = uVar2 ^ uVar4;
    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;
    uVar5 = uVar1 ^ uVar6 ^ uVar5;
    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;
    uVar4 = uVar4 ^ uVar3;
    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae);
}


JMP qword ptr [0x001df800]
(translation_unit "/* WARNING: Switch with 1 destination removed at 0x00114400 */\n\nundefined8 noekeon_ecb_decrypt(uint *param_1,uint *param_2,long param_3)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  \n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_1 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *param_1;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[1];\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[2];\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[3];\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(param_3 + 0x18);\n    puVar7 = &DAT_001ab160;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);\n    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;\n    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae);\n}\n\n" comment (function_definition "undefined8 noekeon_ecb_decrypt(uint *param_1,uint *param_2,long param_3)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  \n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_1 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *param_1;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[1];\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[2];\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[3];\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(param_3 + 0x18);\n    puVar7 = &DAT_001ab160;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);\n    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;\n    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae);\n}" type_identifier (function_declarator "noekeon_ecb_decrypt(uint *param_1,uint *param_2,long param_3)" identifier (parameter_list "(uint *param_1,uint *param_2,long 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 "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  \n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_1 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *param_1;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[1];\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[2];\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[3];\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(param_3 + 0x18);\n    puVar7 = &DAT_001ab160;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);\n    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;\n    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae);\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (if_statement "if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }" { comment (expression_statement "crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad)" identifier (argument_list "("skey != NULL","src/ciphers/noekeon.c",0xad)" ( (string_literal ""skey != NULL"" " string_content ") , (string_literal ""src/ciphers/noekeon.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 != (uint *)0x0) {\n    if (param_1 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *param_1;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[1];\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[2];\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[3];\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(param_3 + 0x18);\n    puVar7 = &DAT_001ab160;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);\n    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;\n    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }" if (parenthesized_expression "(param_2 != (uint *)0x0)" ( (binary_expression "param_2 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (param_1 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *param_1;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[1];\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[2];\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[3];\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(param_3 + 0x18);\n    puVar7 = &DAT_001ab160;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);\n    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;\n    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }" { (if_statement "if (param_1 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }" if (parenthesized_expression "(param_1 == (uint *)0x0)" ( (binary_expression "param_1 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }" { comment (expression_statement "crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);" (call_expression "crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf)" identifier (argument_list "("ct != NULL","src/ciphers/noekeon.c",0xaf)" ( (string_literal ""ct != NULL"" " string_content ") , (string_literal ""src/ciphers/noekeon.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" identifier = (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar1 = param_1[1];" (assignment_expression "uVar1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" identifier = (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar1 = param_1[2];" (assignment_expression "uVar1 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" identifier = (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar1 = param_1[3];" (assignment_expression "uVar1 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" identifier = (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar1 = *(uint *)(param_3 + 0x18);" (assignment_expression "uVar1 = *(uint *)(param_3 + 0x18)" identifier = (pointer_expression "*(uint *)(param_3 + 0x18)" * (cast_expression "(uint *)(param_3 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x18)" ( (binary_expression "param_3 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = &DAT_001ab160;" (assignment_expression "puVar7 = &DAT_001ab160" identifier = (pointer_expression "&DAT_001ab160" & identifier)) ;) (do_statement "do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);" do (compound_statement "{\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    }" { (expression_statement "uVar4 = uVar6 ^ uVar8;" (assignment_expression "uVar4 = uVar6 ^ uVar8" identifier = (binary_expression "uVar6 ^ uVar8" identifier ^ identifier)) ;) (expression_statement "uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;" (assignment_expression "uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4" identifier = (binary_expression "(uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4" (binary_expression "(uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18)" (parenthesized_expression "(uVar4 << 8 | uVar4 >> 0x18)" ( (binary_expression "uVar4 << 8 | uVar4 >> 0x18" (binary_expression "uVar4 << 8" identifier << number_literal) | (binary_expression "uVar4 >> 0x18" identifier >> number_literal)) )) ^ (parenthesized_expression "(uVar4 >> 8 | uVar4 << 0x18)" ( (binary_expression "uVar4 >> 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 8" identifier >> number_literal) | (binary_expression "uVar4 << 0x18" identifier << number_literal)) ))) ^ identifier)) ;) (expression_statement "uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;" (assignment_expression "uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4" identifier = (binary_expression "uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4" (binary_expression "uVar2 ^ *(uint *)(param_3 + 0x14)" identifier ^ (pointer_expression "*(uint *)(param_3 + 0x14)" * (cast_expression "(uint *)(param_3 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x14)" ( (binary_expression "param_3 + 0x14" identifier + number_literal) ))))) ^ identifier)) ;) (expression_statement "uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;" (assignment_expression "uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3" identifier = (binary_expression "uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3" (binary_expression "uVar4 ^ *(uint *)(param_3 + 0x1c)" identifier ^ (pointer_expression "*(uint *)(param_3 + 0x1c)" * (cast_expression "(uint *)(param_3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) ))))) ^ identifier)) ;) (expression_statement "uVar4 = uVar2 ^ uVar3;" (assignment_expression "uVar4 = uVar2 ^ uVar3" identifier = (binary_expression "uVar2 ^ uVar3" identifier ^ identifier)) ;) (expression_statement "uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;" (assignment_expression "uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4" identifier = (binary_expression "(uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4" (binary_expression "(uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18)" (parenthesized_expression "(uVar4 >> 8 | uVar4 << 0x18)" ( (binary_expression "uVar4 >> 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 8" identifier >> number_literal) | (binary_expression "uVar4 << 0x18" identifier << number_literal)) )) ^ (parenthesized_expression "(uVar4 << 8 | uVar4 >> 0x18)" ( (binary_expression "uVar4 << 8 | uVar4 >> 0x18" (binary_expression "uVar4 << 8" identifier << number_literal) | (binary_expression "uVar4 >> 0x18" identifier >> number_literal)) ))) ^ identifier)) ;) (expression_statement "uVar6 = uVar6 ^ uVar1 ^ uVar4;" (assignment_expression "uVar6 = uVar6 ^ uVar1 ^ uVar4" identifier = (binary_expression "uVar6 ^ uVar1 ^ uVar4" (binary_expression "uVar6 ^ uVar1" identifier ^ identifier) ^ identifier)) ;) (expression_statement "uVar6 = uVar6 << 5 | uVar6 >> 0x1b;" (assignment_expression "uVar6 = uVar6 << 5 | uVar6 >> 0x1b" identifier = (binary_expression "uVar6 << 5 | uVar6 >> 0x1b" (binary_expression "uVar6 << 5" identifier << number_literal) | (binary_expression "uVar6 >> 0x1b" identifier >> number_literal))) ;) (expression_statement "uVar5 = uVar3 << 2 | uVar3 >> 0x1e;" (assignment_expression "uVar5 = uVar3 << 2 | uVar3 >> 0x1e" identifier = (binary_expression "uVar3 << 2 | uVar3 >> 0x1e" (binary_expression "uVar3 << 2" identifier << number_literal) | (binary_expression "uVar3 >> 0x1e" identifier >> number_literal))) ;) (expression_statement "uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);" (assignment_expression "uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5)" identifier = (binary_expression "(uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5)" (parenthesized_expression "(uVar2 << 1 | (uint)((int)uVar2 < 0))" ( (binary_expression "uVar2 << 1 | (uint)((int)uVar2 < 0)" (binary_expression "uVar2 << 1" identifier << number_literal) | (call_expression "(uint)((int)uVar2 < 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar2 < 0)" ( (binary_expression "(int)uVar2 < 0" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )))) )) ^ (parenthesized_expression "(uVar6 | uVar5)" ( (binary_expression "uVar6 | uVar5" identifier | identifier) )))) ;) (expression_statement "uVar2 = ~uVar3;" (assignment_expression "uVar2 = ~uVar3" identifier = (unary_expression "~uVar3" ~ identifier)) ;) (expression_statement "uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;" (assignment_expression "uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6" identifier = (binary_expression "uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6" (binary_expression "uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7" (binary_expression "uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10)" (binary_expression "uVar4 ^ uVar8" identifier ^ identifier) ^ (pointer_expression "*(uint *)(param_3 + 0x10)" * (cast_expression "(uint *)(param_3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) ))))) ^ (pointer_expression "*puVar7" * identifier)) ^ (binary_expression "uVar2 & uVar6" identifier & identifier))) ;) (expression_statement "uVar2 = uVar6 ^ uVar5 ^ uVar2;" (assignment_expression "uVar2 = uVar6 ^ uVar5 ^ uVar2" identifier = (binary_expression "uVar6 ^ uVar5 ^ uVar2" (binary_expression "uVar6 ^ uVar5" identifier ^ identifier) ^ identifier)) ;) (expression_statement "uVar6 = uVar4 ^ uVar2;" (assignment_expression "uVar6 = uVar4 ^ uVar2" identifier = (binary_expression "uVar4 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar3 = (uVar2 | uVar4) ^ uVar3;" (assignment_expression "uVar3 = (uVar2 | uVar4) ^ uVar3" identifier = (binary_expression "(uVar2 | uVar4) ^ uVar3" (parenthesized_expression "(uVar2 | uVar4)" ( (binary_expression "uVar2 | uVar4" identifier | identifier) )) ^ identifier)) ;) (expression_statement "uVar8 = uVar6 & uVar3 ^ uVar5;" (assignment_expression "uVar8 = uVar6 & uVar3 ^ uVar5" identifier = (binary_expression "uVar6 & uVar3 ^ uVar5" (binary_expression "uVar6 & uVar3" identifier & identifier) ^ identifier)) ;) (expression_statement "uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;" (assignment_expression "uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f" identifier = (binary_expression "uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f" (binary_expression "uVar3 >> 1" identifier >> number_literal) | (binary_expression "(uint)((uVar3 & 1) != 0) << 0x1f" (call_expression "(uint)((uVar3 & 1) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar3 & 1) != 0)" ( (binary_expression "(uVar3 & 1) != 0" (parenthesized_expression "(uVar3 & 1)" ( (binary_expression "uVar3 & 1" identifier & number_literal) )) != number_literal) ))) << number_literal))) ;) (expression_statement "uVar6 = uVar6 >> 5 | uVar6 << 0x1b;" (assignment_expression "uVar6 = uVar6 >> 5 | uVar6 << 0x1b" identifier = (binary_expression "uVar6 >> 5 | uVar6 << 0x1b" (binary_expression "uVar6 >> 5" identifier >> number_literal) | (binary_expression "uVar6 << 0x1b" identifier << number_literal))) ;) (expression_statement "uVar3 = uVar4 >> 2 | uVar4 << 0x1e;" (assignment_expression "uVar3 = uVar4 >> 2 | uVar4 << 0x1e" identifier = (binary_expression "uVar4 >> 2 | uVar4 << 0x1e" (binary_expression "uVar4 >> 2" identifier >> number_literal) | (binary_expression "uVar4 << 0x1e" identifier << number_literal))) ;) (expression_statement "puVar7 = puVar7 + -1;" (assignment_expression "puVar7 = puVar7 + -1" identifier = (binary_expression "puVar7 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != &DAT_001ab120)" ( (binary_expression "puVar7 != &DAT_001ab120" identifier != (pointer_expression "&DAT_001ab120" & identifier)) )) ;) (expression_statement "uVar4 = uVar8 ^ uVar6;" (assignment_expression "uVar4 = uVar8 ^ uVar6" identifier = (binary_expression "uVar8 ^ uVar6" identifier ^ identifier)) ;) (expression_statement "uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);" (assignment_expression "uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18)" identifier = (binary_expression "uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18)" (binary_expression "uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18)" identifier ^ (parenthesized_expression "(uVar4 << 8 | uVar4 >> 0x18)" ( (binary_expression "uVar4 << 8 | uVar4 >> 0x18" (binary_expression "uVar4 << 8" identifier << number_literal) | (binary_expression "uVar4 >> 0x18" identifier >> number_literal)) ))) ^ (parenthesized_expression "(uVar4 >> 8 | uVar4 << 0x18)" ( (binary_expression "uVar4 >> 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 8" identifier >> number_literal) | (binary_expression "uVar4 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);" (assignment_expression "uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14)" identifier = (binary_expression "uVar2 ^ *(uint *)(param_3 + 0x14)" identifier ^ (pointer_expression "*(uint *)(param_3 + 0x14)" * (cast_expression "(uint *)(param_3 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x14)" ( (binary_expression "param_3 + 0x14" identifier + number_literal) )))))) ;) (expression_statement "uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;" (assignment_expression "uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3" identifier = (binary_expression "*(uint *)(param_3 + 0x1c) ^ uVar3" (pointer_expression "*(uint *)(param_3 + 0x1c)" * (cast_expression "(uint *)(param_3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) )))) ^ identifier)) ;) (expression_statement "uVar5 = uVar2 ^ uVar3;" (assignment_expression "uVar5 = uVar2 ^ uVar3" identifier = (binary_expression "uVar2 ^ uVar3" identifier ^ identifier)) ;) (expression_statement "uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);" (assignment_expression "uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18)" identifier = (binary_expression "uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18)" (binary_expression "uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18)" identifier ^ (parenthesized_expression "(uVar5 << 8 | uVar5 >> 0x18)" ( (binary_expression "uVar5 << 8 | uVar5 >> 0x18" (binary_expression "uVar5 << 8" identifier << number_literal) | (binary_expression "uVar5 >> 0x18" identifier >> number_literal)) ))) ^ (parenthesized_expression "(uVar5 >> 8 | uVar5 << 0x18)" ( (binary_expression "uVar5 >> 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 8" identifier >> number_literal) | (binary_expression "uVar5 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;" (assignment_expression "uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5" identifier = (binary_expression "uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5" (binary_expression "uVar8 ^ *(uint *)(param_3 + 0x10)" identifier ^ (pointer_expression "*(uint *)(param_3 + 0x10)" * (cast_expression "(uint *)(param_3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) ))))) ^ identifier)) ;) (expression_statement "*param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "*param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar2 = uVar2 ^ uVar4;" (assignment_expression "uVar2 = uVar2 ^ uVar4" identifier = (binary_expression "uVar2 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar5 = uVar1 ^ uVar6 ^ uVar5;" (assignment_expression "uVar5 = uVar1 ^ uVar6 ^ uVar5" identifier = (binary_expression "uVar1 ^ uVar6 ^ uVar5" (binary_expression "uVar1 ^ uVar6" identifier ^ identifier) ^ identifier)) ;) (expression_statement "param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (subscript_expression "param_2[2]" 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 "uVar4 = uVar4 ^ uVar3;" (assignment_expression "uVar4 = uVar4 ^ uVar3" identifier = (binary_expression "uVar4 ^ uVar3" identifier ^ identifier)) ;) (expression_statement "param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;" (assignment_expression "param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (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("pt != NULL","src/ciphers/noekeon.c",0xae);" (call_expression "crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae)" identifier (argument_list "("pt != NULL","src/ciphers/noekeon.c",0xae)" ( (string_literal ""pt != NULL"" " string_content ") , (string_literal ""src/ciphers/noekeon.c"" " string_content ") , number_literal ))) ;) })))
(translation_unit "/* WARNING: Switch with 1 destination removed at 0x00114400 */\n\nint noekeon_ecb_decrypt(uchar *ct,uchar *pt,symmetric_key *skey)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  \n  if (skey == (symmetric_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }\n  if (pt != (uchar *)0x0) {\n    if (ct == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *(uint *)ct;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(ct + 4);\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(ct + 8);\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(ct + 0xc);\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = (skey->des).ek[6];\n    puVar7 = RC + 0x10;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ (skey->des).ek[5] ^ uVar4;\n      uVar3 = uVar4 ^ (skey->des).ek[7] ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ (skey->des).ek[4] ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != RC);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ (skey->des).ek[5];\n    uVar3 = (skey->des).ek[7] ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ (skey->des).ek[4] ^ uVar5;\n    *(uint *)pt = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    *(uint *)(pt + 4) =\n         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    *(uint *)(pt + 8) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    *(uint *)(pt + 0xc) =\n         uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae);\n}\n\n" comment (function_definition "int noekeon_ecb_decrypt(uchar *ct,uchar *pt,symmetric_key *skey)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  \n  if (skey == (symmetric_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }\n  if (pt != (uchar *)0x0) {\n    if (ct == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *(uint *)ct;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(ct + 4);\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(ct + 8);\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(ct + 0xc);\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = (skey->des).ek[6];\n    puVar7 = RC + 0x10;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ (skey->des).ek[5] ^ uVar4;\n      uVar3 = uVar4 ^ (skey->des).ek[7] ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ (skey->des).ek[4] ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != RC);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ (skey->des).ek[5];\n    uVar3 = (skey->des).ek[7] ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ (skey->des).ek[4] ^ uVar5;\n    *(uint *)pt = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    *(uint *)(pt + 4) =\n         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    *(uint *)(pt + 8) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    *(uint *)(pt + 0xc) =\n         uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae);\n}" primitive_type (function_declarator "noekeon_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  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  \n  if (skey == (symmetric_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }\n  if (pt != (uchar *)0x0) {\n    if (ct == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *(uint *)ct;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(ct + 4);\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(ct + 8);\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(ct + 0xc);\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = (skey->des).ek[6];\n    puVar7 = RC + 0x10;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ (skey->des).ek[5] ^ uVar4;\n      uVar3 = uVar4 ^ (skey->des).ek[7] ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ (skey->des).ek[4] ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != RC);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ (skey->des).ek[5];\n    uVar3 = (skey->des).ek[7] ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ (skey->des).ek[4] ^ uVar5;\n    *(uint *)pt = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    *(uint *)(pt + 4) =\n         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    *(uint *)(pt + 8) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    *(uint *)(pt + 0xc) =\n         uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae);\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (if_statement "if (skey == (symmetric_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\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/noekeon.c",0xad);\n  }" { comment (expression_statement "crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad)" identifier (argument_list "("skey != NULL","src/ciphers/noekeon.c",0xad)" ( (string_literal ""skey != NULL"" " string_content ") , (string_literal ""src/ciphers/noekeon.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (pt != (uchar *)0x0) {\n    if (ct == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *(uint *)ct;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(ct + 4);\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(ct + 8);\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(ct + 0xc);\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = (skey->des).ek[6];\n    puVar7 = RC + 0x10;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ (skey->des).ek[5] ^ uVar4;\n      uVar3 = uVar4 ^ (skey->des).ek[7] ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ (skey->des).ek[4] ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != RC);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ (skey->des).ek[5];\n    uVar3 = (skey->des).ek[7] ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ (skey->des).ek[4] ^ uVar5;\n    *(uint *)pt = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    *(uint *)(pt + 4) =\n         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    *(uint *)(pt + 8) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    *(uint *)(pt + 0xc) =\n         uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\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    if (ct == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *(uint *)ct;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(ct + 4);\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(ct + 8);\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(ct + 0xc);\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = (skey->des).ek[6];\n    puVar7 = RC + 0x10;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ (skey->des).ek[5] ^ uVar4;\n      uVar3 = uVar4 ^ (skey->des).ek[7] ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ (skey->des).ek[4] ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != RC);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ (skey->des).ek[5];\n    uVar3 = (skey->des).ek[7] ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ (skey->des).ek[4] ^ uVar5;\n    *(uint *)pt = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    *(uint *)(pt + 4) =\n         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    *(uint *)(pt + 8) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    *(uint *)(pt + 0xc) =\n         uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }" { (if_statement "if (ct == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\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                    /* WARNING: Subroutine does not return */\n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }" { comment (expression_statement "crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);" (call_expression "crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf)" identifier (argument_list "("ct != NULL","src/ciphers/noekeon.c",0xaf)" ( (string_literal ""ct != NULL"" " string_content ") , (string_literal ""src/ciphers/noekeon.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar1 = *(uint *)ct;" (assignment_expression "uVar1 = *(uint *)ct" identifier = (pointer_expression "*(uint *)ct" * (cast_expression "(uint *)ct" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" identifier = (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar1 = *(uint *)(ct + 4);" (assignment_expression "uVar1 = *(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 "uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" identifier = (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar1 = *(uint *)(ct + 8);" (assignment_expression "uVar1 = *(uint *)(ct + 8)" identifier = (pointer_expression "*(uint *)(ct + 8)" * (cast_expression "(uint *)(ct + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ct + 8)" ( (binary_expression "ct + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" identifier = (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar1 = *(uint *)(ct + 0xc);" (assignment_expression "uVar1 = *(uint *)(ct + 0xc)" identifier = (pointer_expression "*(uint *)(ct + 0xc)" * (cast_expression "(uint *)(ct + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ct + 0xc)" ( (binary_expression "ct + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" identifier = (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar1 = (skey->des).ek[6];" (assignment_expression "uVar1 = (skey->des).ek[6]" identifier = (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 ])) ;) (expression_statement "puVar7 = RC + 0x10;" (assignment_expression "puVar7 = RC + 0x10" identifier = (binary_expression "RC + 0x10" identifier + number_literal)) ;) (do_statement "do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ (skey->des).ek[5] ^ uVar4;\n      uVar3 = uVar4 ^ (skey->des).ek[7] ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ (skey->des).ek[4] ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != RC);" do (compound_statement "{\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ (skey->des).ek[5] ^ uVar4;\n      uVar3 = uVar4 ^ (skey->des).ek[7] ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ (skey->des).ek[4] ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    }" { (expression_statement "uVar4 = uVar6 ^ uVar8;" (assignment_expression "uVar4 = uVar6 ^ uVar8" identifier = (binary_expression "uVar6 ^ uVar8" identifier ^ identifier)) ;) (expression_statement "uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;" (assignment_expression "uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4" identifier = (binary_expression "(uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4" (binary_expression "(uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18)" (parenthesized_expression "(uVar4 << 8 | uVar4 >> 0x18)" ( (binary_expression "uVar4 << 8 | uVar4 >> 0x18" (binary_expression "uVar4 << 8" identifier << number_literal) | (binary_expression "uVar4 >> 0x18" identifier >> number_literal)) )) ^ (parenthesized_expression "(uVar4 >> 8 | uVar4 << 0x18)" ( (binary_expression "uVar4 >> 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 8" identifier >> number_literal) | (binary_expression "uVar4 << 0x18" identifier << number_literal)) ))) ^ identifier)) ;) (expression_statement "uVar2 = uVar2 ^ (skey->des).ek[5] ^ uVar4;" (assignment_expression "uVar2 = uVar2 ^ (skey->des).ek[5] ^ uVar4" identifier = (binary_expression "uVar2 ^ (skey->des).ek[5] ^ uVar4" (binary_expression "uVar2 ^ (skey->des).ek[5]" identifier ^ (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 "uVar3 = uVar4 ^ (skey->des).ek[7] ^ uVar3;" (assignment_expression "uVar3 = uVar4 ^ (skey->des).ek[7] ^ uVar3" identifier = (binary_expression "uVar4 ^ (skey->des).ek[7] ^ uVar3" (binary_expression "uVar4 ^ (skey->des).ek[7]" identifier ^ (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 "uVar4 = uVar2 ^ uVar3;" (assignment_expression "uVar4 = uVar2 ^ uVar3" identifier = (binary_expression "uVar2 ^ uVar3" identifier ^ identifier)) ;) (expression_statement "uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;" (assignment_expression "uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4" identifier = (binary_expression "(uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4" (binary_expression "(uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18)" (parenthesized_expression "(uVar4 >> 8 | uVar4 << 0x18)" ( (binary_expression "uVar4 >> 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 8" identifier >> number_literal) | (binary_expression "uVar4 << 0x18" identifier << number_literal)) )) ^ (parenthesized_expression "(uVar4 << 8 | uVar4 >> 0x18)" ( (binary_expression "uVar4 << 8 | uVar4 >> 0x18" (binary_expression "uVar4 << 8" identifier << number_literal) | (binary_expression "uVar4 >> 0x18" identifier >> number_literal)) ))) ^ identifier)) ;) (expression_statement "uVar6 = uVar6 ^ uVar1 ^ uVar4;" (assignment_expression "uVar6 = uVar6 ^ uVar1 ^ uVar4" identifier = (binary_expression "uVar6 ^ uVar1 ^ uVar4" (binary_expression "uVar6 ^ uVar1" identifier ^ identifier) ^ identifier)) ;) (expression_statement "uVar6 = uVar6 << 5 | uVar6 >> 0x1b;" (assignment_expression "uVar6 = uVar6 << 5 | uVar6 >> 0x1b" identifier = (binary_expression "uVar6 << 5 | uVar6 >> 0x1b" (binary_expression "uVar6 << 5" identifier << number_literal) | (binary_expression "uVar6 >> 0x1b" identifier >> number_literal))) ;) (expression_statement "uVar5 = uVar3 << 2 | uVar3 >> 0x1e;" (assignment_expression "uVar5 = uVar3 << 2 | uVar3 >> 0x1e" identifier = (binary_expression "uVar3 << 2 | uVar3 >> 0x1e" (binary_expression "uVar3 << 2" identifier << number_literal) | (binary_expression "uVar3 >> 0x1e" identifier >> number_literal))) ;) (expression_statement "uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);" (assignment_expression "uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5)" identifier = (binary_expression "(uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5)" (parenthesized_expression "(uVar2 << 1 | (uint)((int)uVar2 < 0))" ( (binary_expression "uVar2 << 1 | (uint)((int)uVar2 < 0)" (binary_expression "uVar2 << 1" identifier << number_literal) | (call_expression "(uint)((int)uVar2 < 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar2 < 0)" ( (binary_expression "(int)uVar2 < 0" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )))) )) ^ (parenthesized_expression "(uVar6 | uVar5)" ( (binary_expression "uVar6 | uVar5" identifier | identifier) )))) ;) (expression_statement "uVar2 = ~uVar3;" (assignment_expression "uVar2 = ~uVar3" identifier = (unary_expression "~uVar3" ~ identifier)) ;) (expression_statement "uVar4 = uVar4 ^ uVar8 ^ (skey->des).ek[4] ^ *puVar7 ^ uVar2 & uVar6;" (assignment_expression "uVar4 = uVar4 ^ uVar8 ^ (skey->des).ek[4] ^ *puVar7 ^ uVar2 & uVar6" identifier = (binary_expression "uVar4 ^ uVar8 ^ (skey->des).ek[4] ^ *puVar7 ^ uVar2 & uVar6" (binary_expression "uVar4 ^ uVar8 ^ (skey->des).ek[4] ^ *puVar7" (binary_expression "uVar4 ^ uVar8 ^ (skey->des).ek[4]" (binary_expression "uVar4 ^ uVar8" identifier ^ identifier) ^ (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 ])) ^ (pointer_expression "*puVar7" * identifier)) ^ (binary_expression "uVar2 & uVar6" identifier & identifier))) ;) (expression_statement "uVar2 = uVar6 ^ uVar5 ^ uVar2;" (assignment_expression "uVar2 = uVar6 ^ uVar5 ^ uVar2" identifier = (binary_expression "uVar6 ^ uVar5 ^ uVar2" (binary_expression "uVar6 ^ uVar5" identifier ^ identifier) ^ identifier)) ;) (expression_statement "uVar6 = uVar4 ^ uVar2;" (assignment_expression "uVar6 = uVar4 ^ uVar2" identifier = (binary_expression "uVar4 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar3 = (uVar2 | uVar4) ^ uVar3;" (assignment_expression "uVar3 = (uVar2 | uVar4) ^ uVar3" identifier = (binary_expression "(uVar2 | uVar4) ^ uVar3" (parenthesized_expression "(uVar2 | uVar4)" ( (binary_expression "uVar2 | uVar4" identifier | identifier) )) ^ identifier)) ;) (expression_statement "uVar8 = uVar6 & uVar3 ^ uVar5;" (assignment_expression "uVar8 = uVar6 & uVar3 ^ uVar5" identifier = (binary_expression "uVar6 & uVar3 ^ uVar5" (binary_expression "uVar6 & uVar3" identifier & identifier) ^ identifier)) ;) (expression_statement "uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;" (assignment_expression "uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f" identifier = (binary_expression "uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f" (binary_expression "uVar3 >> 1" identifier >> number_literal) | (binary_expression "(uint)((uVar3 & 1) != 0) << 0x1f" (call_expression "(uint)((uVar3 & 1) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar3 & 1) != 0)" ( (binary_expression "(uVar3 & 1) != 0" (parenthesized_expression "(uVar3 & 1)" ( (binary_expression "uVar3 & 1" identifier & number_literal) )) != number_literal) ))) << number_literal))) ;) (expression_statement "uVar6 = uVar6 >> 5 | uVar6 << 0x1b;" (assignment_expression "uVar6 = uVar6 >> 5 | uVar6 << 0x1b" identifier = (binary_expression "uVar6 >> 5 | uVar6 << 0x1b" (binary_expression "uVar6 >> 5" identifier >> number_literal) | (binary_expression "uVar6 << 0x1b" identifier << number_literal))) ;) (expression_statement "uVar3 = uVar4 >> 2 | uVar4 << 0x1e;" (assignment_expression "uVar3 = uVar4 >> 2 | uVar4 << 0x1e" identifier = (binary_expression "uVar4 >> 2 | uVar4 << 0x1e" (binary_expression "uVar4 >> 2" identifier >> number_literal) | (binary_expression "uVar4 << 0x1e" identifier << number_literal))) ;) (expression_statement "puVar7 = puVar7 + -1;" (assignment_expression "puVar7 = puVar7 + -1" identifier = (binary_expression "puVar7 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != RC)" ( (binary_expression "puVar7 != RC" identifier != identifier) )) ;) (expression_statement "uVar4 = uVar8 ^ uVar6;" (assignment_expression "uVar4 = uVar8 ^ uVar6" identifier = (binary_expression "uVar8 ^ uVar6" identifier ^ identifier)) ;) (expression_statement "uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);" (assignment_expression "uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18)" identifier = (binary_expression "uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18)" (binary_expression "uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18)" identifier ^ (parenthesized_expression "(uVar4 << 8 | uVar4 >> 0x18)" ( (binary_expression "uVar4 << 8 | uVar4 >> 0x18" (binary_expression "uVar4 << 8" identifier << number_literal) | (binary_expression "uVar4 >> 0x18" identifier >> number_literal)) ))) ^ (parenthesized_expression "(uVar4 >> 8 | uVar4 << 0x18)" ( (binary_expression "uVar4 >> 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 8" identifier >> number_literal) | (binary_expression "uVar4 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "uVar2 = uVar2 ^ (skey->des).ek[5];" (assignment_expression "uVar2 = uVar2 ^ (skey->des).ek[5]" identifier = (binary_expression "uVar2 ^ (skey->des).ek[5]" identifier ^ (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 ]))) ;) (expression_statement "uVar3 = (skey->des).ek[7] ^ uVar3;" (assignment_expression "uVar3 = (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 "uVar5 = uVar2 ^ uVar3;" (assignment_expression "uVar5 = uVar2 ^ uVar3" identifier = (binary_expression "uVar2 ^ uVar3" identifier ^ identifier)) ;) (expression_statement "uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);" (assignment_expression "uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18)" identifier = (binary_expression "uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18)" (binary_expression "uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18)" identifier ^ (parenthesized_expression "(uVar5 << 8 | uVar5 >> 0x18)" ( (binary_expression "uVar5 << 8 | uVar5 >> 0x18" (binary_expression "uVar5 << 8" identifier << number_literal) | (binary_expression "uVar5 >> 0x18" identifier >> number_literal)) ))) ^ (parenthesized_expression "(uVar5 >> 8 | uVar5 << 0x18)" ( (binary_expression "uVar5 >> 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 8" identifier >> number_literal) | (binary_expression "uVar5 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "uVar8 = uVar8 ^ (skey->des).ek[4] ^ uVar5;" (assignment_expression "uVar8 = uVar8 ^ (skey->des).ek[4] ^ uVar5" identifier = (binary_expression "uVar8 ^ (skey->des).ek[4] ^ uVar5" (binary_expression "uVar8 ^ (skey->des).ek[4]" identifier ^ (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 "*(uint *)pt = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "*(uint *)pt = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (pointer_expression "*(uint *)pt" * (cast_expression "(uint *)pt" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar2 = uVar2 ^ uVar4;" (assignment_expression "uVar2 = uVar2 ^ uVar4" identifier = (binary_expression "uVar2 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "*(uint *)(pt + 4) =\n         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "*(uint *)(pt + 4) =\n         uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 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 "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar5 = uVar1 ^ uVar6 ^ uVar5;" (assignment_expression "uVar5 = uVar1 ^ uVar6 ^ uVar5" identifier = (binary_expression "uVar1 ^ uVar6 ^ uVar5" (binary_expression "uVar1 ^ uVar6" identifier ^ identifier) ^ identifier)) ;) (expression_statement "*(uint *)(pt + 8) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "*(uint *)(pt + 8) =\n         uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (pointer_expression "*(uint *)(pt + 8)" * (cast_expression "(uint *)(pt + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pt + 8)" ( (binary_expression "pt + 8" 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 "uVar4 = uVar4 ^ uVar3;" (assignment_expression "uVar4 = uVar4 ^ uVar3" identifier = (binary_expression "uVar4 ^ uVar3" identifier ^ identifier)) ;) (expression_statement "*(uint *)(pt + 0xc) =\n         uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;" (assignment_expression "*(uint *)(pt + 0xc) =\n         uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (pointer_expression "*(uint *)(pt + 0xc)" * (cast_expression "(uint *)(pt + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pt + 0xc)" ( (binary_expression "pt + 0xc" identifier + number_literal) )))) = (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("pt != NULL","src/ciphers/noekeon.c",0xae);" (call_expression "crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae)" identifier (argument_list "("pt != NULL","src/ciphers/noekeon.c",0xae)" ( (string_literal ""pt != NULL"" " string_content ") , (string_literal ""src/ciphers/noekeon.c"" " string_content ") , number_literal ))) ;) })))
(translation_unit "undefined8 noekeon_ecb_decrypt(uint *param_1,uint *param_2,long param_3)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  \n  if (param_3 == 0) {\n                    \n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_1 == (uint *)0x0) {\n                    \n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *param_1;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[1];\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[2];\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[3];\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(param_3 + 0x18);\n    puVar7 = &DAT_001ab160;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);\n    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;\n    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    \n  crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae);\n}\n\n" (function_definition "undefined8 noekeon_ecb_decrypt(uint *param_1,uint *param_2,long param_3)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  \n  if (param_3 == 0) {\n                    \n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_1 == (uint *)0x0) {\n                    \n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *param_1;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[1];\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[2];\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[3];\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(param_3 + 0x18);\n    puVar7 = &DAT_001ab160;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);\n    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;\n    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    \n  crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae);\n}" type_identifier (function_declarator "noekeon_ecb_decrypt(uint *param_1,uint *param_2,long param_3)" identifier (parameter_list "(uint *param_1,uint *param_2,long 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 "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  \n  if (param_3 == 0) {\n                    \n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_1 == (uint *)0x0) {\n                    \n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *param_1;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[1];\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[2];\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[3];\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(param_3 + 0x18);\n    puVar7 = &DAT_001ab160;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);\n    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;\n    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    \n  crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae);\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (if_statement "if (param_3 == 0) {\n                    \n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }" { (expression_statement "crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad)" identifier (argument_list "("skey != NULL","src/ciphers/noekeon.c",0xad)" ( (string_literal ""skey != NULL"" " string_content ") , (string_literal ""src/ciphers/noekeon.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 != (uint *)0x0) {\n    if (param_1 == (uint *)0x0) {\n                    \n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *param_1;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[1];\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[2];\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[3];\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(param_3 + 0x18);\n    puVar7 = &DAT_001ab160;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);\n    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;\n    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }" if (parenthesized_expression "(param_2 != (uint *)0x0)" ( (binary_expression "param_2 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (param_1 == (uint *)0x0) {\n                    \n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *param_1;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[1];\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[2];\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[3];\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(param_3 + 0x18);\n    puVar7 = &DAT_001ab160;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);\n    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;\n    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }" { (if_statement "if (param_1 == (uint *)0x0) {\n                    \n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }" if (parenthesized_expression "(param_1 == (uint *)0x0)" ( (binary_expression "param_1 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }" { (expression_statement "crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);" (call_expression "crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf)" identifier (argument_list "("ct != NULL","src/ciphers/noekeon.c",0xaf)" ( (string_literal ""ct != NULL"" " string_content ") , (string_literal ""src/ciphers/noekeon.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" identifier = (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar1 = param_1[1];" (assignment_expression "uVar1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" identifier = (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar1 = param_1[2];" (assignment_expression "uVar1 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" identifier = (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar1 = param_1[3];" (assignment_expression "uVar1 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" identifier = (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar1 = *(uint *)(param_3 + 0x18);" (assignment_expression "uVar1 = *(uint *)(param_3 + 0x18)" identifier = (pointer_expression "*(uint *)(param_3 + 0x18)" * (cast_expression "(uint *)(param_3 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x18)" ( (binary_expression "param_3 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = &DAT_001ab160;" (assignment_expression "puVar7 = &DAT_001ab160" identifier = (pointer_expression "&DAT_001ab160" & identifier)) ;) (do_statement "do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);" do (compound_statement "{\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    }" { (expression_statement "uVar4 = uVar6 ^ uVar8;" (assignment_expression "uVar4 = uVar6 ^ uVar8" identifier = (binary_expression "uVar6 ^ uVar8" identifier ^ identifier)) ;) (expression_statement "uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;" (assignment_expression "uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4" identifier = (binary_expression "(uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4" (binary_expression "(uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18)" (parenthesized_expression "(uVar4 << 8 | uVar4 >> 0x18)" ( (binary_expression "uVar4 << 8 | uVar4 >> 0x18" (binary_expression "uVar4 << 8" identifier << number_literal) | (binary_expression "uVar4 >> 0x18" identifier >> number_literal)) )) ^ (parenthesized_expression "(uVar4 >> 8 | uVar4 << 0x18)" ( (binary_expression "uVar4 >> 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 8" identifier >> number_literal) | (binary_expression "uVar4 << 0x18" identifier << number_literal)) ))) ^ identifier)) ;) (expression_statement "uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;" (assignment_expression "uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4" identifier = (binary_expression "uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4" (binary_expression "uVar2 ^ *(uint *)(param_3 + 0x14)" identifier ^ (pointer_expression "*(uint *)(param_3 + 0x14)" * (cast_expression "(uint *)(param_3 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x14)" ( (binary_expression "param_3 + 0x14" identifier + number_literal) ))))) ^ identifier)) ;) (expression_statement "uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;" (assignment_expression "uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3" identifier = (binary_expression "uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3" (binary_expression "uVar4 ^ *(uint *)(param_3 + 0x1c)" identifier ^ (pointer_expression "*(uint *)(param_3 + 0x1c)" * (cast_expression "(uint *)(param_3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) ))))) ^ identifier)) ;) (expression_statement "uVar4 = uVar2 ^ uVar3;" (assignment_expression "uVar4 = uVar2 ^ uVar3" identifier = (binary_expression "uVar2 ^ uVar3" identifier ^ identifier)) ;) (expression_statement "uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;" (assignment_expression "uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4" identifier = (binary_expression "(uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4" (binary_expression "(uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18)" (parenthesized_expression "(uVar4 >> 8 | uVar4 << 0x18)" ( (binary_expression "uVar4 >> 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 8" identifier >> number_literal) | (binary_expression "uVar4 << 0x18" identifier << number_literal)) )) ^ (parenthesized_expression "(uVar4 << 8 | uVar4 >> 0x18)" ( (binary_expression "uVar4 << 8 | uVar4 >> 0x18" (binary_expression "uVar4 << 8" identifier << number_literal) | (binary_expression "uVar4 >> 0x18" identifier >> number_literal)) ))) ^ identifier)) ;) (expression_statement "uVar6 = uVar6 ^ uVar1 ^ uVar4;" (assignment_expression "uVar6 = uVar6 ^ uVar1 ^ uVar4" identifier = (binary_expression "uVar6 ^ uVar1 ^ uVar4" (binary_expression "uVar6 ^ uVar1" identifier ^ identifier) ^ identifier)) ;) (expression_statement "uVar6 = uVar6 << 5 | uVar6 >> 0x1b;" (assignment_expression "uVar6 = uVar6 << 5 | uVar6 >> 0x1b" identifier = (binary_expression "uVar6 << 5 | uVar6 >> 0x1b" (binary_expression "uVar6 << 5" identifier << number_literal) | (binary_expression "uVar6 >> 0x1b" identifier >> number_literal))) ;) (expression_statement "uVar5 = uVar3 << 2 | uVar3 >> 0x1e;" (assignment_expression "uVar5 = uVar3 << 2 | uVar3 >> 0x1e" identifier = (binary_expression "uVar3 << 2 | uVar3 >> 0x1e" (binary_expression "uVar3 << 2" identifier << number_literal) | (binary_expression "uVar3 >> 0x1e" identifier >> number_literal))) ;) (expression_statement "uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);" (assignment_expression "uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5)" identifier = (binary_expression "(uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5)" (parenthesized_expression "(uVar2 << 1 | (uint)((int)uVar2 < 0))" ( (binary_expression "uVar2 << 1 | (uint)((int)uVar2 < 0)" (binary_expression "uVar2 << 1" identifier << number_literal) | (call_expression "(uint)((int)uVar2 < 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar2 < 0)" ( (binary_expression "(int)uVar2 < 0" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )))) )) ^ (parenthesized_expression "(uVar6 | uVar5)" ( (binary_expression "uVar6 | uVar5" identifier | identifier) )))) ;) (expression_statement "uVar2 = ~uVar3;" (assignment_expression "uVar2 = ~uVar3" identifier = (unary_expression "~uVar3" ~ identifier)) ;) (expression_statement "uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;" (assignment_expression "uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6" identifier = (binary_expression "uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6" (binary_expression "uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7" (binary_expression "uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10)" (binary_expression "uVar4 ^ uVar8" identifier ^ identifier) ^ (pointer_expression "*(uint *)(param_3 + 0x10)" * (cast_expression "(uint *)(param_3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) ))))) ^ (pointer_expression "*puVar7" * identifier)) ^ (binary_expression "uVar2 & uVar6" identifier & identifier))) ;) (expression_statement "uVar2 = uVar6 ^ uVar5 ^ uVar2;" (assignment_expression "uVar2 = uVar6 ^ uVar5 ^ uVar2" identifier = (binary_expression "uVar6 ^ uVar5 ^ uVar2" (binary_expression "uVar6 ^ uVar5" identifier ^ identifier) ^ identifier)) ;) (expression_statement "uVar6 = uVar4 ^ uVar2;" (assignment_expression "uVar6 = uVar4 ^ uVar2" identifier = (binary_expression "uVar4 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar3 = (uVar2 | uVar4) ^ uVar3;" (assignment_expression "uVar3 = (uVar2 | uVar4) ^ uVar3" identifier = (binary_expression "(uVar2 | uVar4) ^ uVar3" (parenthesized_expression "(uVar2 | uVar4)" ( (binary_expression "uVar2 | uVar4" identifier | identifier) )) ^ identifier)) ;) (expression_statement "uVar8 = uVar6 & uVar3 ^ uVar5;" (assignment_expression "uVar8 = uVar6 & uVar3 ^ uVar5" identifier = (binary_expression "uVar6 & uVar3 ^ uVar5" (binary_expression "uVar6 & uVar3" identifier & identifier) ^ identifier)) ;) (expression_statement "uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;" (assignment_expression "uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f" identifier = (binary_expression "uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f" (binary_expression "uVar3 >> 1" identifier >> number_literal) | (binary_expression "(uint)((uVar3 & 1) != 0) << 0x1f" (call_expression "(uint)((uVar3 & 1) != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar3 & 1) != 0)" ( (binary_expression "(uVar3 & 1) != 0" (parenthesized_expression "(uVar3 & 1)" ( (binary_expression "uVar3 & 1" identifier & number_literal) )) != number_literal) ))) << number_literal))) ;) (expression_statement "uVar6 = uVar6 >> 5 | uVar6 << 0x1b;" (assignment_expression "uVar6 = uVar6 >> 5 | uVar6 << 0x1b" identifier = (binary_expression "uVar6 >> 5 | uVar6 << 0x1b" (binary_expression "uVar6 >> 5" identifier >> number_literal) | (binary_expression "uVar6 << 0x1b" identifier << number_literal))) ;) (expression_statement "uVar3 = uVar4 >> 2 | uVar4 << 0x1e;" (assignment_expression "uVar3 = uVar4 >> 2 | uVar4 << 0x1e" identifier = (binary_expression "uVar4 >> 2 | uVar4 << 0x1e" (binary_expression "uVar4 >> 2" identifier >> number_literal) | (binary_expression "uVar4 << 0x1e" identifier << number_literal))) ;) (expression_statement "puVar7 = puVar7 + -1;" (assignment_expression "puVar7 = puVar7 + -1" identifier = (binary_expression "puVar7 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != &DAT_001ab120)" ( (binary_expression "puVar7 != &DAT_001ab120" identifier != (pointer_expression "&DAT_001ab120" & identifier)) )) ;) (expression_statement "uVar4 = uVar8 ^ uVar6;" (assignment_expression "uVar4 = uVar8 ^ uVar6" identifier = (binary_expression "uVar8 ^ uVar6" identifier ^ identifier)) ;) (expression_statement "uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);" (assignment_expression "uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18)" identifier = (binary_expression "uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18)" (binary_expression "uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18)" identifier ^ (parenthesized_expression "(uVar4 << 8 | uVar4 >> 0x18)" ( (binary_expression "uVar4 << 8 | uVar4 >> 0x18" (binary_expression "uVar4 << 8" identifier << number_literal) | (binary_expression "uVar4 >> 0x18" identifier >> number_literal)) ))) ^ (parenthesized_expression "(uVar4 >> 8 | uVar4 << 0x18)" ( (binary_expression "uVar4 >> 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 8" identifier >> number_literal) | (binary_expression "uVar4 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);" (assignment_expression "uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14)" identifier = (binary_expression "uVar2 ^ *(uint *)(param_3 + 0x14)" identifier ^ (pointer_expression "*(uint *)(param_3 + 0x14)" * (cast_expression "(uint *)(param_3 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x14)" ( (binary_expression "param_3 + 0x14" identifier + number_literal) )))))) ;) (expression_statement "uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;" (assignment_expression "uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3" identifier = (binary_expression "*(uint *)(param_3 + 0x1c) ^ uVar3" (pointer_expression "*(uint *)(param_3 + 0x1c)" * (cast_expression "(uint *)(param_3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) )))) ^ identifier)) ;) (expression_statement "uVar5 = uVar2 ^ uVar3;" (assignment_expression "uVar5 = uVar2 ^ uVar3" identifier = (binary_expression "uVar2 ^ uVar3" identifier ^ identifier)) ;) (expression_statement "uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);" (assignment_expression "uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18)" identifier = (binary_expression "uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18)" (binary_expression "uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18)" identifier ^ (parenthesized_expression "(uVar5 << 8 | uVar5 >> 0x18)" ( (binary_expression "uVar5 << 8 | uVar5 >> 0x18" (binary_expression "uVar5 << 8" identifier << number_literal) | (binary_expression "uVar5 >> 0x18" identifier >> number_literal)) ))) ^ (parenthesized_expression "(uVar5 >> 8 | uVar5 << 0x18)" ( (binary_expression "uVar5 >> 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 8" identifier >> number_literal) | (binary_expression "uVar5 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;" (assignment_expression "uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5" identifier = (binary_expression "uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5" (binary_expression "uVar8 ^ *(uint *)(param_3 + 0x10)" identifier ^ (pointer_expression "*(uint *)(param_3 + 0x10)" * (cast_expression "(uint *)(param_3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) ))))) ^ identifier)) ;) (expression_statement "*param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "*param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar2 = uVar2 ^ uVar4;" (assignment_expression "uVar2 = uVar2 ^ uVar4" identifier = (binary_expression "uVar2 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar5 = uVar1 ^ uVar6 ^ uVar5;" (assignment_expression "uVar5 = uVar1 ^ uVar6 ^ uVar5" identifier = (binary_expression "uVar1 ^ uVar6 ^ uVar5" (binary_expression "uVar1 ^ uVar6" identifier ^ identifier) ^ identifier)) ;) (expression_statement "param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (subscript_expression "param_2[2]" 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 "uVar4 = uVar4 ^ uVar3;" (assignment_expression "uVar4 = uVar4 ^ uVar3" identifier = (binary_expression "uVar4 ^ uVar3" identifier ^ identifier)) ;) (expression_statement "param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;" (assignment_expression "param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (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("pt != NULL","src/ciphers/noekeon.c",0xae);" (call_expression "crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae)" identifier (argument_list "("pt != NULL","src/ciphers/noekeon.c",0xae)" ( (string_literal ""pt != NULL"" " string_content ") , (string_literal ""src/ciphers/noekeon.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 (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (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 = (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 = (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 = (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 = (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) )) ^ (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT << LIT)) ))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT << LIT)) )) ^ (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) ))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT ^ IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )))) )) ^ (parenthesized_expression ( (binary_expression IDENT | IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (unary_expression ~ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT ^ IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ^ (pointer_expression * IDENT)) ^ (binary_expression IDENT & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT ^ IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT | IDENT) )) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT ^ (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) ))) ^ (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT ^ (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) ))) ^ (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT ^ IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })))
(function_definition "undefined8 noekeon_ecb_decrypt(uint *param_1,uint *param_2,long param_3)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  \n  if (param_3 == 0) {\n                    \n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_1 == (uint *)0x0) {\n                    \n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *param_1;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[1];\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[2];\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[3];\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(param_3 + 0x18);\n    puVar7 = &DAT_001ab160;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);\n    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;\n    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    \n  crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae);\n}" (type_identifier "undefined8") (function_declarator "noekeon_ecb_decrypt(uint *param_1,uint *param_2,long param_3)" (identifier "noekeon_ecb_decrypt") (parameter_list "(uint *param_1,uint *param_2,long 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 "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  \n  if (param_3 == 0) {\n                    \n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }\n  if (param_2 != (uint *)0x0) {\n    if (param_1 == (uint *)0x0) {\n                    \n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *param_1;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[1];\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[2];\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[3];\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(param_3 + 0x18);\n    puVar7 = &DAT_001ab160;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);\n    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;\n    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }\n                    \n  crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae);\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (if_statement "if (param_3 == 0) {\n                    \n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);\n  }" ({ "{") (expression_statement "crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);" (call_expression "crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad)" (identifier "crypt_argchk") (argument_list "("skey != NULL","src/ciphers/noekeon.c",0xad)" (( "(") (string_literal ""skey != NULL"" (" """) (string_content "skey != NULL") (" """)) (, ",") (string_literal ""src/ciphers/noekeon.c"" (" """) (string_content "src/ciphers/noekeon.c") (" """)) (, ",") (number_literal "0xad") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 != (uint *)0x0) {\n    if (param_1 == (uint *)0x0) {\n                    \n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *param_1;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[1];\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[2];\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[3];\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(param_3 + 0x18);\n    puVar7 = &DAT_001ab160;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);\n    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;\n    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }" (if "if") (parenthesized_expression "(param_2 != (uint *)0x0)" (( "(") (binary_expression "param_2 != (uint *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (param_1 == (uint *)0x0) {\n                    \n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }\n    uVar1 = *param_1;\n    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[1];\n    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[2];\n    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = param_1[3];\n    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n    uVar1 = *(uint *)(param_3 + 0x18);\n    puVar7 = &DAT_001ab160;\n    do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);\n    uVar4 = uVar8 ^ uVar6;\n    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);\n    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);\n    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;\n    uVar5 = uVar2 ^ uVar3;\n    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);\n    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;\n    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n    uVar2 = uVar2 ^ uVar4;\n    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;\n    uVar5 = uVar1 ^ uVar6 ^ uVar5;\n    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n    uVar4 = uVar4 ^ uVar3;\n    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n    return 0;\n  }" ({ "{") (if_statement "if (param_1 == (uint *)0x0) {\n                    \n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }" (if "if") (parenthesized_expression "(param_1 == (uint *)0x0)" (( "(") (binary_expression "param_1 == (uint *)0x0" (identifier "param_1") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);\n    }" ({ "{") (expression_statement "crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);" (call_expression "crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf)" (identifier "crypt_argchk") (argument_list "("ct != NULL","src/ciphers/noekeon.c",0xaf)" (( "(") (string_literal ""ct != NULL"" (" """) (string_content "ct != NULL") (" """)) (, ",") (string_literal ""src/ciphers/noekeon.c"" (" """) (string_content "src/ciphers/noekeon.c") (" """)) (, ",") (number_literal "0xaf") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" (identifier "uVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (identifier "uVar8") (= "=") (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" (identifier "uVar1") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" (( "(") (binary_expression "uVar1 & 0xff0000" (identifier "uVar1") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" (( "(") (binary_expression "uVar1 & 0xff00" (identifier "uVar1") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar1 << 0x18" (identifier "uVar1") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar1 = param_1[1];" (assignment_expression "uVar1 = param_1[1]" (identifier "uVar1") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (identifier "uVar2") (= "=") (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" (identifier "uVar1") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" (( "(") (binary_expression "uVar1 & 0xff0000" (identifier "uVar1") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" (( "(") (binary_expression "uVar1 & 0xff00" (identifier "uVar1") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar1 << 0x18" (identifier "uVar1") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar1 = param_1[2];" (assignment_expression "uVar1 = param_1[2]" (identifier "uVar1") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (identifier "uVar6") (= "=") (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" (identifier "uVar1") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" (( "(") (binary_expression "uVar1 & 0xff0000" (identifier "uVar1") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" (( "(") (binary_expression "uVar1 & 0xff00" (identifier "uVar1") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar1 << 0x18" (identifier "uVar1") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar1 = param_1[3];" (assignment_expression "uVar1 = param_1[3]" (identifier "uVar1") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (identifier "uVar3") (= "=") (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" (identifier "uVar1") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" (( "(") (binary_expression "uVar1 & 0xff0000" (identifier "uVar1") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" (( "(") (binary_expression "uVar1 & 0xff00" (identifier "uVar1") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar1 << 0x18" (identifier "uVar1") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar1 = *(uint *)(param_3 + 0x18);" (assignment_expression "uVar1 = *(uint *)(param_3 + 0x18)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(param_3 + 0x18)" (* "*") (cast_expression "(uint *)(param_3 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x18)" (( "(") (binary_expression "param_3 + 0x18" (identifier "param_3") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "puVar7 = &DAT_001ab160;" (assignment_expression "puVar7 = &DAT_001ab160" (identifier "puVar7") (= "=") (pointer_expression "&DAT_001ab160" (& "&") (identifier "DAT_001ab160"))) (; ";")) (do_statement "do {\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    } while (puVar7 != &DAT_001ab120);" (do "do") (compound_statement "{\n      uVar4 = uVar6 ^ uVar8;\n      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;\n      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;\n      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;\n      uVar4 = uVar2 ^ uVar3;\n      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;\n      uVar6 = uVar6 ^ uVar1 ^ uVar4;\n      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;\n      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;\n      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);\n      uVar2 = ~uVar3;\n      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;\n      uVar2 = uVar6 ^ uVar5 ^ uVar2;\n      uVar6 = uVar4 ^ uVar2;\n      uVar3 = (uVar2 | uVar4) ^ uVar3;\n      uVar8 = uVar6 & uVar3 ^ uVar5;\n      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;\n      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;\n      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;\n      puVar7 = puVar7 + -1;\n    }" ({ "{") (expression_statement "uVar4 = uVar6 ^ uVar8;" (assignment_expression "uVar4 = uVar6 ^ uVar8" (identifier "uVar4") (= "=") (binary_expression "uVar6 ^ uVar8" (identifier "uVar6") (^ "^") (identifier "uVar8"))) (; ";")) (expression_statement "uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;" (assignment_expression "uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4" (identifier "uVar4") (= "=") (binary_expression "(uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4" (binary_expression "(uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18)" (parenthesized_expression "(uVar4 << 8 | uVar4 >> 0x18)" (( "(") (binary_expression "uVar4 << 8 | uVar4 >> 0x18" (binary_expression "uVar4 << 8" (identifier "uVar4") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18"))) () ")")) (^ "^") (parenthesized_expression "(uVar4 >> 8 | uVar4 << 0x18)" (( "(") (binary_expression "uVar4 >> 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 8" (identifier "uVar4") (>> ">>") (number_literal "8")) (| "|") (binary_expression "uVar4 << 0x18" (identifier "uVar4") (<< "<<") (number_literal "0x18"))) () ")"))) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;" (assignment_expression "uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4" (identifier "uVar2") (= "=") (binary_expression "uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4" (binary_expression "uVar2 ^ *(uint *)(param_3 + 0x14)" (identifier "uVar2") (^ "^") (pointer_expression "*(uint *)(param_3 + 0x14)" (* "*") (cast_expression "(uint *)(param_3 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x14)" (( "(") (binary_expression "param_3 + 0x14" (identifier "param_3") (+ "+") (number_literal "0x14")) () ")"))))) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;" (assignment_expression "uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3" (identifier "uVar3") (= "=") (binary_expression "uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3" (binary_expression "uVar4 ^ *(uint *)(param_3 + 0x1c)" (identifier "uVar4") (^ "^") (pointer_expression "*(uint *)(param_3 + 0x1c)" (* "*") (cast_expression "(uint *)(param_3 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1c)" (( "(") (binary_expression "param_3 + 0x1c" (identifier "param_3") (+ "+") (number_literal "0x1c")) () ")"))))) (^ "^") (identifier "uVar3"))) (; ";")) (expression_statement "uVar4 = uVar2 ^ uVar3;" (assignment_expression "uVar4 = uVar2 ^ uVar3" (identifier "uVar4") (= "=") (binary_expression "uVar2 ^ uVar3" (identifier "uVar2") (^ "^") (identifier "uVar3"))) (; ";")) (expression_statement "uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;" (assignment_expression "uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4" (identifier "uVar4") (= "=") (binary_expression "(uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4" (binary_expression "(uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18)" (parenthesized_expression "(uVar4 >> 8 | uVar4 << 0x18)" (( "(") (binary_expression "uVar4 >> 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 8" (identifier "uVar4") (>> ">>") (number_literal "8")) (| "|") (binary_expression "uVar4 << 0x18" (identifier "uVar4") (<< "<<") (number_literal "0x18"))) () ")")) (^ "^") (parenthesized_expression "(uVar4 << 8 | uVar4 >> 0x18)" (( "(") (binary_expression "uVar4 << 8 | uVar4 >> 0x18" (binary_expression "uVar4 << 8" (identifier "uVar4") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18"))) () ")"))) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar6 = uVar6 ^ uVar1 ^ uVar4;" (assignment_expression "uVar6 = uVar6 ^ uVar1 ^ uVar4" (identifier "uVar6") (= "=") (binary_expression "uVar6 ^ uVar1 ^ uVar4" (binary_expression "uVar6 ^ uVar1" (identifier "uVar6") (^ "^") (identifier "uVar1")) (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar6 = uVar6 << 5 | uVar6 >> 0x1b;" (assignment_expression "uVar6 = uVar6 << 5 | uVar6 >> 0x1b" (identifier "uVar6") (= "=") (binary_expression "uVar6 << 5 | uVar6 >> 0x1b" (binary_expression "uVar6 << 5" (identifier "uVar6") (<< "<<") (number_literal "5")) (| "|") (binary_expression "uVar6 >> 0x1b" (identifier "uVar6") (>> ">>") (number_literal "0x1b")))) (; ";")) (expression_statement "uVar5 = uVar3 << 2 | uVar3 >> 0x1e;" (assignment_expression "uVar5 = uVar3 << 2 | uVar3 >> 0x1e" (identifier "uVar5") (= "=") (binary_expression "uVar3 << 2 | uVar3 >> 0x1e" (binary_expression "uVar3 << 2" (identifier "uVar3") (<< "<<") (number_literal "2")) (| "|") (binary_expression "uVar3 >> 0x1e" (identifier "uVar3") (>> ">>") (number_literal "0x1e")))) (; ";")) (expression_statement "uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);" (assignment_expression "uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5)" (identifier "uVar3") (= "=") (binary_expression "(uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5)" (parenthesized_expression "(uVar2 << 1 | (uint)((int)uVar2 < 0))" (( "(") (binary_expression "uVar2 << 1 | (uint)((int)uVar2 < 0)" (binary_expression "uVar2 << 1" (identifier "uVar2") (<< "<<") (number_literal "1")) (| "|") (call_expression "(uint)((int)uVar2 < 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)uVar2 < 0)" (( "(") (binary_expression "(int)uVar2 < 0" (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")) (< "<") (number_literal "0")) () ")")))) () ")")) (^ "^") (parenthesized_expression "(uVar6 | uVar5)" (( "(") (binary_expression "uVar6 | uVar5" (identifier "uVar6") (| "|") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "uVar2 = ~uVar3;" (assignment_expression "uVar2 = ~uVar3" (identifier "uVar2") (= "=") (unary_expression "~uVar3" (~ "~") (identifier "uVar3"))) (; ";")) (expression_statement "uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;" (assignment_expression "uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6" (identifier "uVar4") (= "=") (binary_expression "uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6" (binary_expression "uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7" (binary_expression "uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10)" (binary_expression "uVar4 ^ uVar8" (identifier "uVar4") (^ "^") (identifier "uVar8")) (^ "^") (pointer_expression "*(uint *)(param_3 + 0x10)" (* "*") (cast_expression "(uint *)(param_3 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x10)" (( "(") (binary_expression "param_3 + 0x10" (identifier "param_3") (+ "+") (number_literal "0x10")) () ")"))))) (^ "^") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (^ "^") (binary_expression "uVar2 & uVar6" (identifier "uVar2") (& "&") (identifier "uVar6")))) (; ";")) (expression_statement "uVar2 = uVar6 ^ uVar5 ^ uVar2;" (assignment_expression "uVar2 = uVar6 ^ uVar5 ^ uVar2" (identifier "uVar2") (= "=") (binary_expression "uVar6 ^ uVar5 ^ uVar2" (binary_expression "uVar6 ^ uVar5" (identifier "uVar6") (^ "^") (identifier "uVar5")) (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar6 = uVar4 ^ uVar2;" (assignment_expression "uVar6 = uVar4 ^ uVar2" (identifier "uVar6") (= "=") (binary_expression "uVar4 ^ uVar2" (identifier "uVar4") (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar3 = (uVar2 | uVar4) ^ uVar3;" (assignment_expression "uVar3 = (uVar2 | uVar4) ^ uVar3" (identifier "uVar3") (= "=") (binary_expression "(uVar2 | uVar4) ^ uVar3" (parenthesized_expression "(uVar2 | uVar4)" (( "(") (binary_expression "uVar2 | uVar4" (identifier "uVar2") (| "|") (identifier "uVar4")) () ")")) (^ "^") (identifier "uVar3"))) (; ";")) (expression_statement "uVar8 = uVar6 & uVar3 ^ uVar5;" (assignment_expression "uVar8 = uVar6 & uVar3 ^ uVar5" (identifier "uVar8") (= "=") (binary_expression "uVar6 & uVar3 ^ uVar5" (binary_expression "uVar6 & uVar3" (identifier "uVar6") (& "&") (identifier "uVar3")) (^ "^") (identifier "uVar5"))) (; ";")) (expression_statement "uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;" (assignment_expression "uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f" (identifier "uVar2") (= "=") (binary_expression "uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f" (binary_expression "uVar3 >> 1" (identifier "uVar3") (>> ">>") (number_literal "1")) (| "|") (binary_expression "(uint)((uVar3 & 1) != 0) << 0x1f" (call_expression "(uint)((uVar3 & 1) != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uVar3 & 1) != 0)" (( "(") (binary_expression "(uVar3 & 1) != 0" (parenthesized_expression "(uVar3 & 1)" (( "(") (binary_expression "uVar3 & 1" (identifier "uVar3") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) (<< "<<") (number_literal "0x1f")))) (; ";")) (expression_statement "uVar6 = uVar6 >> 5 | uVar6 << 0x1b;" (assignment_expression "uVar6 = uVar6 >> 5 | uVar6 << 0x1b" (identifier "uVar6") (= "=") (binary_expression "uVar6 >> 5 | uVar6 << 0x1b" (binary_expression "uVar6 >> 5" (identifier "uVar6") (>> ">>") (number_literal "5")) (| "|") (binary_expression "uVar6 << 0x1b" (identifier "uVar6") (<< "<<") (number_literal "0x1b")))) (; ";")) (expression_statement "uVar3 = uVar4 >> 2 | uVar4 << 0x1e;" (assignment_expression "uVar3 = uVar4 >> 2 | uVar4 << 0x1e" (identifier "uVar3") (= "=") (binary_expression "uVar4 >> 2 | uVar4 << 0x1e" (binary_expression "uVar4 >> 2" (identifier "uVar4") (>> ">>") (number_literal "2")) (| "|") (binary_expression "uVar4 << 0x1e" (identifier "uVar4") (<< "<<") (number_literal "0x1e")))) (; ";")) (expression_statement "puVar7 = puVar7 + -1;" (assignment_expression "puVar7 = puVar7 + -1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + -1" (identifier "puVar7") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar7 != &DAT_001ab120)" (( "(") (binary_expression "puVar7 != &DAT_001ab120" (identifier "puVar7") (!= "!=") (pointer_expression "&DAT_001ab120" (& "&") (identifier "DAT_001ab120"))) () ")")) (; ";")) (expression_statement "uVar4 = uVar8 ^ uVar6;" (assignment_expression "uVar4 = uVar8 ^ uVar6" (identifier "uVar4") (= "=") (binary_expression "uVar8 ^ uVar6" (identifier "uVar8") (^ "^") (identifier "uVar6"))) (; ";")) (expression_statement "uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);" (assignment_expression "uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18)" (identifier "uVar4") (= "=") (binary_expression "uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18)" (binary_expression "uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18)" (identifier "uVar4") (^ "^") (parenthesized_expression "(uVar4 << 8 | uVar4 >> 0x18)" (( "(") (binary_expression "uVar4 << 8 | uVar4 >> 0x18" (binary_expression "uVar4 << 8" (identifier "uVar4") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18"))) () ")"))) (^ "^") (parenthesized_expression "(uVar4 >> 8 | uVar4 << 0x18)" (( "(") (binary_expression "uVar4 >> 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 8" (identifier "uVar4") (>> ">>") (number_literal "8")) (| "|") (binary_expression "uVar4 << 0x18" (identifier "uVar4") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);" (assignment_expression "uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14)" (identifier "uVar2") (= "=") (binary_expression "uVar2 ^ *(uint *)(param_3 + 0x14)" (identifier "uVar2") (^ "^") (pointer_expression "*(uint *)(param_3 + 0x14)" (* "*") (cast_expression "(uint *)(param_3 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x14)" (( "(") (binary_expression "param_3 + 0x14" (identifier "param_3") (+ "+") (number_literal "0x14")) () ")")))))) (; ";")) (expression_statement "uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;" (assignment_expression "uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3" (identifier "uVar3") (= "=") (binary_expression "*(uint *)(param_3 + 0x1c) ^ uVar3" (pointer_expression "*(uint *)(param_3 + 0x1c)" (* "*") (cast_expression "(uint *)(param_3 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1c)" (( "(") (binary_expression "param_3 + 0x1c" (identifier "param_3") (+ "+") (number_literal "0x1c")) () ")")))) (^ "^") (identifier "uVar3"))) (; ";")) (expression_statement "uVar5 = uVar2 ^ uVar3;" (assignment_expression "uVar5 = uVar2 ^ uVar3" (identifier "uVar5") (= "=") (binary_expression "uVar2 ^ uVar3" (identifier "uVar2") (^ "^") (identifier "uVar3"))) (; ";")) (expression_statement "uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);" (assignment_expression "uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18)" (identifier "uVar5") (= "=") (binary_expression "uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18)" (binary_expression "uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18)" (identifier "uVar5") (^ "^") (parenthesized_expression "(uVar5 << 8 | uVar5 >> 0x18)" (( "(") (binary_expression "uVar5 << 8 | uVar5 >> 0x18" (binary_expression "uVar5 << 8" (identifier "uVar5") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar5 >> 0x18" (identifier "uVar5") (>> ">>") (number_literal "0x18"))) () ")"))) (^ "^") (parenthesized_expression "(uVar5 >> 8 | uVar5 << 0x18)" (( "(") (binary_expression "uVar5 >> 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 8" (identifier "uVar5") (>> ">>") (number_literal "8")) (| "|") (binary_expression "uVar5 << 0x18" (identifier "uVar5") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;" (assignment_expression "uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5" (identifier "uVar8") (= "=") (binary_expression "uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5" (binary_expression "uVar8 ^ *(uint *)(param_3 + 0x10)" (identifier "uVar8") (^ "^") (pointer_expression "*(uint *)(param_3 + 0x10)" (* "*") (cast_expression "(uint *)(param_3 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x10)" (( "(") (binary_expression "param_3 + 0x10" (identifier "param_3") (+ "+") (number_literal "0x10")) () ")"))))) (^ "^") (identifier "uVar5"))) (; ";")) (expression_statement "*param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "*param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" (identifier "uVar8") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" (( "(") (binary_expression "uVar8 & 0xff0000" (identifier "uVar8") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" (( "(") (binary_expression "uVar8 & 0xff00" (identifier "uVar8") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar8 << 0x18" (identifier "uVar8") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar2 = uVar2 ^ uVar4;" (assignment_expression "uVar2 = uVar2 ^ uVar4" (identifier "uVar2") (= "=") (binary_expression "uVar2 ^ uVar4" (identifier "uVar2") (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;" (assignment_expression "param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" (identifier "uVar2") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" (( "(") (binary_expression "uVar2 & 0xff0000" (identifier "uVar2") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" (( "(") (binary_expression "uVar2 & 0xff00" (identifier "uVar2") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar2 << 0x18" (identifier "uVar2") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar5 = uVar1 ^ uVar6 ^ uVar5;" (assignment_expression "uVar5 = uVar1 ^ uVar6 ^ uVar5" (identifier "uVar5") (= "=") (binary_expression "uVar1 ^ uVar6 ^ uVar5" (binary_expression "uVar1 ^ uVar6" (identifier "uVar1") (^ "^") (identifier "uVar6")) (^ "^") (identifier "uVar5"))) (; ";")) (expression_statement "param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (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")))) (; ";")) (expression_statement "uVar4 = uVar4 ^ uVar3;" (assignment_expression "uVar4 = uVar4 ^ uVar3" (identifier "uVar4") (= "=") (binary_expression "uVar4 ^ uVar3" (identifier "uVar4") (^ "^") (identifier "uVar3"))) (; ";")) (expression_statement "param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;" (assignment_expression "param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (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("pt != NULL","src/ciphers/noekeon.c",0xae);" (call_expression "crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae)" (identifier "crypt_argchk") (argument_list "("pt != NULL","src/ciphers/noekeon.c",0xae)" (( "(") (string_literal ""pt != NULL"" (" """) (string_content "pt != NULL") (" """)) (, ",") (string_literal ""src/ciphers/noekeon.c"" (" """) (string_content "src/ciphers/noekeon.c") (" """)) (, ",") (number_literal "0xae") () ")"))) (; ";")) (} "}")))

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

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

{
  type_3 var_5;
  type_3 var_10;
  type_3 var_11;
  type_3 var_9;
  type_3 var_12;
  type_3 var_7;
  type_3 *var_13;
  type_3 var_8;
  
  if (var_1 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("skey != NULL","src/ciphers/noekeon.c",0xad);
  }
  if (var_3 != (type_1 *)0x0) {
    if (var_4 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
      var_2("ct != NULL","src/ciphers/noekeon.c",0xaf);
    }
    var_5 = *(type_3 *)var_4;
    var_8 = var_5 >> 0x18 | (var_5 & 0xff0000) >> 8 | (var_5 & 0xff00) << 8 | var_5 << 0x18;
    var_5 = *(type_3 *)(var_4 + 4);
    var_10 = var_5 >> 0x18 | (var_5 & 0xff0000) >> 8 | (var_5 & 0xff00) << 8 | var_5 << 0x18;
    var_5 = *(type_3 *)(var_4 + 8);
    var_7 = var_5 >> 0x18 | (var_5 & 0xff0000) >> 8 | (var_5 & 0xff00) << 8 | var_5 << 0x18;
    var_5 = *(type_3 *)(var_4 + 0xc);
    var_11 = var_5 >> 0x18 | (var_5 & 0xff0000) >> 8 | (var_5 & 0xff00) << 8 | var_5 << 0x18;
    var_5 = (var_1->des).ek[6];
    var_13 = var_6 + 0x10;
    do {
      var_9 = var_7 ^ var_8;
      var_9 = (var_9 << 8 | var_9 >> 0x18) ^ (var_9 >> 8 | var_9 << 0x18) ^ var_9;
      var_10 = var_10 ^ (var_1->des).ek[5] ^ var_9;
      var_11 = var_9 ^ (var_1->des).ek[7] ^ var_11;
      var_9 = var_10 ^ var_11;
      var_9 = (var_9 >> 8 | var_9 << 0x18) ^ (var_9 << 8 | var_9 >> 0x18) ^ var_9;
      var_7 = var_7 ^ var_5 ^ var_9;
      var_7 = var_7 << 5 | var_7 >> 0x1b;
      var_12 = var_11 << 2 | var_11 >> 0x1e;
      var_11 = (var_10 << 1 | (type_3)((int)var_10 < 0)) ^ (var_7 | var_12);
      var_10 = ~var_11;
      var_9 = var_9 ^ var_8 ^ (var_1->des).ek[4] ^ *var_13 ^ var_10 & var_7;
      var_10 = var_7 ^ var_12 ^ var_10;
      var_7 = var_9 ^ var_10;
      var_11 = (var_10 | var_9) ^ var_11;
      var_8 = var_7 & var_11 ^ var_12;
      var_10 = var_11 >> 1 | (type_3)((var_11 & 1) != 0) << 0x1f;
      var_7 = var_7 >> 5 | var_7 << 0x1b;
      var_11 = var_9 >> 2 | var_9 << 0x1e;
      var_13 = var_13 + -1;
    } while (var_13 != var_6);
    var_9 = var_8 ^ var_7;
    var_9 = var_9 ^ (var_9 << 8 | var_9 >> 0x18) ^ (var_9 >> 8 | var_9 << 0x18);
    var_10 = var_10 ^ (var_1->des).ek[5];
    var_11 = (var_1->des).ek[7] ^ var_11;
    var_12 = var_10 ^ var_11;
    var_12 = var_12 ^ (var_12 << 8 | var_12 >> 0x18) ^ (var_12 >> 8 | var_12 << 0x18);
    var_8 = var_8 ^ (var_1->des).ek[4] ^ var_12;
    *(type_3 *)var_3 = var_8 >> 0x18 | (var_8 & 0xff0000) >> 8 | (var_8 & 0xff00) << 8 | var_8 << 0x18;
    var_10 = var_10 ^ var_9;
    *(type_3 *)(var_3 + 4) =
         var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 | var_10 << 0x18;
    var_12 = var_5 ^ var_7 ^ var_12;
    *(type_3 *)(var_3 + 8) =
         var_12 >> 0x18 | (var_12 & 0xff0000) >> 8 | (var_12 & 0xff00) << 8 | var_12 << 0x18;
    var_9 = var_9 ^ var_11;
    *(type_3 *)(var_3 + 0xc) =
         var_9 >> 0x18 | (var_9 & 0xff0000) >> 8 | (var_9 & 0xff00) << 8 | var_9 << 0x18;
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  var_2("pt != NULL","src/ciphers/noekeon.c",0xae);
}


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

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

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint *puVar7;
  uint uVar8;
  
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("skey != NULL","src/ciphers/noekeon.c",0xad);
  }
  if (param_2 != (uint *)0x0) {
    if (param_1 == (uint *)0x0) {
                    /* WARNING: Subroutine does not return */
      crypt_argchk("ct != NULL","src/ciphers/noekeon.c",0xaf);
    }
    uVar1 = *param_1;
    uVar8 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;
    uVar1 = param_1[1];
    uVar2 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;
    uVar1 = param_1[2];
    uVar6 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;
    uVar1 = param_1[3];
    uVar3 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;
    uVar1 = *(uint *)(param_3 + 0x18);
    puVar7 = &DAT_001ab160;
    do {
      uVar4 = uVar6 ^ uVar8;
      uVar4 = (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18) ^ uVar4;
      uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14) ^ uVar4;
      uVar3 = uVar4 ^ *(uint *)(param_3 + 0x1c) ^ uVar3;
      uVar4 = uVar2 ^ uVar3;
      uVar4 = (uVar4 >> 8 | uVar4 << 0x18) ^ (uVar4 << 8 | uVar4 >> 0x18) ^ uVar4;
      uVar6 = uVar6 ^ uVar1 ^ uVar4;
      uVar6 = uVar6 << 5 | uVar6 >> 0x1b;
      uVar5 = uVar3 << 2 | uVar3 >> 0x1e;
      uVar3 = (uVar2 << 1 | (uint)((int)uVar2 < 0)) ^ (uVar6 | uVar5);
      uVar2 = ~uVar3;
      uVar4 = uVar4 ^ uVar8 ^ *(uint *)(param_3 + 0x10) ^ *puVar7 ^ uVar2 & uVar6;
      uVar2 = uVar6 ^ uVar5 ^ uVar2;
      uVar6 = uVar4 ^ uVar2;
      uVar3 = (uVar2 | uVar4) ^ uVar3;
      uVar8 = uVar6 & uVar3 ^ uVar5;
      uVar2 = uVar3 >> 1 | (uint)((uVar3 & 1) != 0) << 0x1f;
      uVar6 = uVar6 >> 5 | uVar6 << 0x1b;
      uVar3 = uVar4 >> 2 | uVar4 << 0x1e;
      puVar7 = puVar7 + -1;
    } while (puVar7 != &DAT_001ab120);
    uVar4 = uVar8 ^ uVar6;
    uVar4 = uVar4 ^ (uVar4 << 8 | uVar4 >> 0x18) ^ (uVar4 >> 8 | uVar4 << 0x18);
    uVar2 = uVar2 ^ *(uint *)(param_3 + 0x14);
    uVar3 = *(uint *)(param_3 + 0x1c) ^ uVar3;
    uVar5 = uVar2 ^ uVar3;
    uVar5 = uVar5 ^ (uVar5 << 8 | uVar5 >> 0x18) ^ (uVar5 >> 8 | uVar5 << 0x18);
    uVar8 = uVar8 ^ *(uint *)(param_3 + 0x10) ^ uVar5;
    *param_2 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;
    uVar2 = uVar2 ^ uVar4;
    param_2[1] = uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18;
    uVar5 = uVar1 ^ uVar6 ^ uVar5;
    param_2[2] = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;
    uVar4 = uVar4 ^ uVar3;
    param_2[3] = uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  crypt_argchk("pt != NULL","src/ciphers/noekeon.c",0xae);
}

