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

{
  ulong64 uVar1;
  ulong uVar2;
  uint uVar3;
  uint uVar4;
  ulong uVar5;
  uint uVar6;
  
  uVar5 = *(ulong *)pt;
  uVar2 = *(ulong *)(pt + 8);
  uVar5 = (uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |
           (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |
           (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38) ^ (skey->xtea).A[1];
  uVar1 = F((skey->xtea).A[5] ^ uVar5);
  uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |
           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |
           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ (skey->xtea).A[2];
  uVar1 = F((skey->xtea).A[6] ^ uVar2);
  uVar5 = uVar5 ^ uVar1;
  uVar1 = F((skey->xtea).A[7] ^ uVar5);
  uVar2 = uVar2 ^ uVar1;
  uVar1 = F((skey->xtea).A[8] ^ uVar2);
  uVar5 = uVar5 ^ uVar1;
  uVar1 = F((skey->xtea).A[9] ^ uVar5);
  uVar2 = uVar2 ^ uVar1;
  uVar1 = F((skey->xtea).A[10] ^ uVar2);
  uVar5 = uVar1 ^ uVar5;
  uVar3 = (uint)(uVar5 >> 0x20);
  uVar4 = (uint)((skey->xtea).A[0x1d] >> 0x20) & uVar3;
  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;
  uVar6 = ((uint)uVar2 | (uint)(skey->xtea).A[0x1e]) ^ (uint)(uVar2 >> 0x20);
  uVar5 = CONCAT44(((uint)(skey->xtea).A[0x1d] | uVar4) ^ uVar3,uVar4);
  uVar3 = (uint)((skey->xtea).A[0x1e] >> 0x20) & uVar6;
  uVar1 = F((skey->xtea).A[0xb] ^ uVar5);
  uVar2 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;
  uVar1 = F((skey->xtea).A[0xc] ^ uVar2);
  uVar5 = uVar5 ^ uVar1;
  uVar1 = F((skey->xtea).A[0xd] ^ uVar5);
  uVar2 = uVar2 ^ uVar1;
  uVar1 = F((skey->xtea).A[0xe] ^ uVar2);
  uVar5 = uVar5 ^ uVar1;
  uVar1 = F((skey->xtea).A[0xf] ^ uVar5);
  uVar2 = uVar2 ^ uVar1;
  uVar1 = F((skey->xtea).A[0x10] ^ uVar2);
  uVar5 = uVar5 ^ uVar1;
  uVar3 = (uint)(uVar5 >> 0x20);
  uVar4 = (uint)((skey->xtea).A[0x1f] >> 0x20) & uVar3;
  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;
  uVar5 = CONCAT44(((uint)(skey->xtea).A[0x1f] | uVar4) ^ uVar3,uVar4);
  uVar4 = ((uint)uVar2 | (uint)(skey->xtea).B[0]) ^ (uint)(uVar2 >> 0x20);
  uVar3 = (uint)((skey->xtea).B[0] >> 0x20) & uVar4;
  uVar1 = F((skey->xtea).A[0x11] ^ uVar5);
  uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar2) ^ uVar1;
  uVar1 = F((skey->xtea).A[0x12] ^ uVar2);
  uVar5 = uVar5 ^ uVar1;
  uVar1 = F((skey->xtea).A[0x13] ^ uVar5);
  uVar2 = uVar2 ^ uVar1;
  uVar1 = F((skey->xtea).A[0x14] ^ uVar2);
  uVar5 = uVar5 ^ uVar1;
  uVar1 = F((skey->xtea).A[0x15] ^ uVar5);
  uVar2 = uVar2 ^ uVar1;
  uVar1 = F((skey->xtea).A[0x16] ^ uVar2);
  uVar5 = uVar1 ^ uVar5;
  if ((skey->des).ek[0] == 0x18) {
    uVar4 = (uint)(uVar5 >> 0x20);
    uVar3 = (uint)((skey->xtea).B[1] >> 0x20) & uVar4;
    uVar3 = (uint)uVar5 ^ (uVar3 << 1 | uVar3 >> 0x1f);
    uVar5 = CONCAT44(((uint)(skey->xtea).B[1] | uVar3) ^ uVar4,uVar3);
    uVar4 = ((uint)uVar2 | (uint)(skey->xtea).B[2]) ^ (uint)(uVar2 >> 0x20);
    uVar3 = (uint)((skey->xtea).B[2] >> 0x20) & uVar4;
    uVar1 = F((skey->xtea).A[0x17] ^ uVar5);
    uVar2 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;
    uVar1 = F((skey->xtea).A[0x18] ^ uVar2);
    uVar5 = uVar5 ^ uVar1;
    uVar1 = F((skey->xtea).A[0x19] ^ uVar5);
    uVar2 = uVar2 ^ uVar1;
    uVar1 = F((skey->xtea).A[0x1a] ^ uVar2);
    uVar5 = uVar5 ^ uVar1;
    uVar1 = F((skey->xtea).A[0x1b] ^ uVar5);
    uVar2 = uVar2 ^ uVar1;
    uVar1 = F((skey->xtea).A[0x1c] ^ uVar2);
    uVar5 = uVar1 ^ uVar5;
  }
  uVar5 = uVar5 ^ (skey->xtea).A[4];
  uVar2 = uVar2 ^ (skey->xtea).A[3];
  *(ulong *)ct = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |
                 (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |
                 (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |
                 uVar2 << 0x38;
  *(ulong *)(ct + 8) =
       uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |
       (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |
       (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;
  return 0;
}



undefined8 camellia_ecb_encrypt(ulong *param_1,ulong *param_2,int *param_3)

{
  ulong uVar1;
  ulong uVar2;
  uint uVar3;
  uint uVar4;
  ulong uVar5;
  uint uVar6;
  
  uVar1 = *param_1;
  uVar2 = param_1[1];
  uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |
           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |
           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2);
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5);
  uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |
           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |
           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4);
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2);
  uVar5 = uVar5 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5);
  uVar2 = uVar2 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2);
  uVar5 = uVar5 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5);
  uVar2 = uVar2 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2);
  uVar1 = uVar1 ^ uVar5;
  uVar3 = (uint)(uVar1 >> 0x20);
  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3;
  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1;
  uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20);
  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4);
  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5);
  uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;
  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1);
  uVar5 = uVar5 ^ uVar2;
  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5);
  uVar1 = uVar1 ^ uVar2;
  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1);
  uVar5 = uVar5 ^ uVar2;
  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5);
  uVar1 = uVar1 ^ uVar2;
  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1);
  uVar5 = uVar5 ^ uVar2;
  uVar3 = (uint)(uVar5 >> 0x20);
  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3;
  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;
  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4);
  uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20);
  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4;
  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5);
  uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2);
  uVar5 = uVar5 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5);
  uVar2 = uVar2 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2);
  uVar5 = uVar5 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5);
  uVar2 = uVar2 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2);
  uVar1 = uVar1 ^ uVar5;
  if (*param_3 == 0x18) {
    uVar4 = (uint)(uVar1 >> 0x20);
    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;
    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);
    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);
    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);
    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;
    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);
    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;
    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);
    uVar5 = uVar5 ^ uVar2;
    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);
    uVar1 = uVar1 ^ uVar2;
    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);
    uVar5 = uVar5 ^ uVar2;
    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);
    uVar2 = uVar1 ^ uVar2;
    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);
    uVar1 = uVar1 ^ uVar5;
  }
  uVar1 = uVar1 ^ *(ulong *)(param_3 + 8);
  uVar2 = uVar2 ^ *(ulong *)(param_3 + 6);
  *param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |
             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |
             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38;
  param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18
               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |
               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38;
  return 0;
}


PUSH R15
MOV R15D,0x1
PUSH R14
PUSH R13
MOV R13,RSI
PUSH R12
PUSH RBP
PUSH RBX
MOV R12,qword ptr [RDI]
MOV RBX,RDX
MOV RBP,qword ptr [RDI + 0x8]
MOV RDI,qword ptr [RDX + 0x28]
BSWAP R12
XOR R12,qword ptr [RDX + 0x8]
XOR RDI,R12
BSWAP RBP
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0x30]
XOR RBP,RAX
XOR RBP,qword ptr [RBX + 0x10]
XOR RDI,RBP
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0x38]
XOR R12,RAX
XOR RDI,R12
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0x40]
XOR RBP,RAX
XOR RDI,RBP
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0x48]
XOR R12,RAX
XOR RDI,R12
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0x50]
XOR RBP,RAX
XOR RDI,RBP
MOV R14D,EBP
CALL 0x001193d0
MOV RSI,qword ptr [RBX + 0xe8]
MOV ECX,R15D
MOV RDI,qword ptr [RBX + 0xf0]
XOR RAX,R12
MOV RDX,RAX
MOV R12,RSI
OR R14D,EDI
SHR RDX,0x20
SHR R12,0x20
AND R12D,EDX
ROL R12D,CL
XOR R12D,EAX
MOV RAX,RBP
OR ESI,R12D
SHR RAX,0x20
XOR ESI,EDX
XOR R14D,EAX
SHL RSI,0x20
OR R12,RSI
SHR RDI,0x20
AND EDI,R14D
SHL R14,0x20
ROL EDI,CL
XOR EBP,EDI
MOV RDI,qword ptr [RBX + 0x58]
OR R14,RBP
XOR RDI,R12
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0x60]
XOR R14,RAX
XOR RDI,R14
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0x68]
XOR R12,RAX
XOR RDI,R12
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0x70]
XOR R14,RAX
XOR RDI,R14
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0x78]
XOR R12,RAX
XOR RDI,R12
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0x80]
XOR R14,RAX
XOR RDI,R14
MOV EBP,R14D
CALL 0x001193d0
MOV R9,qword ptr [RBX + 0xf8]
MOV ECX,R15D
MOV R11,R14
XOR R12,RAX
MOV RDX,qword ptr [RBX + 0x100]
MOV RDI,qword ptr [RBX + 0x88]
MOV R10,R9
MOV R8,R12
SHR R8,0x20
SHR R10,0x20
AND R10D,R8D
ROL R10D,CL
XOR R10D,R12D
MOV R12D,R9D
OR R12D,R10D
XOR R12D,R8D
SHL R12,0x20
OR R12,R10
SHR R11,0x20
OR EBP,EDX
XOR EBP,R11D
SHR RDX,0x20
XOR RDI,R12
AND EDX,EBP
SHL RBP,0x20
ROL EDX,CL
XOR EDX,R14D
OR RBP,RDX
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0x90]
XOR RBP,RAX
XOR RDI,RBP
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0x98]
XOR R12,RAX
XOR RDI,R12
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0xa0]
XOR RBP,RAX
XOR RDI,RBP
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0xa8]
XOR R12,RAX
XOR RDI,R12
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0xb0]
XOR RBP,RAX
XOR RDI,RBP
CALL 0x001193d0
XOR RAX,R12
CMP dword ptr [RBX],0x18
JNZ 0x0011977a
MOV RSI,qword ptr [RBX + 0x108]
MOV RDI,RAX
MOV ECX,R15D
MOV R8,RBP
SHR RDI,0x20
MOV R9D,EBP
SHR R8,0x20
MOV R14,RSI
SHR R14,0x20
AND R14D,EDI
ROL R14D,CL
XOR EAX,R14D
OR ESI,EAX
MOV R12D,EAX
MOV RAX,qword ptr [RBX + 0x110]
XOR ESI,EDI
MOV RDI,qword ptr [RBX + 0xb8]
SHL RSI,0x20
OR R9D,EAX
SHR RAX,0x20
OR R12,RSI
XOR R9D,R8D
XOR RDI,R12
AND EAX,R9D
SHL R9,0x20
ROL EAX,CL
XOR EBP,EAX
OR RBP,R9
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0xc0]
XOR RBP,RAX
XOR RDI,RBP
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0xc8]
XOR R12,RAX
XOR RDI,R12
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0xd0]
XOR RBP,RAX
XOR RDI,RBP
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0xd8]
XOR R12,RAX
XOR RDI,R12
CALL 0x001193d0
MOV RDI,qword ptr [RBX + 0xe0]
XOR RBP,RAX
XOR RDI,RBP
CALL 0x001193d0
XOR RAX,R12
XOR RAX,qword ptr [RBX + 0x20]
XOR RBP,qword ptr [RBX + 0x18]
BSWAP RBP
POP RBX
MOV qword ptr [R13],RBP
BSWAP RAX
POP RBP
POP R12
MOV qword ptr [R13 + 0x8],RAX
XOR EAX,EAX
POP R13
POP R14
POP R15
RET
(translation_unit "undefined8 camellia_ecb_encrypt(ulong *param_1,ulong *param_2,int *param_3)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  uint uVar6;\n  \n  uVar1 = *param_1;\n  uVar2 = param_1[1];\n  uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5);\n  uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  uVar3 = (uint)(uVar1 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1;\n  uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20);\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5);\n  uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar3 = (uint)(uVar5 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4);\n  uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5);\n  uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  if (*param_3 == 0x18) {\n    uVar4 = (uint)(uVar1 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;\n    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);\n    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);\n    uVar1 = uVar1 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);\n    uVar2 = uVar1 ^ uVar2;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);\n    uVar1 = uVar1 ^ uVar5;\n  }\n  uVar1 = uVar1 ^ *(ulong *)(param_3 + 8);\n  uVar2 = uVar2 ^ *(ulong *)(param_3 + 6);\n  *param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38;\n  param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38;\n  return 0;\n}\n\n" (function_definition "undefined8 camellia_ecb_encrypt(ulong *param_1,ulong *param_2,int *param_3)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  uint uVar6;\n  \n  uVar1 = *param_1;\n  uVar2 = param_1[1];\n  uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5);\n  uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  uVar3 = (uint)(uVar1 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1;\n  uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20);\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5);\n  uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar3 = (uint)(uVar5 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4);\n  uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5);\n  uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  if (*param_3 == 0x18) {\n    uVar4 = (uint)(uVar1 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;\n    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);\n    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);\n    uVar1 = uVar1 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);\n    uVar2 = uVar1 ^ uVar2;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);\n    uVar1 = uVar1 ^ uVar5;\n  }\n  uVar1 = uVar1 ^ *(ulong *)(param_3 + 8);\n  uVar2 = uVar2 ^ *(ulong *)(param_3 + 6);\n  *param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38;\n  param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38;\n  return 0;\n}" type_identifier (function_declarator "camellia_ecb_encrypt(ulong *param_1,ulong *param_2,int *param_3)" identifier (parameter_list "(ulong *param_1,ulong *param_2,int *param_3)" ( (parameter_declaration "ulong *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  ulong uVar1;\n  ulong uVar2;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  uint uVar6;\n  \n  uVar1 = *param_1;\n  uVar2 = param_1[1];\n  uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5);\n  uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  uVar3 = (uint)(uVar1 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1;\n  uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20);\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5);\n  uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar3 = (uint)(uVar5 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4);\n  uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5);\n  uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  if (*param_3 == 0x18) {\n    uVar4 = (uint)(uVar1 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;\n    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);\n    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);\n    uVar1 = uVar1 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);\n    uVar2 = uVar1 ^ uVar2;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);\n    uVar1 = uVar1 ^ uVar5;\n  }\n  uVar1 = uVar1 ^ *(ulong *)(param_3 + 8);\n  uVar2 = uVar2 ^ *(ulong *)(param_3 + 6);\n  *param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38;\n  param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38;\n  return 0;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2);" (assignment_expression "uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2)" identifier = (binary_expression "(uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2)" (parenthesized_expression "(uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38)" ( (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28" (binary_expression "uVar1 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar1 & 0xff000000000000)" ( (binary_expression "uVar1 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar1 & 0xff0000000000)" ( (binary_expression "uVar1 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00000000) >> 8" (parenthesized_expression "(uVar1 & 0xff00000000)" ( (binary_expression "uVar1 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff000000) << 8" (parenthesized_expression "(uVar1 & 0xff000000)" ( (binary_expression "uVar1 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar1 & 0xff0000) << 0x18" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar1 & 0xff00) << 0x28" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x38" identifier << number_literal)) )) ^ (pointer_expression "*(ulong *)(param_3 + 2)" * (cast_expression "(ulong *)(param_3 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 2)" ( (binary_expression "param_3 + 2" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 10) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 10) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 10)" * (cast_expression "(ulong *)(param_3 + 10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 10)" ( (binary_expression "param_3 + 10" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4);" (assignment_expression "uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4)" identifier = (binary_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4)" (binary_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1" (parenthesized_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" ( (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" ( (binary_expression "uVar2 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" ( (binary_expression "uVar2 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" ( (binary_expression "uVar2 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" ( (binary_expression "uVar2 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x38" identifier << number_literal)) )) ^ identifier) ^ (pointer_expression "*(ulong *)(param_3 + 4)" * (cast_expression "(ulong *)(param_3 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2)" identifier (argument_list "(*(ulong *)(param_3 + 0xc) ^ uVar2)" ( (binary_expression "*(ulong *)(param_3 + 0xc) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0xc)" * (cast_expression "(ulong *)(param_3 + 0xc)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xc)" ( (binary_expression "param_3 + 0xc" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0xe) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0xe) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0xe)" * (cast_expression "(ulong *)(param_3 + 0xe)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xe)" ( (binary_expression "param_3 + 0xe" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2)" identifier (argument_list "(*(ulong *)(param_3 + 0x10) ^ uVar2)" ( (binary_expression "*(ulong *)(param_3 + 0x10) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x10)" * (cast_expression "(ulong *)(param_3 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x12) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x12) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x12)" * (cast_expression "(ulong *)(param_3 + 0x12)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x12)" ( (binary_expression "param_3 + 0x12" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2)" identifier (argument_list "(*(ulong *)(param_3 + 0x14) ^ uVar2)" ( (binary_expression "*(ulong *)(param_3 + 0x14) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x14)" * (cast_expression "(ulong *)(param_3 + 0x14)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x14)" ( (binary_expression "param_3 + 0x14" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = uVar1 ^ uVar5;" (assignment_expression "uVar1 = uVar1 ^ uVar5" identifier = (binary_expression "uVar1 ^ uVar5" identifier ^ identifier)) ;) (expression_statement "uVar3 = (uint)(uVar1 >> 0x20);" (assignment_expression "uVar3 = (uint)(uVar1 >> 0x20)" identifier = (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3;" (assignment_expression "uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3" identifier = (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3a)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x3a)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3a)" ( (binary_expression "param_3 + 0x3a" identifier + number_literal) )))) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1;" (assignment_expression "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1" identifier = (binary_expression "(uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1" (parenthesized_expression "(uVar4 << 1 | uVar4 >> 0x1f)" ( (binary_expression "uVar4 << 1 | uVar4 >> 0x1f" (binary_expression "uVar4 << 1" identifier << number_literal) | (binary_expression "uVar4 >> 0x1f" identifier >> number_literal)) )) ^ (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20);" (assignment_expression "uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20)" identifier = (binary_expression "((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20)" (parenthesized_expression "((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c))" ( (binary_expression "(uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "(uint)*(undefined8 *)(param_3 + 0x3c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x3c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3c)" ( (binary_expression "param_3 + 0x3c" identifier + number_literal) ))))) )) ^ (call_expression "(uint)(uVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) ))))) ;) (expression_statement "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4);" (assignment_expression "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4)" identifier = (call_expression "CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4)" identifier (argument_list "(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4)" ( (binary_expression "((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3" (parenthesized_expression "((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4)" ( (binary_expression "(uint)*(undefined8 *)(param_3 + 0x3a) | uVar4" (binary_expression "(uint)*(undefined8 *)(param_3 + 0x3a)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x3a)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3a)" ( (binary_expression "param_3 + 0x3a" identifier + number_literal) )))) | identifier) )) ^ identifier) , identifier )))) ;) (expression_statement "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6;" (assignment_expression "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6" identifier = (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3c)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x3c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3c)" ( (binary_expression "param_3 + 0x3c" identifier + number_literal) )))) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x16) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x16) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x16)" * (cast_expression "(ulong *)(param_3 + 0x16)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x16)" ( (binary_expression "param_3 + 0x16" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;" (assignment_expression "uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" identifier = (binary_expression "CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" (call_expression "CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" identifier (argument_list "(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" ( identifier , (binary_expression "(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" ( (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" identifier << number_literal) | (binary_expression "uVar3 >> 0x1f" identifier >> number_literal)) ))) ))) ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1)" identifier (argument_list "(*(ulong *)(param_3 + 0x18) ^ uVar1)" ( (binary_expression "*(ulong *)(param_3 + 0x18) ^ uVar1" (pointer_expression "*(ulong *)(param_3 + 0x18)" * (cast_expression "(ulong *)(param_3 + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x18)" ( (binary_expression "param_3 + 0x18" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar2;" (assignment_expression "uVar5 = uVar5 ^ uVar2" identifier = (binary_expression "uVar5 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x1a) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x1a) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x1a)" * (cast_expression "(ulong *)(param_3 + 0x1a)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1a)" ( (binary_expression "param_3 + 0x1a" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = uVar1 ^ uVar2;" (assignment_expression "uVar1 = uVar1 ^ uVar2" identifier = (binary_expression "uVar1 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1)" identifier (argument_list "(*(ulong *)(param_3 + 0x1c) ^ uVar1)" ( (binary_expression "*(ulong *)(param_3 + 0x1c) ^ uVar1" (pointer_expression "*(ulong *)(param_3 + 0x1c)" * (cast_expression "(ulong *)(param_3 + 0x1c)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar2;" (assignment_expression "uVar5 = uVar5 ^ uVar2" identifier = (binary_expression "uVar5 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x1e) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x1e) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x1e)" * (cast_expression "(ulong *)(param_3 + 0x1e)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1e)" ( (binary_expression "param_3 + 0x1e" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = uVar1 ^ uVar2;" (assignment_expression "uVar1 = uVar1 ^ uVar2" identifier = (binary_expression "uVar1 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1)" identifier (argument_list "(*(ulong *)(param_3 + 0x20) ^ uVar1)" ( (binary_expression "*(ulong *)(param_3 + 0x20) ^ uVar1" (pointer_expression "*(ulong *)(param_3 + 0x20)" * (cast_expression "(ulong *)(param_3 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar2;" (assignment_expression "uVar5 = uVar5 ^ uVar2" identifier = (binary_expression "uVar5 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar3 = (uint)(uVar5 >> 0x20);" (assignment_expression "uVar3 = (uint)(uVar5 >> 0x20)" identifier = (call_expression "(uint)(uVar5 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3;" (assignment_expression "uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3" identifier = (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3e)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x3e)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3e)" ( (binary_expression "param_3 + 0x3e" identifier + number_literal) )))) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;" (assignment_expression "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5" identifier = (binary_expression "(uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5" (parenthesized_expression "(uVar4 << 1 | uVar4 >> 0x1f)" ( (binary_expression "uVar4 << 1 | uVar4 >> 0x1f" (binary_expression "uVar4 << 1" identifier << number_literal) | (binary_expression "uVar4 >> 0x1f" identifier >> number_literal)) )) ^ (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4);" (assignment_expression "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4)" identifier = (call_expression "CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4)" identifier (argument_list "(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4)" ( (binary_expression "((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3" (parenthesized_expression "((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4)" ( (binary_expression "(uint)*(undefined8 *)(param_3 + 0x3e) | uVar4" (binary_expression "(uint)*(undefined8 *)(param_3 + 0x3e)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x3e)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3e)" ( (binary_expression "param_3 + 0x3e" identifier + number_literal) )))) | identifier) )) ^ identifier) , identifier )))) ;) (expression_statement "uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20);" (assignment_expression "uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20)" identifier = (binary_expression "((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20)" (parenthesized_expression "((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40))" ( (binary_expression "(uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "(uint)*(undefined8 *)(param_3 + 0x40)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x40)" ( (binary_expression "param_3 + 0x40" identifier + number_literal) ))))) )) ^ (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) ))))) ;) (expression_statement "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4;" (assignment_expression "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4" identifier = (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x40)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x40)" ( (binary_expression "param_3 + 0x40" identifier + number_literal) )))) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x22) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x22) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x22)" * (cast_expression "(ulong *)(param_3 + 0x22)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22)" ( (binary_expression "param_3 + 0x22" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2;" (assignment_expression "uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2" identifier = (binary_expression "CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2" (call_expression "CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1)" identifier (argument_list "(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1)" ( identifier , (binary_expression "(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1" (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" ( (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" identifier << number_literal) | (binary_expression "uVar3 >> 0x1f" identifier >> number_literal)) )) ^ (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2)" identifier (argument_list "(*(ulong *)(param_3 + 0x24) ^ uVar2)" ( (binary_expression "*(ulong *)(param_3 + 0x24) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x24)" * (cast_expression "(ulong *)(param_3 + 0x24)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x26) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x26) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x26)" * (cast_expression "(ulong *)(param_3 + 0x26)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x26)" ( (binary_expression "param_3 + 0x26" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2)" identifier (argument_list "(*(ulong *)(param_3 + 0x28) ^ uVar2)" ( (binary_expression "*(ulong *)(param_3 + 0x28) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x28)" * (cast_expression "(ulong *)(param_3 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x2a) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x2a) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x2a)" * (cast_expression "(ulong *)(param_3 + 0x2a)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2a)" ( (binary_expression "param_3 + 0x2a" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2)" identifier (argument_list "(*(ulong *)(param_3 + 0x2c) ^ uVar2)" ( (binary_expression "*(ulong *)(param_3 + 0x2c) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x2c)" * (cast_expression "(ulong *)(param_3 + 0x2c)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2c)" ( (binary_expression "param_3 + 0x2c" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = uVar1 ^ uVar5;" (assignment_expression "uVar1 = uVar1 ^ uVar5" identifier = (binary_expression "uVar1 ^ uVar5" identifier ^ identifier)) ;) (if_statement "if (*param_3 == 0x18) {\n    uVar4 = (uint)(uVar1 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;\n    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);\n    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);\n    uVar1 = uVar1 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);\n    uVar2 = uVar1 ^ uVar2;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);\n    uVar1 = uVar1 ^ uVar5;\n  }" if (parenthesized_expression "(*param_3 == 0x18)" ( (binary_expression "*param_3 == 0x18" (pointer_expression "*param_3" * identifier) == number_literal) )) (compound_statement "{\n    uVar4 = (uint)(uVar1 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;\n    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);\n    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);\n    uVar1 = uVar1 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);\n    uVar2 = uVar1 ^ uVar2;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);\n    uVar1 = uVar1 ^ uVar5;\n  }" { (expression_statement "uVar4 = (uint)(uVar1 >> 0x20);" (assignment_expression "uVar4 = (uint)(uVar1 >> 0x20)" identifier = (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;" (assignment_expression "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4" identifier = (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x42)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x42)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x42)" ( (binary_expression "param_3 + 0x42" identifier + number_literal) )))) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);" (assignment_expression "uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f)" identifier = (binary_expression "(uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f)" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" ( (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" identifier << number_literal) | (binary_expression "uVar3 >> 0x1f" identifier >> number_literal)) )))) ;) (expression_statement "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);" (assignment_expression "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3)" identifier = (call_expression "CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3)" identifier (argument_list "(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3)" ( (binary_expression "((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4" (parenthesized_expression "((uint)*(undefined8 *)(param_3 + 0x42) | uVar3)" ( (binary_expression "(uint)*(undefined8 *)(param_3 + 0x42) | uVar3" (binary_expression "(uint)*(undefined8 *)(param_3 + 0x42)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x42)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x42)" ( (binary_expression "param_3 + 0x42" identifier + number_literal) )))) | identifier) )) ^ identifier) , identifier )))) ;) (expression_statement "uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);" (assignment_expression "uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20)" identifier = (binary_expression "((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20)" (parenthesized_expression "((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44))" ( (binary_expression "(uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "(uint)*(undefined8 *)(param_3 + 0x44)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x44)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x44)" ( (binary_expression "param_3 + 0x44" identifier + number_literal) ))))) )) ^ (call_expression "(uint)(uVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) ))))) ;) (expression_statement "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;" (assignment_expression "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4" identifier = (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x44)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x44)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x44)" ( (binary_expression "param_3 + 0x44" identifier + number_literal) )))) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x2e) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x2e) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x2e)" * (cast_expression "(ulong *)(param_3 + 0x2e)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2e)" ( (binary_expression "param_3 + 0x2e" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;" (assignment_expression "uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" identifier = (binary_expression "CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" (call_expression "CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" identifier (argument_list "(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" ( identifier , (binary_expression "(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" ( (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" identifier << number_literal) | (binary_expression "uVar3 >> 0x1f" identifier >> number_literal)) ))) ))) ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1)" identifier (argument_list "(*(ulong *)(param_3 + 0x30) ^ uVar1)" ( (binary_expression "*(ulong *)(param_3 + 0x30) ^ uVar1" (pointer_expression "*(ulong *)(param_3 + 0x30)" * (cast_expression "(ulong *)(param_3 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x30)" ( (binary_expression "param_3 + 0x30" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar2;" (assignment_expression "uVar5 = uVar5 ^ uVar2" identifier = (binary_expression "uVar5 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x32) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x32) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x32)" * (cast_expression "(ulong *)(param_3 + 0x32)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x32)" ( (binary_expression "param_3 + 0x32" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = uVar1 ^ uVar2;" (assignment_expression "uVar1 = uVar1 ^ uVar2" identifier = (binary_expression "uVar1 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1)" identifier (argument_list "(*(ulong *)(param_3 + 0x34) ^ uVar1)" ( (binary_expression "*(ulong *)(param_3 + 0x34) ^ uVar1" (pointer_expression "*(ulong *)(param_3 + 0x34)" * (cast_expression "(ulong *)(param_3 + 0x34)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x34)" ( (binary_expression "param_3 + 0x34" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar2;" (assignment_expression "uVar5 = uVar5 ^ uVar2" identifier = (binary_expression "uVar5 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x36) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x36) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x36)" * (cast_expression "(ulong *)(param_3 + 0x36)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x36)" ( (binary_expression "param_3 + 0x36" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar1 ^ uVar2;" (assignment_expression "uVar2 = uVar1 ^ uVar2" identifier = (binary_expression "uVar1 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2)" identifier (argument_list "(*(ulong *)(param_3 + 0x38) ^ uVar2)" ( (binary_expression "*(ulong *)(param_3 + 0x38) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x38)" * (cast_expression "(ulong *)(param_3 + 0x38)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x38)" ( (binary_expression "param_3 + 0x38" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = uVar1 ^ uVar5;" (assignment_expression "uVar1 = uVar1 ^ uVar5" identifier = (binary_expression "uVar1 ^ uVar5" identifier ^ identifier)) ;) })) (expression_statement "uVar1 = uVar1 ^ *(ulong *)(param_3 + 8);" (assignment_expression "uVar1 = uVar1 ^ *(ulong *)(param_3 + 8)" identifier = (binary_expression "uVar1 ^ *(ulong *)(param_3 + 8)" identifier ^ (pointer_expression "*(ulong *)(param_3 + 8)" * (cast_expression "(ulong *)(param_3 + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) )))))) ;) (expression_statement "uVar2 = uVar2 ^ *(ulong *)(param_3 + 6);" (assignment_expression "uVar2 = uVar2 ^ *(ulong *)(param_3 + 6)" identifier = (binary_expression "uVar2 ^ *(ulong *)(param_3 + 6)" identifier ^ (pointer_expression "*(ulong *)(param_3 + 6)" * (cast_expression "(ulong *)(param_3 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 6)" ( (binary_expression "param_3 + 6" identifier + number_literal) )))))) ;) (expression_statement "*param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38;" (assignment_expression "*param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" ( (binary_expression "uVar2 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" ( (binary_expression "uVar2 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" ( (binary_expression "uVar2 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" ( (binary_expression "uVar2 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x38" identifier << number_literal))) ;) (expression_statement "param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38;" (assignment_expression "param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28" (binary_expression "uVar1 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar1 & 0xff000000000000)" ( (binary_expression "uVar1 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar1 & 0xff0000000000)" ( (binary_expression "uVar1 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00000000) >> 8" (parenthesized_expression "(uVar1 & 0xff00000000)" ( (binary_expression "uVar1 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff000000) << 8" (parenthesized_expression "(uVar1 & 0xff000000)" ( (binary_expression "uVar1 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar1 & 0xff0000) << 0x18" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar1 & 0xff00) << 0x28" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x38" identifier << number_literal))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "int camellia_ecb_encrypt(uchar *pt,uchar *ct,symmetric_key *skey)\n\n{\n  ulong64 uVar1;\n  ulong uVar2;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  uint uVar6;\n  \n  uVar5 = *(ulong *)pt;\n  uVar2 = *(ulong *)(pt + 8);\n  uVar5 = (uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n           (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n           (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38) ^ (skey->xtea).A[1];\n  uVar1 = F((skey->xtea).A[5] ^ uVar5);\n  uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ (skey->xtea).A[2];\n  uVar1 = F((skey->xtea).A[6] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[7] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[8] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[9] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[10] ^ uVar2);\n  uVar5 = uVar1 ^ uVar5;\n  uVar3 = (uint)(uVar5 >> 0x20);\n  uVar4 = (uint)((skey->xtea).A[0x1d] >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;\n  uVar6 = ((uint)uVar2 | (uint)(skey->xtea).A[0x1e]) ^ (uint)(uVar2 >> 0x20);\n  uVar5 = CONCAT44(((uint)(skey->xtea).A[0x1d] | uVar4) ^ uVar3,uVar4);\n  uVar3 = (uint)((skey->xtea).A[0x1e] >> 0x20) & uVar6;\n  uVar1 = F((skey->xtea).A[0xb] ^ uVar5);\n  uVar2 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n  uVar1 = F((skey->xtea).A[0xc] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0xd] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0xe] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0xf] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x10] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar3 = (uint)(uVar5 >> 0x20);\n  uVar4 = (uint)((skey->xtea).A[0x1f] >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;\n  uVar5 = CONCAT44(((uint)(skey->xtea).A[0x1f] | uVar4) ^ uVar3,uVar4);\n  uVar4 = ((uint)uVar2 | (uint)(skey->xtea).B[0]) ^ (uint)(uVar2 >> 0x20);\n  uVar3 = (uint)((skey->xtea).B[0] >> 0x20) & uVar4;\n  uVar1 = F((skey->xtea).A[0x11] ^ uVar5);\n  uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar2) ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x12] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x13] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x14] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x15] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x16] ^ uVar2);\n  uVar5 = uVar1 ^ uVar5;\n  if ((skey->des).ek[0] == 0x18) {\n    uVar4 = (uint)(uVar5 >> 0x20);\n    uVar3 = (uint)((skey->xtea).B[1] >> 0x20) & uVar4;\n    uVar3 = (uint)uVar5 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)(skey->xtea).B[1] | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)(skey->xtea).B[2]) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((skey->xtea).B[2] >> 0x20) & uVar4;\n    uVar1 = F((skey->xtea).A[0x17] ^ uVar5);\n    uVar2 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x18] ^ uVar2);\n    uVar5 = uVar5 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x19] ^ uVar5);\n    uVar2 = uVar2 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x1a] ^ uVar2);\n    uVar5 = uVar5 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x1b] ^ uVar5);\n    uVar2 = uVar2 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x1c] ^ uVar2);\n    uVar5 = uVar1 ^ uVar5;\n  }\n  uVar5 = uVar5 ^ (skey->xtea).A[4];\n  uVar2 = uVar2 ^ (skey->xtea).A[3];\n  *(ulong *)ct = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                 (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                 (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n                 uVar2 << 0x38;\n  *(ulong *)(ct + 8) =\n       uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n       (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n       (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n  return 0;\n}\n\n" (function_definition "int camellia_ecb_encrypt(uchar *pt,uchar *ct,symmetric_key *skey)\n\n{\n  ulong64 uVar1;\n  ulong uVar2;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  uint uVar6;\n  \n  uVar5 = *(ulong *)pt;\n  uVar2 = *(ulong *)(pt + 8);\n  uVar5 = (uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n           (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n           (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38) ^ (skey->xtea).A[1];\n  uVar1 = F((skey->xtea).A[5] ^ uVar5);\n  uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ (skey->xtea).A[2];\n  uVar1 = F((skey->xtea).A[6] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[7] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[8] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[9] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[10] ^ uVar2);\n  uVar5 = uVar1 ^ uVar5;\n  uVar3 = (uint)(uVar5 >> 0x20);\n  uVar4 = (uint)((skey->xtea).A[0x1d] >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;\n  uVar6 = ((uint)uVar2 | (uint)(skey->xtea).A[0x1e]) ^ (uint)(uVar2 >> 0x20);\n  uVar5 = CONCAT44(((uint)(skey->xtea).A[0x1d] | uVar4) ^ uVar3,uVar4);\n  uVar3 = (uint)((skey->xtea).A[0x1e] >> 0x20) & uVar6;\n  uVar1 = F((skey->xtea).A[0xb] ^ uVar5);\n  uVar2 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n  uVar1 = F((skey->xtea).A[0xc] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0xd] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0xe] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0xf] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x10] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar3 = (uint)(uVar5 >> 0x20);\n  uVar4 = (uint)((skey->xtea).A[0x1f] >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;\n  uVar5 = CONCAT44(((uint)(skey->xtea).A[0x1f] | uVar4) ^ uVar3,uVar4);\n  uVar4 = ((uint)uVar2 | (uint)(skey->xtea).B[0]) ^ (uint)(uVar2 >> 0x20);\n  uVar3 = (uint)((skey->xtea).B[0] >> 0x20) & uVar4;\n  uVar1 = F((skey->xtea).A[0x11] ^ uVar5);\n  uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar2) ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x12] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x13] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x14] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x15] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x16] ^ uVar2);\n  uVar5 = uVar1 ^ uVar5;\n  if ((skey->des).ek[0] == 0x18) {\n    uVar4 = (uint)(uVar5 >> 0x20);\n    uVar3 = (uint)((skey->xtea).B[1] >> 0x20) & uVar4;\n    uVar3 = (uint)uVar5 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)(skey->xtea).B[1] | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)(skey->xtea).B[2]) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((skey->xtea).B[2] >> 0x20) & uVar4;\n    uVar1 = F((skey->xtea).A[0x17] ^ uVar5);\n    uVar2 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x18] ^ uVar2);\n    uVar5 = uVar5 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x19] ^ uVar5);\n    uVar2 = uVar2 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x1a] ^ uVar2);\n    uVar5 = uVar5 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x1b] ^ uVar5);\n    uVar2 = uVar2 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x1c] ^ uVar2);\n    uVar5 = uVar1 ^ uVar5;\n  }\n  uVar5 = uVar5 ^ (skey->xtea).A[4];\n  uVar2 = uVar2 ^ (skey->xtea).A[3];\n  *(ulong *)ct = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                 (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                 (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n                 uVar2 << 0x38;\n  *(ulong *)(ct + 8) =\n       uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n       (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n       (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n  return 0;\n}" primitive_type (function_declarator "camellia_ecb_encrypt(uchar *pt,uchar *ct,symmetric_key *skey)" identifier (parameter_list "(uchar *pt,uchar *ct,symmetric_key *skey)" ( (parameter_declaration "uchar *pt" type_identifier (pointer_declarator "*pt" * identifier)) , (parameter_declaration "uchar *ct" type_identifier (pointer_declarator "*ct" * identifier)) , (parameter_declaration "symmetric_key *skey" type_identifier (pointer_declarator "*skey" * identifier)) ))) (compound_statement "{\n  ulong64 uVar1;\n  ulong uVar2;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  uint uVar6;\n  \n  uVar5 = *(ulong *)pt;\n  uVar2 = *(ulong *)(pt + 8);\n  uVar5 = (uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n           (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n           (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38) ^ (skey->xtea).A[1];\n  uVar1 = F((skey->xtea).A[5] ^ uVar5);\n  uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ (skey->xtea).A[2];\n  uVar1 = F((skey->xtea).A[6] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[7] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[8] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[9] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[10] ^ uVar2);\n  uVar5 = uVar1 ^ uVar5;\n  uVar3 = (uint)(uVar5 >> 0x20);\n  uVar4 = (uint)((skey->xtea).A[0x1d] >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;\n  uVar6 = ((uint)uVar2 | (uint)(skey->xtea).A[0x1e]) ^ (uint)(uVar2 >> 0x20);\n  uVar5 = CONCAT44(((uint)(skey->xtea).A[0x1d] | uVar4) ^ uVar3,uVar4);\n  uVar3 = (uint)((skey->xtea).A[0x1e] >> 0x20) & uVar6;\n  uVar1 = F((skey->xtea).A[0xb] ^ uVar5);\n  uVar2 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n  uVar1 = F((skey->xtea).A[0xc] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0xd] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0xe] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0xf] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x10] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar3 = (uint)(uVar5 >> 0x20);\n  uVar4 = (uint)((skey->xtea).A[0x1f] >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;\n  uVar5 = CONCAT44(((uint)(skey->xtea).A[0x1f] | uVar4) ^ uVar3,uVar4);\n  uVar4 = ((uint)uVar2 | (uint)(skey->xtea).B[0]) ^ (uint)(uVar2 >> 0x20);\n  uVar3 = (uint)((skey->xtea).B[0] >> 0x20) & uVar4;\n  uVar1 = F((skey->xtea).A[0x11] ^ uVar5);\n  uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar2) ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x12] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x13] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x14] ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x15] ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = F((skey->xtea).A[0x16] ^ uVar2);\n  uVar5 = uVar1 ^ uVar5;\n  if ((skey->des).ek[0] == 0x18) {\n    uVar4 = (uint)(uVar5 >> 0x20);\n    uVar3 = (uint)((skey->xtea).B[1] >> 0x20) & uVar4;\n    uVar3 = (uint)uVar5 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)(skey->xtea).B[1] | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)(skey->xtea).B[2]) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((skey->xtea).B[2] >> 0x20) & uVar4;\n    uVar1 = F((skey->xtea).A[0x17] ^ uVar5);\n    uVar2 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x18] ^ uVar2);\n    uVar5 = uVar5 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x19] ^ uVar5);\n    uVar2 = uVar2 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x1a] ^ uVar2);\n    uVar5 = uVar5 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x1b] ^ uVar5);\n    uVar2 = uVar2 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x1c] ^ uVar2);\n    uVar5 = uVar1 ^ uVar5;\n  }\n  uVar5 = uVar5 ^ (skey->xtea).A[4];\n  uVar2 = uVar2 ^ (skey->xtea).A[3];\n  *(ulong *)ct = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                 (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                 (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n                 uVar2 << 0x38;\n  *(ulong *)(ct + 8) =\n       uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n       (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n       (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n  return 0;\n}" { (declaration "ulong64 uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (expression_statement "uVar5 = *(ulong *)pt;" (assignment_expression "uVar5 = *(ulong *)pt" identifier = (pointer_expression "*(ulong *)pt" * (cast_expression "(ulong *)pt" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar2 = *(ulong *)(pt + 8);" (assignment_expression "uVar2 = *(ulong *)(pt + 8)" identifier = (pointer_expression "*(ulong *)(pt + 8)" * (cast_expression "(ulong *)(pt + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pt + 8)" ( (binary_expression "pt + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = (uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n           (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n           (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38) ^ (skey->xtea).A[1];" (assignment_expression "uVar5 = (uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n           (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n           (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38) ^ (skey->xtea).A[1]" identifier = (binary_expression "(uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n           (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n           (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38) ^ (skey->xtea).A[1]" (parenthesized_expression "(uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n           (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n           (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38)" ( (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n           (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n           (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n           (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n           (uVar5 & 0xff00) << 0x28" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n           (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n           (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n           (uVar5 & 0xff00000000) >> 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28" (binary_expression "uVar5 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar5 & 0xff000000000000)" ( (binary_expression "uVar5 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar5 & 0xff0000000000)" ( (binary_expression "uVar5 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00000000) >> 8" (parenthesized_expression "(uVar5 & 0xff00000000)" ( (binary_expression "uVar5 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff000000) << 8" (parenthesized_expression "(uVar5 & 0xff000000)" ( (binary_expression "uVar5 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff0000) << 0x18" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff00) << 0x28" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x38" identifier << number_literal)) )) ^ (subscript_expression "(skey->xtea).A[1]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]))) ;) (expression_statement "uVar1 = F((skey->xtea).A[5] ^ uVar5);" (assignment_expression "uVar1 = F((skey->xtea).A[5] ^ uVar5)" identifier = (call_expression "F((skey->xtea).A[5] ^ uVar5)" identifier (argument_list "((skey->xtea).A[5] ^ uVar5)" ( (binary_expression "(skey->xtea).A[5] ^ uVar5" (subscript_expression "(skey->xtea).A[5]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ (skey->xtea).A[2];" (assignment_expression "uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ (skey->xtea).A[2]" identifier = (binary_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ (skey->xtea).A[2]" (binary_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1" (parenthesized_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" ( (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" ( (binary_expression "uVar2 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" ( (binary_expression "uVar2 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" ( (binary_expression "uVar2 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" ( (binary_expression "uVar2 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x38" identifier << number_literal)) )) ^ identifier) ^ (subscript_expression "(skey->xtea).A[2]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]))) ;) (expression_statement "uVar1 = F((skey->xtea).A[6] ^ uVar2);" (assignment_expression "uVar1 = F((skey->xtea).A[6] ^ uVar2)" identifier = (call_expression "F((skey->xtea).A[6] ^ uVar2)" identifier (argument_list "((skey->xtea).A[6] ^ uVar2)" ( (binary_expression "(skey->xtea).A[6] ^ uVar2" (subscript_expression "(skey->xtea).A[6]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[7] ^ uVar5);" (assignment_expression "uVar1 = F((skey->xtea).A[7] ^ uVar5)" identifier = (call_expression "F((skey->xtea).A[7] ^ uVar5)" identifier (argument_list "((skey->xtea).A[7] ^ uVar5)" ( (binary_expression "(skey->xtea).A[7] ^ uVar5" (subscript_expression "(skey->xtea).A[7]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[8] ^ uVar2);" (assignment_expression "uVar1 = F((skey->xtea).A[8] ^ uVar2)" identifier = (call_expression "F((skey->xtea).A[8] ^ uVar2)" identifier (argument_list "((skey->xtea).A[8] ^ uVar2)" ( (binary_expression "(skey->xtea).A[8] ^ uVar2" (subscript_expression "(skey->xtea).A[8]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[9] ^ uVar5);" (assignment_expression "uVar1 = F((skey->xtea).A[9] ^ uVar5)" identifier = (call_expression "F((skey->xtea).A[9] ^ uVar5)" identifier (argument_list "((skey->xtea).A[9] ^ uVar5)" ( (binary_expression "(skey->xtea).A[9] ^ uVar5" (subscript_expression "(skey->xtea).A[9]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[10] ^ uVar2);" (assignment_expression "uVar1 = F((skey->xtea).A[10] ^ uVar2)" identifier = (call_expression "F((skey->xtea).A[10] ^ uVar2)" identifier (argument_list "((skey->xtea).A[10] ^ uVar2)" ( (binary_expression "(skey->xtea).A[10] ^ uVar2" (subscript_expression "(skey->xtea).A[10]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar1 ^ uVar5;" (assignment_expression "uVar5 = uVar1 ^ uVar5" identifier = (binary_expression "uVar1 ^ uVar5" identifier ^ identifier)) ;) (expression_statement "uVar3 = (uint)(uVar5 >> 0x20);" (assignment_expression "uVar3 = (uint)(uVar5 >> 0x20)" identifier = (call_expression "(uint)(uVar5 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar4 = (uint)((skey->xtea).A[0x1d] >> 0x20) & uVar3;" (assignment_expression "uVar4 = (uint)((skey->xtea).A[0x1d] >> 0x20) & uVar3" identifier = (binary_expression "(uint)((skey->xtea).A[0x1d] >> 0x20) & uVar3" (call_expression "(uint)((skey->xtea).A[0x1d] >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((skey->xtea).A[0x1d] >> 0x20)" ( (binary_expression "(skey->xtea).A[0x1d] >> 0x20" (subscript_expression "(skey->xtea).A[0x1d]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;" (assignment_expression "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5" identifier = (binary_expression "(uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5" (parenthesized_expression "(uVar4 << 1 | uVar4 >> 0x1f)" ( (binary_expression "uVar4 << 1 | uVar4 >> 0x1f" (binary_expression "uVar4 << 1" identifier << number_literal) | (binary_expression "uVar4 >> 0x1f" identifier >> number_literal)) )) ^ (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar6 = ((uint)uVar2 | (uint)(skey->xtea).A[0x1e]) ^ (uint)(uVar2 >> 0x20);" (assignment_expression "uVar6 = ((uint)uVar2 | (uint)(skey->xtea).A[0x1e]) ^ (uint)(uVar2 >> 0x20)" identifier = (binary_expression "((uint)uVar2 | (uint)(skey->xtea).A[0x1e]) ^ (uint)(uVar2 >> 0x20)" (parenthesized_expression "((uint)uVar2 | (uint)(skey->xtea).A[0x1e])" ( (binary_expression "(uint)uVar2 | (uint)(skey->xtea).A[0x1e]" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) | (subscript_expression "(uint)(skey->xtea).A[0x1e]" (field_expression "(uint)(skey->xtea).A" (call_expression "(uint)(skey->xtea)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) ))) . field_identifier) [ number_literal ])) )) ^ (call_expression "(uint)(uVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) ))))) ;) (expression_statement "uVar5 = CONCAT44(((uint)(skey->xtea).A[0x1d] | uVar4) ^ uVar3,uVar4);" (assignment_expression "uVar5 = CONCAT44(((uint)(skey->xtea).A[0x1d] | uVar4) ^ uVar3,uVar4)" identifier = (call_expression "CONCAT44(((uint)(skey->xtea).A[0x1d] | uVar4) ^ uVar3,uVar4)" identifier (argument_list "(((uint)(skey->xtea).A[0x1d] | uVar4) ^ uVar3,uVar4)" ( (binary_expression "((uint)(skey->xtea).A[0x1d] | uVar4) ^ uVar3" (parenthesized_expression "((uint)(skey->xtea).A[0x1d] | uVar4)" ( (binary_expression "(uint)(skey->xtea).A[0x1d] | uVar4" (subscript_expression "(uint)(skey->xtea).A[0x1d]" (field_expression "(uint)(skey->xtea).A" (call_expression "(uint)(skey->xtea)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) | identifier) )) ^ identifier) , identifier )))) ;) (expression_statement "uVar3 = (uint)((skey->xtea).A[0x1e] >> 0x20) & uVar6;" (assignment_expression "uVar3 = (uint)((skey->xtea).A[0x1e] >> 0x20) & uVar6" identifier = (binary_expression "(uint)((skey->xtea).A[0x1e] >> 0x20) & uVar6" (call_expression "(uint)((skey->xtea).A[0x1e] >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((skey->xtea).A[0x1e] >> 0x20)" ( (binary_expression "(skey->xtea).A[0x1e] >> 0x20" (subscript_expression "(skey->xtea).A[0x1e]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0xb] ^ uVar5);" (assignment_expression "uVar1 = F((skey->xtea).A[0xb] ^ uVar5)" identifier = (call_expression "F((skey->xtea).A[0xb] ^ uVar5)" identifier (argument_list "((skey->xtea).A[0xb] ^ uVar5)" ( (binary_expression "(skey->xtea).A[0xb] ^ uVar5" (subscript_expression "(skey->xtea).A[0xb]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar2 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;" (assignment_expression "uVar2 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" identifier = (binary_expression "CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" (call_expression "CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" identifier (argument_list "(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" ( identifier , (binary_expression "(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" ( (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" identifier << number_literal) | (binary_expression "uVar3 >> 0x1f" identifier >> number_literal)) ))) ))) ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0xc] ^ uVar2);" (assignment_expression "uVar1 = F((skey->xtea).A[0xc] ^ uVar2)" identifier = (call_expression "F((skey->xtea).A[0xc] ^ uVar2)" identifier (argument_list "((skey->xtea).A[0xc] ^ uVar2)" ( (binary_expression "(skey->xtea).A[0xc] ^ uVar2" (subscript_expression "(skey->xtea).A[0xc]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0xd] ^ uVar5);" (assignment_expression "uVar1 = F((skey->xtea).A[0xd] ^ uVar5)" identifier = (call_expression "F((skey->xtea).A[0xd] ^ uVar5)" identifier (argument_list "((skey->xtea).A[0xd] ^ uVar5)" ( (binary_expression "(skey->xtea).A[0xd] ^ uVar5" (subscript_expression "(skey->xtea).A[0xd]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0xe] ^ uVar2);" (assignment_expression "uVar1 = F((skey->xtea).A[0xe] ^ uVar2)" identifier = (call_expression "F((skey->xtea).A[0xe] ^ uVar2)" identifier (argument_list "((skey->xtea).A[0xe] ^ uVar2)" ( (binary_expression "(skey->xtea).A[0xe] ^ uVar2" (subscript_expression "(skey->xtea).A[0xe]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0xf] ^ uVar5);" (assignment_expression "uVar1 = F((skey->xtea).A[0xf] ^ uVar5)" identifier = (call_expression "F((skey->xtea).A[0xf] ^ uVar5)" identifier (argument_list "((skey->xtea).A[0xf] ^ uVar5)" ( (binary_expression "(skey->xtea).A[0xf] ^ uVar5" (subscript_expression "(skey->xtea).A[0xf]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0x10] ^ uVar2);" (assignment_expression "uVar1 = F((skey->xtea).A[0x10] ^ uVar2)" identifier = (call_expression "F((skey->xtea).A[0x10] ^ uVar2)" identifier (argument_list "((skey->xtea).A[0x10] ^ uVar2)" ( (binary_expression "(skey->xtea).A[0x10] ^ uVar2" (subscript_expression "(skey->xtea).A[0x10]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar3 = (uint)(uVar5 >> 0x20);" (assignment_expression "uVar3 = (uint)(uVar5 >> 0x20)" identifier = (call_expression "(uint)(uVar5 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar4 = (uint)((skey->xtea).A[0x1f] >> 0x20) & uVar3;" (assignment_expression "uVar4 = (uint)((skey->xtea).A[0x1f] >> 0x20) & uVar3" identifier = (binary_expression "(uint)((skey->xtea).A[0x1f] >> 0x20) & uVar3" (call_expression "(uint)((skey->xtea).A[0x1f] >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((skey->xtea).A[0x1f] >> 0x20)" ( (binary_expression "(skey->xtea).A[0x1f] >> 0x20" (subscript_expression "(skey->xtea).A[0x1f]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;" (assignment_expression "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5" identifier = (binary_expression "(uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5" (parenthesized_expression "(uVar4 << 1 | uVar4 >> 0x1f)" ( (binary_expression "uVar4 << 1 | uVar4 >> 0x1f" (binary_expression "uVar4 << 1" identifier << number_literal) | (binary_expression "uVar4 >> 0x1f" identifier >> number_literal)) )) ^ (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar5 = CONCAT44(((uint)(skey->xtea).A[0x1f] | uVar4) ^ uVar3,uVar4);" (assignment_expression "uVar5 = CONCAT44(((uint)(skey->xtea).A[0x1f] | uVar4) ^ uVar3,uVar4)" identifier = (call_expression "CONCAT44(((uint)(skey->xtea).A[0x1f] | uVar4) ^ uVar3,uVar4)" identifier (argument_list "(((uint)(skey->xtea).A[0x1f] | uVar4) ^ uVar3,uVar4)" ( (binary_expression "((uint)(skey->xtea).A[0x1f] | uVar4) ^ uVar3" (parenthesized_expression "((uint)(skey->xtea).A[0x1f] | uVar4)" ( (binary_expression "(uint)(skey->xtea).A[0x1f] | uVar4" (subscript_expression "(uint)(skey->xtea).A[0x1f]" (field_expression "(uint)(skey->xtea).A" (call_expression "(uint)(skey->xtea)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) | identifier) )) ^ identifier) , identifier )))) ;) (expression_statement "uVar4 = ((uint)uVar2 | (uint)(skey->xtea).B[0]) ^ (uint)(uVar2 >> 0x20);" (assignment_expression "uVar4 = ((uint)uVar2 | (uint)(skey->xtea).B[0]) ^ (uint)(uVar2 >> 0x20)" identifier = (binary_expression "((uint)uVar2 | (uint)(skey->xtea).B[0]) ^ (uint)(uVar2 >> 0x20)" (parenthesized_expression "((uint)uVar2 | (uint)(skey->xtea).B[0])" ( (binary_expression "(uint)uVar2 | (uint)(skey->xtea).B[0]" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) | (subscript_expression "(uint)(skey->xtea).B[0]" (field_expression "(uint)(skey->xtea).B" (call_expression "(uint)(skey->xtea)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) ))) . field_identifier) [ number_literal ])) )) ^ (call_expression "(uint)(uVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) ))))) ;) (expression_statement "uVar3 = (uint)((skey->xtea).B[0] >> 0x20) & uVar4;" (assignment_expression "uVar3 = (uint)((skey->xtea).B[0] >> 0x20) & uVar4" identifier = (binary_expression "(uint)((skey->xtea).B[0] >> 0x20) & uVar4" (call_expression "(uint)((skey->xtea).B[0] >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((skey->xtea).B[0] >> 0x20)" ( (binary_expression "(skey->xtea).B[0] >> 0x20" (subscript_expression "(skey->xtea).B[0]" (field_expression "(skey->xtea).B" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0x11] ^ uVar5);" (assignment_expression "uVar1 = F((skey->xtea).A[0x11] ^ uVar5)" identifier = (call_expression "F((skey->xtea).A[0x11] ^ uVar5)" identifier (argument_list "((skey->xtea).A[0x11] ^ uVar5)" ( (binary_expression "(skey->xtea).A[0x11] ^ uVar5" (subscript_expression "(skey->xtea).A[0x11]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar2) ^ uVar1;" (assignment_expression "uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar2) ^ uVar1" identifier = (binary_expression "CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar2) ^ uVar1" (call_expression "CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar2)" identifier (argument_list "(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar2)" ( identifier , (binary_expression "(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar2" (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" ( (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" identifier << number_literal) | (binary_expression "uVar3 >> 0x1f" identifier >> number_literal)) )) ^ (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0x12] ^ uVar2);" (assignment_expression "uVar1 = F((skey->xtea).A[0x12] ^ uVar2)" identifier = (call_expression "F((skey->xtea).A[0x12] ^ uVar2)" identifier (argument_list "((skey->xtea).A[0x12] ^ uVar2)" ( (binary_expression "(skey->xtea).A[0x12] ^ uVar2" (subscript_expression "(skey->xtea).A[0x12]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0x13] ^ uVar5);" (assignment_expression "uVar1 = F((skey->xtea).A[0x13] ^ uVar5)" identifier = (call_expression "F((skey->xtea).A[0x13] ^ uVar5)" identifier (argument_list "((skey->xtea).A[0x13] ^ uVar5)" ( (binary_expression "(skey->xtea).A[0x13] ^ uVar5" (subscript_expression "(skey->xtea).A[0x13]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0x14] ^ uVar2);" (assignment_expression "uVar1 = F((skey->xtea).A[0x14] ^ uVar2)" identifier = (call_expression "F((skey->xtea).A[0x14] ^ uVar2)" identifier (argument_list "((skey->xtea).A[0x14] ^ uVar2)" ( (binary_expression "(skey->xtea).A[0x14] ^ uVar2" (subscript_expression "(skey->xtea).A[0x14]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0x15] ^ uVar5);" (assignment_expression "uVar1 = F((skey->xtea).A[0x15] ^ uVar5)" identifier = (call_expression "F((skey->xtea).A[0x15] ^ uVar5)" identifier (argument_list "((skey->xtea).A[0x15] ^ uVar5)" ( (binary_expression "(skey->xtea).A[0x15] ^ uVar5" (subscript_expression "(skey->xtea).A[0x15]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0x16] ^ uVar2);" (assignment_expression "uVar1 = F((skey->xtea).A[0x16] ^ uVar2)" identifier = (call_expression "F((skey->xtea).A[0x16] ^ uVar2)" identifier (argument_list "((skey->xtea).A[0x16] ^ uVar2)" ( (binary_expression "(skey->xtea).A[0x16] ^ uVar2" (subscript_expression "(skey->xtea).A[0x16]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar1 ^ uVar5;" (assignment_expression "uVar5 = uVar1 ^ uVar5" identifier = (binary_expression "uVar1 ^ uVar5" identifier ^ identifier)) ;) (if_statement "if ((skey->des).ek[0] == 0x18) {\n    uVar4 = (uint)(uVar5 >> 0x20);\n    uVar3 = (uint)((skey->xtea).B[1] >> 0x20) & uVar4;\n    uVar3 = (uint)uVar5 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)(skey->xtea).B[1] | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)(skey->xtea).B[2]) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((skey->xtea).B[2] >> 0x20) & uVar4;\n    uVar1 = F((skey->xtea).A[0x17] ^ uVar5);\n    uVar2 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x18] ^ uVar2);\n    uVar5 = uVar5 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x19] ^ uVar5);\n    uVar2 = uVar2 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x1a] ^ uVar2);\n    uVar5 = uVar5 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x1b] ^ uVar5);\n    uVar2 = uVar2 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x1c] ^ uVar2);\n    uVar5 = uVar1 ^ uVar5;\n  }" if (parenthesized_expression "((skey->des).ek[0] == 0x18)" ( (binary_expression "(skey->des).ek[0] == 0x18" (subscript_expression "(skey->des).ek[0]" (field_expression "(skey->des).ek" (parenthesized_expression "(skey->des)" ( (field_expression "skey->des" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) == number_literal) )) (compound_statement "{\n    uVar4 = (uint)(uVar5 >> 0x20);\n    uVar3 = (uint)((skey->xtea).B[1] >> 0x20) & uVar4;\n    uVar3 = (uint)uVar5 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)(skey->xtea).B[1] | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)(skey->xtea).B[2]) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((skey->xtea).B[2] >> 0x20) & uVar4;\n    uVar1 = F((skey->xtea).A[0x17] ^ uVar5);\n    uVar2 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x18] ^ uVar2);\n    uVar5 = uVar5 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x19] ^ uVar5);\n    uVar2 = uVar2 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x1a] ^ uVar2);\n    uVar5 = uVar5 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x1b] ^ uVar5);\n    uVar2 = uVar2 ^ uVar1;\n    uVar1 = F((skey->xtea).A[0x1c] ^ uVar2);\n    uVar5 = uVar1 ^ uVar5;\n  }" { (expression_statement "uVar4 = (uint)(uVar5 >> 0x20);" (assignment_expression "uVar4 = (uint)(uVar5 >> 0x20)" identifier = (call_expression "(uint)(uVar5 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar3 = (uint)((skey->xtea).B[1] >> 0x20) & uVar4;" (assignment_expression "uVar3 = (uint)((skey->xtea).B[1] >> 0x20) & uVar4" identifier = (binary_expression "(uint)((skey->xtea).B[1] >> 0x20) & uVar4" (call_expression "(uint)((skey->xtea).B[1] >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((skey->xtea).B[1] >> 0x20)" ( (binary_expression "(skey->xtea).B[1] >> 0x20" (subscript_expression "(skey->xtea).B[1]" (field_expression "(skey->xtea).B" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar3 = (uint)uVar5 ^ (uVar3 << 1 | uVar3 >> 0x1f);" (assignment_expression "uVar3 = (uint)uVar5 ^ (uVar3 << 1 | uVar3 >> 0x1f)" identifier = (binary_expression "(uint)uVar5 ^ (uVar3 << 1 | uVar3 >> 0x1f)" (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" ( (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" identifier << number_literal) | (binary_expression "uVar3 >> 0x1f" identifier >> number_literal)) )))) ;) (expression_statement "uVar5 = CONCAT44(((uint)(skey->xtea).B[1] | uVar3) ^ uVar4,uVar3);" (assignment_expression "uVar5 = CONCAT44(((uint)(skey->xtea).B[1] | uVar3) ^ uVar4,uVar3)" identifier = (call_expression "CONCAT44(((uint)(skey->xtea).B[1] | uVar3) ^ uVar4,uVar3)" identifier (argument_list "(((uint)(skey->xtea).B[1] | uVar3) ^ uVar4,uVar3)" ( (binary_expression "((uint)(skey->xtea).B[1] | uVar3) ^ uVar4" (parenthesized_expression "((uint)(skey->xtea).B[1] | uVar3)" ( (binary_expression "(uint)(skey->xtea).B[1] | uVar3" (subscript_expression "(uint)(skey->xtea).B[1]" (field_expression "(uint)(skey->xtea).B" (call_expression "(uint)(skey->xtea)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) | identifier) )) ^ identifier) , identifier )))) ;) (expression_statement "uVar4 = ((uint)uVar2 | (uint)(skey->xtea).B[2]) ^ (uint)(uVar2 >> 0x20);" (assignment_expression "uVar4 = ((uint)uVar2 | (uint)(skey->xtea).B[2]) ^ (uint)(uVar2 >> 0x20)" identifier = (binary_expression "((uint)uVar2 | (uint)(skey->xtea).B[2]) ^ (uint)(uVar2 >> 0x20)" (parenthesized_expression "((uint)uVar2 | (uint)(skey->xtea).B[2])" ( (binary_expression "(uint)uVar2 | (uint)(skey->xtea).B[2]" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) | (subscript_expression "(uint)(skey->xtea).B[2]" (field_expression "(uint)(skey->xtea).B" (call_expression "(uint)(skey->xtea)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) ))) . field_identifier) [ number_literal ])) )) ^ (call_expression "(uint)(uVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) ))))) ;) (expression_statement "uVar3 = (uint)((skey->xtea).B[2] >> 0x20) & uVar4;" (assignment_expression "uVar3 = (uint)((skey->xtea).B[2] >> 0x20) & uVar4" identifier = (binary_expression "(uint)((skey->xtea).B[2] >> 0x20) & uVar4" (call_expression "(uint)((skey->xtea).B[2] >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((skey->xtea).B[2] >> 0x20)" ( (binary_expression "(skey->xtea).B[2] >> 0x20" (subscript_expression "(skey->xtea).B[2]" (field_expression "(skey->xtea).B" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0x17] ^ uVar5);" (assignment_expression "uVar1 = F((skey->xtea).A[0x17] ^ uVar5)" identifier = (call_expression "F((skey->xtea).A[0x17] ^ uVar5)" identifier (argument_list "((skey->xtea).A[0x17] ^ uVar5)" ( (binary_expression "(skey->xtea).A[0x17] ^ uVar5" (subscript_expression "(skey->xtea).A[0x17]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar2 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;" (assignment_expression "uVar2 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" identifier = (binary_expression "CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" (call_expression "CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" identifier (argument_list "(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" ( identifier , (binary_expression "(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" ( (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" identifier << number_literal) | (binary_expression "uVar3 >> 0x1f" identifier >> number_literal)) ))) ))) ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0x18] ^ uVar2);" (assignment_expression "uVar1 = F((skey->xtea).A[0x18] ^ uVar2)" identifier = (call_expression "F((skey->xtea).A[0x18] ^ uVar2)" identifier (argument_list "((skey->xtea).A[0x18] ^ uVar2)" ( (binary_expression "(skey->xtea).A[0x18] ^ uVar2" (subscript_expression "(skey->xtea).A[0x18]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0x19] ^ uVar5);" (assignment_expression "uVar1 = F((skey->xtea).A[0x19] ^ uVar5)" identifier = (call_expression "F((skey->xtea).A[0x19] ^ uVar5)" identifier (argument_list "((skey->xtea).A[0x19] ^ uVar5)" ( (binary_expression "(skey->xtea).A[0x19] ^ uVar5" (subscript_expression "(skey->xtea).A[0x19]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0x1a] ^ uVar2);" (assignment_expression "uVar1 = F((skey->xtea).A[0x1a] ^ uVar2)" identifier = (call_expression "F((skey->xtea).A[0x1a] ^ uVar2)" identifier (argument_list "((skey->xtea).A[0x1a] ^ uVar2)" ( (binary_expression "(skey->xtea).A[0x1a] ^ uVar2" (subscript_expression "(skey->xtea).A[0x1a]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0x1b] ^ uVar5);" (assignment_expression "uVar1 = F((skey->xtea).A[0x1b] ^ uVar5)" identifier = (call_expression "F((skey->xtea).A[0x1b] ^ uVar5)" identifier (argument_list "((skey->xtea).A[0x1b] ^ uVar5)" ( (binary_expression "(skey->xtea).A[0x1b] ^ uVar5" (subscript_expression "(skey->xtea).A[0x1b]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = F((skey->xtea).A[0x1c] ^ uVar2);" (assignment_expression "uVar1 = F((skey->xtea).A[0x1c] ^ uVar2)" identifier = (call_expression "F((skey->xtea).A[0x1c] ^ uVar2)" identifier (argument_list "((skey->xtea).A[0x1c] ^ uVar2)" ( (binary_expression "(skey->xtea).A[0x1c] ^ uVar2" (subscript_expression "(skey->xtea).A[0x1c]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar1 ^ uVar5;" (assignment_expression "uVar5 = uVar1 ^ uVar5" identifier = (binary_expression "uVar1 ^ uVar5" identifier ^ identifier)) ;) })) (expression_statement "uVar5 = uVar5 ^ (skey->xtea).A[4];" (assignment_expression "uVar5 = uVar5 ^ (skey->xtea).A[4]" identifier = (binary_expression "uVar5 ^ (skey->xtea).A[4]" identifier ^ (subscript_expression "(skey->xtea).A[4]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]))) ;) (expression_statement "uVar2 = uVar2 ^ (skey->xtea).A[3];" (assignment_expression "uVar2 = uVar2 ^ (skey->xtea).A[3]" identifier = (binary_expression "uVar2 ^ (skey->xtea).A[3]" identifier ^ (subscript_expression "(skey->xtea).A[3]" (field_expression "(skey->xtea).A" (parenthesized_expression "(skey->xtea)" ( (field_expression "skey->xtea" identifier -> field_identifier) )) . field_identifier) [ number_literal ]))) ;) (expression_statement "*(ulong *)ct = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                 (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                 (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n                 uVar2 << 0x38;" (assignment_expression "*(ulong *)ct = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                 (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                 (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n                 uVar2 << 0x38" (pointer_expression "*(ulong *)ct" * (cast_expression "(ulong *)ct" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                 (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                 (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n                 uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                 (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                 (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                 (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                 (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                 (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                 (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                 (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                 (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" ( (binary_expression "uVar2 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" ( (binary_expression "uVar2 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" ( (binary_expression "uVar2 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" ( (binary_expression "uVar2 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x38" identifier << number_literal))) ;) (expression_statement "*(ulong *)(ct + 8) =\n       uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n       (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n       (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;" (assignment_expression "*(ulong *)(ct + 8) =\n       uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n       (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n       (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38" (pointer_expression "*(ulong *)(ct + 8)" * (cast_expression "(ulong *)(ct + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ct + 8)" ( (binary_expression "ct + 8" identifier + number_literal) )))) = (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n       (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n       (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n       (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n       (uVar5 & 0xff00) << 0x28" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n       (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n       (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n       (uVar5 & 0xff00000000) >> 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28" (binary_expression "uVar5 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar5 & 0xff000000000000)" ( (binary_expression "uVar5 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar5 & 0xff0000000000)" ( (binary_expression "uVar5 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00000000) >> 8" (parenthesized_expression "(uVar5 & 0xff00000000)" ( (binary_expression "uVar5 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff000000) << 8" (parenthesized_expression "(uVar5 & 0xff000000)" ( (binary_expression "uVar5 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff0000) << 0x18" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff00) << 0x28" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x38" identifier << number_literal))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined8 camellia_ecb_encrypt(ulong *param_1,ulong *param_2,int *param_3)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  uint uVar6;\n  \n  uVar1 = *param_1;\n  uVar2 = param_1[1];\n  uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5);\n  uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  uVar3 = (uint)(uVar1 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1;\n  uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20);\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5);\n  uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar3 = (uint)(uVar5 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4);\n  uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5);\n  uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  if (*param_3 == 0x18) {\n    uVar4 = (uint)(uVar1 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;\n    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);\n    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);\n    uVar1 = uVar1 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);\n    uVar2 = uVar1 ^ uVar2;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);\n    uVar1 = uVar1 ^ uVar5;\n  }\n  uVar1 = uVar1 ^ *(ulong *)(param_3 + 8);\n  uVar2 = uVar2 ^ *(ulong *)(param_3 + 6);\n  *param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38;\n  param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38;\n  return 0;\n}\n\n" (function_definition "undefined8 camellia_ecb_encrypt(ulong *param_1,ulong *param_2,int *param_3)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  uint uVar6;\n  \n  uVar1 = *param_1;\n  uVar2 = param_1[1];\n  uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5);\n  uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  uVar3 = (uint)(uVar1 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1;\n  uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20);\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5);\n  uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar3 = (uint)(uVar5 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4);\n  uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5);\n  uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  if (*param_3 == 0x18) {\n    uVar4 = (uint)(uVar1 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;\n    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);\n    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);\n    uVar1 = uVar1 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);\n    uVar2 = uVar1 ^ uVar2;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);\n    uVar1 = uVar1 ^ uVar5;\n  }\n  uVar1 = uVar1 ^ *(ulong *)(param_3 + 8);\n  uVar2 = uVar2 ^ *(ulong *)(param_3 + 6);\n  *param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38;\n  param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38;\n  return 0;\n}" type_identifier (function_declarator "camellia_ecb_encrypt(ulong *param_1,ulong *param_2,int *param_3)" identifier (parameter_list "(ulong *param_1,ulong *param_2,int *param_3)" ( (parameter_declaration "ulong *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  ulong uVar1;\n  ulong uVar2;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  uint uVar6;\n  \n  uVar1 = *param_1;\n  uVar2 = param_1[1];\n  uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5);\n  uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  uVar3 = (uint)(uVar1 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1;\n  uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20);\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5);\n  uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar3 = (uint)(uVar5 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4);\n  uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5);\n  uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  if (*param_3 == 0x18) {\n    uVar4 = (uint)(uVar1 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;\n    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);\n    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);\n    uVar1 = uVar1 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);\n    uVar2 = uVar1 ^ uVar2;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);\n    uVar1 = uVar1 ^ uVar5;\n  }\n  uVar1 = uVar1 ^ *(ulong *)(param_3 + 8);\n  uVar2 = uVar2 ^ *(ulong *)(param_3 + 6);\n  *param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38;\n  param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38;\n  return 0;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2);" (assignment_expression "uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2)" identifier = (binary_expression "(uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2)" (parenthesized_expression "(uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38)" ( (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28" (binary_expression "uVar1 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar1 & 0xff000000000000)" ( (binary_expression "uVar1 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar1 & 0xff0000000000)" ( (binary_expression "uVar1 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00000000) >> 8" (parenthesized_expression "(uVar1 & 0xff00000000)" ( (binary_expression "uVar1 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff000000) << 8" (parenthesized_expression "(uVar1 & 0xff000000)" ( (binary_expression "uVar1 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar1 & 0xff0000) << 0x18" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar1 & 0xff00) << 0x28" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x38" identifier << number_literal)) )) ^ (pointer_expression "*(ulong *)(param_3 + 2)" * (cast_expression "(ulong *)(param_3 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 2)" ( (binary_expression "param_3 + 2" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 10) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 10) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 10)" * (cast_expression "(ulong *)(param_3 + 10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 10)" ( (binary_expression "param_3 + 10" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4);" (assignment_expression "uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4)" identifier = (binary_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4)" (binary_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1" (parenthesized_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" ( (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" ( (binary_expression "uVar2 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" ( (binary_expression "uVar2 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" ( (binary_expression "uVar2 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" ( (binary_expression "uVar2 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x38" identifier << number_literal)) )) ^ identifier) ^ (pointer_expression "*(ulong *)(param_3 + 4)" * (cast_expression "(ulong *)(param_3 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2)" identifier (argument_list "(*(ulong *)(param_3 + 0xc) ^ uVar2)" ( (binary_expression "*(ulong *)(param_3 + 0xc) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0xc)" * (cast_expression "(ulong *)(param_3 + 0xc)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xc)" ( (binary_expression "param_3 + 0xc" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0xe) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0xe) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0xe)" * (cast_expression "(ulong *)(param_3 + 0xe)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xe)" ( (binary_expression "param_3 + 0xe" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2)" identifier (argument_list "(*(ulong *)(param_3 + 0x10) ^ uVar2)" ( (binary_expression "*(ulong *)(param_3 + 0x10) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x10)" * (cast_expression "(ulong *)(param_3 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x10)" ( (binary_expression "param_3 + 0x10" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x12) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x12) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x12)" * (cast_expression "(ulong *)(param_3 + 0x12)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x12)" ( (binary_expression "param_3 + 0x12" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2)" identifier (argument_list "(*(ulong *)(param_3 + 0x14) ^ uVar2)" ( (binary_expression "*(ulong *)(param_3 + 0x14) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x14)" * (cast_expression "(ulong *)(param_3 + 0x14)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x14)" ( (binary_expression "param_3 + 0x14" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = uVar1 ^ uVar5;" (assignment_expression "uVar1 = uVar1 ^ uVar5" identifier = (binary_expression "uVar1 ^ uVar5" identifier ^ identifier)) ;) (expression_statement "uVar3 = (uint)(uVar1 >> 0x20);" (assignment_expression "uVar3 = (uint)(uVar1 >> 0x20)" identifier = (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3;" (assignment_expression "uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3" identifier = (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3a)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x3a)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3a)" ( (binary_expression "param_3 + 0x3a" identifier + number_literal) )))) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1;" (assignment_expression "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1" identifier = (binary_expression "(uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1" (parenthesized_expression "(uVar4 << 1 | uVar4 >> 0x1f)" ( (binary_expression "uVar4 << 1 | uVar4 >> 0x1f" (binary_expression "uVar4 << 1" identifier << number_literal) | (binary_expression "uVar4 >> 0x1f" identifier >> number_literal)) )) ^ (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20);" (assignment_expression "uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20)" identifier = (binary_expression "((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20)" (parenthesized_expression "((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c))" ( (binary_expression "(uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "(uint)*(undefined8 *)(param_3 + 0x3c)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x3c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3c)" ( (binary_expression "param_3 + 0x3c" identifier + number_literal) ))))) )) ^ (call_expression "(uint)(uVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) ))))) ;) (expression_statement "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4);" (assignment_expression "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4)" identifier = (call_expression "CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4)" identifier (argument_list "(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4)" ( (binary_expression "((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3" (parenthesized_expression "((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4)" ( (binary_expression "(uint)*(undefined8 *)(param_3 + 0x3a) | uVar4" (binary_expression "(uint)*(undefined8 *)(param_3 + 0x3a)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x3a)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3a)" ( (binary_expression "param_3 + 0x3a" identifier + number_literal) )))) | identifier) )) ^ identifier) , identifier )))) ;) (expression_statement "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6;" (assignment_expression "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6" identifier = (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3c)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x3c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3c)" ( (binary_expression "param_3 + 0x3c" identifier + number_literal) )))) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x16) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x16) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x16)" * (cast_expression "(ulong *)(param_3 + 0x16)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x16)" ( (binary_expression "param_3 + 0x16" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;" (assignment_expression "uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" identifier = (binary_expression "CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" (call_expression "CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" identifier (argument_list "(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" ( identifier , (binary_expression "(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" ( (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" identifier << number_literal) | (binary_expression "uVar3 >> 0x1f" identifier >> number_literal)) ))) ))) ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1)" identifier (argument_list "(*(ulong *)(param_3 + 0x18) ^ uVar1)" ( (binary_expression "*(ulong *)(param_3 + 0x18) ^ uVar1" (pointer_expression "*(ulong *)(param_3 + 0x18)" * (cast_expression "(ulong *)(param_3 + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x18)" ( (binary_expression "param_3 + 0x18" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar2;" (assignment_expression "uVar5 = uVar5 ^ uVar2" identifier = (binary_expression "uVar5 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x1a) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x1a) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x1a)" * (cast_expression "(ulong *)(param_3 + 0x1a)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1a)" ( (binary_expression "param_3 + 0x1a" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = uVar1 ^ uVar2;" (assignment_expression "uVar1 = uVar1 ^ uVar2" identifier = (binary_expression "uVar1 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1)" identifier (argument_list "(*(ulong *)(param_3 + 0x1c) ^ uVar1)" ( (binary_expression "*(ulong *)(param_3 + 0x1c) ^ uVar1" (pointer_expression "*(ulong *)(param_3 + 0x1c)" * (cast_expression "(ulong *)(param_3 + 0x1c)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar2;" (assignment_expression "uVar5 = uVar5 ^ uVar2" identifier = (binary_expression "uVar5 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x1e) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x1e) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x1e)" * (cast_expression "(ulong *)(param_3 + 0x1e)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1e)" ( (binary_expression "param_3 + 0x1e" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = uVar1 ^ uVar2;" (assignment_expression "uVar1 = uVar1 ^ uVar2" identifier = (binary_expression "uVar1 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1)" identifier (argument_list "(*(ulong *)(param_3 + 0x20) ^ uVar1)" ( (binary_expression "*(ulong *)(param_3 + 0x20) ^ uVar1" (pointer_expression "*(ulong *)(param_3 + 0x20)" * (cast_expression "(ulong *)(param_3 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar2;" (assignment_expression "uVar5 = uVar5 ^ uVar2" identifier = (binary_expression "uVar5 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar3 = (uint)(uVar5 >> 0x20);" (assignment_expression "uVar3 = (uint)(uVar5 >> 0x20)" identifier = (call_expression "(uint)(uVar5 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3;" (assignment_expression "uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3" identifier = (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3e)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x3e)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3e)" ( (binary_expression "param_3 + 0x3e" identifier + number_literal) )))) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;" (assignment_expression "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5" identifier = (binary_expression "(uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5" (parenthesized_expression "(uVar4 << 1 | uVar4 >> 0x1f)" ( (binary_expression "uVar4 << 1 | uVar4 >> 0x1f" (binary_expression "uVar4 << 1" identifier << number_literal) | (binary_expression "uVar4 >> 0x1f" identifier >> number_literal)) )) ^ (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4);" (assignment_expression "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4)" identifier = (call_expression "CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4)" identifier (argument_list "(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4)" ( (binary_expression "((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3" (parenthesized_expression "((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4)" ( (binary_expression "(uint)*(undefined8 *)(param_3 + 0x3e) | uVar4" (binary_expression "(uint)*(undefined8 *)(param_3 + 0x3e)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x3e)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x3e)" ( (binary_expression "param_3 + 0x3e" identifier + number_literal) )))) | identifier) )) ^ identifier) , identifier )))) ;) (expression_statement "uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20);" (assignment_expression "uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20)" identifier = (binary_expression "((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20)" (parenthesized_expression "((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40))" ( (binary_expression "(uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "(uint)*(undefined8 *)(param_3 + 0x40)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x40)" ( (binary_expression "param_3 + 0x40" identifier + number_literal) ))))) )) ^ (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) ))))) ;) (expression_statement "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4;" (assignment_expression "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4" identifier = (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x40)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x40)" ( (binary_expression "param_3 + 0x40" identifier + number_literal) )))) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x22) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x22) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x22)" * (cast_expression "(ulong *)(param_3 + 0x22)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x22)" ( (binary_expression "param_3 + 0x22" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2;" (assignment_expression "uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2" identifier = (binary_expression "CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2" (call_expression "CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1)" identifier (argument_list "(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1)" ( identifier , (binary_expression "(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1" (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" ( (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" identifier << number_literal) | (binary_expression "uVar3 >> 0x1f" identifier >> number_literal)) )) ^ (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2)" identifier (argument_list "(*(ulong *)(param_3 + 0x24) ^ uVar2)" ( (binary_expression "*(ulong *)(param_3 + 0x24) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x24)" * (cast_expression "(ulong *)(param_3 + 0x24)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x24)" ( (binary_expression "param_3 + 0x24" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x26) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x26) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x26)" * (cast_expression "(ulong *)(param_3 + 0x26)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x26)" ( (binary_expression "param_3 + 0x26" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2)" identifier (argument_list "(*(ulong *)(param_3 + 0x28) ^ uVar2)" ( (binary_expression "*(ulong *)(param_3 + 0x28) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x28)" * (cast_expression "(ulong *)(param_3 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" identifier = (binary_expression "uVar5 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x2a) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x2a) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x2a)" * (cast_expression "(ulong *)(param_3 + 0x2a)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2a)" ( (binary_expression "param_3 + 0x2a" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" identifier = (binary_expression "uVar2 ^ uVar1" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2)" identifier (argument_list "(*(ulong *)(param_3 + 0x2c) ^ uVar2)" ( (binary_expression "*(ulong *)(param_3 + 0x2c) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x2c)" * (cast_expression "(ulong *)(param_3 + 0x2c)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2c)" ( (binary_expression "param_3 + 0x2c" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = uVar1 ^ uVar5;" (assignment_expression "uVar1 = uVar1 ^ uVar5" identifier = (binary_expression "uVar1 ^ uVar5" identifier ^ identifier)) ;) (if_statement "if (*param_3 == 0x18) {\n    uVar4 = (uint)(uVar1 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;\n    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);\n    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);\n    uVar1 = uVar1 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);\n    uVar2 = uVar1 ^ uVar2;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);\n    uVar1 = uVar1 ^ uVar5;\n  }" if (parenthesized_expression "(*param_3 == 0x18)" ( (binary_expression "*param_3 == 0x18" (pointer_expression "*param_3" * identifier) == number_literal) )) (compound_statement "{\n    uVar4 = (uint)(uVar1 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;\n    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);\n    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);\n    uVar1 = uVar1 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);\n    uVar2 = uVar1 ^ uVar2;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);\n    uVar1 = uVar1 ^ uVar5;\n  }" { (expression_statement "uVar4 = (uint)(uVar1 >> 0x20);" (assignment_expression "uVar4 = (uint)(uVar1 >> 0x20)" identifier = (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;" (assignment_expression "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4" identifier = (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x42)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x42)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x42)" ( (binary_expression "param_3 + 0x42" identifier + number_literal) )))) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);" (assignment_expression "uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f)" identifier = (binary_expression "(uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f)" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" ( (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" identifier << number_literal) | (binary_expression "uVar3 >> 0x1f" identifier >> number_literal)) )))) ;) (expression_statement "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);" (assignment_expression "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3)" identifier = (call_expression "CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3)" identifier (argument_list "(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3)" ( (binary_expression "((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4" (parenthesized_expression "((uint)*(undefined8 *)(param_3 + 0x42) | uVar3)" ( (binary_expression "(uint)*(undefined8 *)(param_3 + 0x42) | uVar3" (binary_expression "(uint)*(undefined8 *)(param_3 + 0x42)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x42)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x42)" ( (binary_expression "param_3 + 0x42" identifier + number_literal) )))) | identifier) )) ^ identifier) , identifier )))) ;) (expression_statement "uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);" (assignment_expression "uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20)" identifier = (binary_expression "((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20)" (parenthesized_expression "((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44))" ( (binary_expression "(uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "(uint)*(undefined8 *)(param_3 + 0x44)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x44)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x44)" ( (binary_expression "param_3 + 0x44" identifier + number_literal) ))))) )) ^ (call_expression "(uint)(uVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) ))))) ;) (expression_statement "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;" (assignment_expression "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4" identifier = (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20)" ( (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x44)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(undefined8 *)(param_3 + 0x44)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x44)" ( (binary_expression "param_3 + 0x44" identifier + number_literal) )))) >> number_literal) ))) & identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x2e) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x2e) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x2e)" * (cast_expression "(ulong *)(param_3 + 0x2e)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2e)" ( (binary_expression "param_3 + 0x2e" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;" (assignment_expression "uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" identifier = (binary_expression "CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" (call_expression "CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" identifier (argument_list "(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" ( identifier , (binary_expression "(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" ( (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" identifier << number_literal) | (binary_expression "uVar3 >> 0x1f" identifier >> number_literal)) ))) ))) ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1)" identifier (argument_list "(*(ulong *)(param_3 + 0x30) ^ uVar1)" ( (binary_expression "*(ulong *)(param_3 + 0x30) ^ uVar1" (pointer_expression "*(ulong *)(param_3 + 0x30)" * (cast_expression "(ulong *)(param_3 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x30)" ( (binary_expression "param_3 + 0x30" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar2;" (assignment_expression "uVar5 = uVar5 ^ uVar2" identifier = (binary_expression "uVar5 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x32) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x32) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x32)" * (cast_expression "(ulong *)(param_3 + 0x32)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x32)" ( (binary_expression "param_3 + 0x32" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = uVar1 ^ uVar2;" (assignment_expression "uVar1 = uVar1 ^ uVar2" identifier = (binary_expression "uVar1 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1)" identifier (argument_list "(*(ulong *)(param_3 + 0x34) ^ uVar1)" ( (binary_expression "*(ulong *)(param_3 + 0x34) ^ uVar1" (pointer_expression "*(ulong *)(param_3 + 0x34)" * (cast_expression "(ulong *)(param_3 + 0x34)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x34)" ( (binary_expression "param_3 + 0x34" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar5 = uVar5 ^ uVar2;" (assignment_expression "uVar5 = uVar5 ^ uVar2" identifier = (binary_expression "uVar5 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5)" identifier (argument_list "(*(ulong *)(param_3 + 0x36) ^ uVar5)" ( (binary_expression "*(ulong *)(param_3 + 0x36) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x36)" * (cast_expression "(ulong *)(param_3 + 0x36)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x36)" ( (binary_expression "param_3 + 0x36" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar2 = uVar1 ^ uVar2;" (assignment_expression "uVar2 = uVar1 ^ uVar2" identifier = (binary_expression "uVar1 ^ uVar2" identifier ^ identifier)) ;) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2)" identifier = (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2)" identifier (argument_list "(*(ulong *)(param_3 + 0x38) ^ uVar2)" ( (binary_expression "*(ulong *)(param_3 + 0x38) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x38)" * (cast_expression "(ulong *)(param_3 + 0x38)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x38)" ( (binary_expression "param_3 + 0x38" identifier + number_literal) )))) ^ identifier) )))) ;) (expression_statement "uVar1 = uVar1 ^ uVar5;" (assignment_expression "uVar1 = uVar1 ^ uVar5" identifier = (binary_expression "uVar1 ^ uVar5" identifier ^ identifier)) ;) })) (expression_statement "uVar1 = uVar1 ^ *(ulong *)(param_3 + 8);" (assignment_expression "uVar1 = uVar1 ^ *(ulong *)(param_3 + 8)" identifier = (binary_expression "uVar1 ^ *(ulong *)(param_3 + 8)" identifier ^ (pointer_expression "*(ulong *)(param_3 + 8)" * (cast_expression "(ulong *)(param_3 + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 8)" ( (binary_expression "param_3 + 8" identifier + number_literal) )))))) ;) (expression_statement "uVar2 = uVar2 ^ *(ulong *)(param_3 + 6);" (assignment_expression "uVar2 = uVar2 ^ *(ulong *)(param_3 + 6)" identifier = (binary_expression "uVar2 ^ *(ulong *)(param_3 + 6)" identifier ^ (pointer_expression "*(ulong *)(param_3 + 6)" * (cast_expression "(ulong *)(param_3 + 6)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 6)" ( (binary_expression "param_3 + 6" identifier + number_literal) )))))) ;) (expression_statement "*param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38;" (assignment_expression "*param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" ( (binary_expression "uVar2 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" ( (binary_expression "uVar2 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" ( (binary_expression "uVar2 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" ( (binary_expression "uVar2 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x38" identifier << number_literal))) ;) (expression_statement "param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38;" (assignment_expression "param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28" (binary_expression "uVar1 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar1 & 0xff000000000000)" ( (binary_expression "uVar1 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar1 & 0xff0000000000)" ( (binary_expression "uVar1 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00000000) >> 8" (parenthesized_expression "(uVar1 & 0xff00000000)" ( (binary_expression "uVar1 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff000000) << 8" (parenthesized_expression "(uVar1 & 0xff000000)" ( (binary_expression "uVar1 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar1 & 0xff0000) << 0x18" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar1 & 0xff00) << 0x28" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x38" identifier << number_literal))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )) ^ IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) ))) & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) )) ^ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ^ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | IDENT) )) ^ IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) ))) & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) ^ (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) ))) ))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) ))) & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) )) ^ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | IDENT) )) ^ IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ^ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) ))) & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 (call_expression IDENT (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) )) ^ (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) ))) & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) ^ (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | IDENT) )) ^ IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ^ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) ))) & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) ^ (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) ))) ))) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( (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 IDENT ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (pointer_expression * IDENT) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << 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 (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << 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 ;) })))
(function_definition "undefined8 camellia_ecb_encrypt(ulong *param_1,ulong *param_2,int *param_3)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  uint uVar6;\n  \n  uVar1 = *param_1;\n  uVar2 = param_1[1];\n  uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5);\n  uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  uVar3 = (uint)(uVar1 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1;\n  uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20);\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5);\n  uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar3 = (uint)(uVar5 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4);\n  uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5);\n  uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  if (*param_3 == 0x18) {\n    uVar4 = (uint)(uVar1 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;\n    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);\n    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);\n    uVar1 = uVar1 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);\n    uVar2 = uVar1 ^ uVar2;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);\n    uVar1 = uVar1 ^ uVar5;\n  }\n  uVar1 = uVar1 ^ *(ulong *)(param_3 + 8);\n  uVar2 = uVar2 ^ *(ulong *)(param_3 + 6);\n  *param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38;\n  param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38;\n  return 0;\n}" (type_identifier "undefined8") (function_declarator "camellia_ecb_encrypt(ulong *param_1,ulong *param_2,int *param_3)" (identifier "camellia_ecb_encrypt") (parameter_list "(ulong *param_1,ulong *param_2,int *param_3)" (( "(") (parameter_declaration "ulong *param_1" (type_identifier "ulong") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "ulong *param_2" (type_identifier "ulong") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  ulong uVar1;\n  ulong uVar2;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  uint uVar6;\n  \n  uVar1 = *param_1;\n  uVar2 = param_1[1];\n  uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5);\n  uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4);\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  uVar3 = (uint)(uVar1 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1;\n  uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20);\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5);\n  uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5);\n  uVar1 = uVar1 ^ uVar2;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1);\n  uVar5 = uVar5 ^ uVar2;\n  uVar3 = (uint)(uVar5 >> 0x20);\n  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3;\n  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;\n  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4);\n  uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20);\n  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4;\n  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5);\n  uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2);\n  uVar5 = uVar5 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5);\n  uVar2 = uVar2 ^ uVar1;\n  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2);\n  uVar1 = uVar1 ^ uVar5;\n  if (*param_3 == 0x18) {\n    uVar4 = (uint)(uVar1 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;\n    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);\n    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);\n    uVar1 = uVar1 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);\n    uVar2 = uVar1 ^ uVar2;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);\n    uVar1 = uVar1 ^ uVar5;\n  }\n  uVar1 = uVar1 ^ *(ulong *)(param_3 + 8);\n  uVar2 = uVar2 ^ *(ulong *)(param_3 + 6);\n  *param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38;\n  param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38;\n  return 0;\n}" ({ "{") (declaration "ulong uVar1;" (type_identifier "ulong") (identifier "uVar1") (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" (identifier "uVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" (identifier "uVar2") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2);" (assignment_expression "uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2)" (identifier "uVar5") (= "=") (binary_expression "(uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2)" (parenthesized_expression "(uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38)" (( "(") (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |\n           (uVar1 & 0xff00) << 0x28" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |\n           (uVar1 & 0xff00000000) >> 8" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28" (binary_expression "uVar1 >> 0x38" (identifier "uVar1") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar1 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar1 & 0xff000000000000)" (( "(") (binary_expression "uVar1 & 0xff000000000000" (identifier "uVar1") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar1 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar1 & 0xff0000000000)" (( "(") (binary_expression "uVar1 & 0xff0000000000" (identifier "uVar1") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar1 & 0xff00000000) >> 8" (parenthesized_expression "(uVar1 & 0xff00000000)" (( "(") (binary_expression "uVar1 & 0xff00000000" (identifier "uVar1") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar1 & 0xff000000) << 8" (parenthesized_expression "(uVar1 & 0xff000000)" (( "(") (binary_expression "uVar1 & 0xff000000" (identifier "uVar1") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar1 & 0xff0000) << 0x18" (parenthesized_expression "(uVar1 & 0xff0000)" (( "(") (binary_expression "uVar1 & 0xff0000" (identifier "uVar1") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar1 & 0xff00) << 0x28" (parenthesized_expression "(uVar1 & 0xff00)" (( "(") (binary_expression "uVar1 & 0xff00" (identifier "uVar1") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar1 << 0x38" (identifier "uVar1") (<< "<<") (number_literal "0x38"))) () ")")) (^ "^") (pointer_expression "*(ulong *)(param_3 + 2)" (* "*") (cast_expression "(ulong *)(param_3 + 2)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 2)" (( "(") (binary_expression "param_3 + 2" (identifier "param_3") (+ "+") (number_literal "2")) () ")")))))) (; ";")) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5)" (identifier "uVar1") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 10) ^ uVar5)" (( "(") (binary_expression "*(ulong *)(param_3 + 10) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 10)" (* "*") (cast_expression "(ulong *)(param_3 + 10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 10)" (( "(") (binary_expression "param_3 + 10" (identifier "param_3") (+ "+") (number_literal "10")) () ")")))) (^ "^") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4);" (assignment_expression "uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4)" (identifier "uVar2") (= "=") (binary_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4)" (binary_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1" (parenthesized_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" (( "(") (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n           (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n           (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" (identifier "uVar2") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" (( "(") (binary_expression "uVar2 & 0xff000000000000" (identifier "uVar2") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" (( "(") (binary_expression "uVar2 & 0xff0000000000" (identifier "uVar2") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" (( "(") (binary_expression "uVar2 & 0xff00000000" (identifier "uVar2") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" (( "(") (binary_expression "uVar2 & 0xff000000" (identifier "uVar2") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" (( "(") (binary_expression "uVar2 & 0xff0000" (identifier "uVar2") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" (( "(") (binary_expression "uVar2 & 0xff00" (identifier "uVar2") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar2 << 0x38" (identifier "uVar2") (<< "<<") (number_literal "0x38"))) () ")")) (^ "^") (identifier "uVar1")) (^ "^") (pointer_expression "*(ulong *)(param_3 + 4)" (* "*") (cast_expression "(ulong *)(param_3 + 4)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2)" (identifier "uVar1") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0xc) ^ uVar2)" (( "(") (binary_expression "*(ulong *)(param_3 + 0xc) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0xc)" (* "*") (cast_expression "(ulong *)(param_3 + 0xc)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xc)" (( "(") (binary_expression "param_3 + 0xc" (identifier "param_3") (+ "+") (number_literal "0xc")) () ")")))) (^ "^") (identifier "uVar2")) () ")")))) (; ";")) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" (identifier "uVar5") (= "=") (binary_expression "uVar5 ^ uVar1" (identifier "uVar5") (^ "^") (identifier "uVar1"))) (; ";")) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5)" (identifier "uVar1") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0xe) ^ uVar5)" (( "(") (binary_expression "*(ulong *)(param_3 + 0xe) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0xe)" (* "*") (cast_expression "(ulong *)(param_3 + 0xe)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xe)" (( "(") (binary_expression "param_3 + 0xe" (identifier "param_3") (+ "+") (number_literal "0xe")) () ")")))) (^ "^") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" (identifier "uVar2") (= "=") (binary_expression "uVar2 ^ uVar1" (identifier "uVar2") (^ "^") (identifier "uVar1"))) (; ";")) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2)" (identifier "uVar1") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x10) ^ uVar2)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x10) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x10)" (* "*") (cast_expression "(ulong *)(param_3 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x10)" (( "(") (binary_expression "param_3 + 0x10" (identifier "param_3") (+ "+") (number_literal "0x10")) () ")")))) (^ "^") (identifier "uVar2")) () ")")))) (; ";")) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" (identifier "uVar5") (= "=") (binary_expression "uVar5 ^ uVar1" (identifier "uVar5") (^ "^") (identifier "uVar1"))) (; ";")) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5)" (identifier "uVar1") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x12) ^ uVar5)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x12) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x12)" (* "*") (cast_expression "(ulong *)(param_3 + 0x12)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x12)" (( "(") (binary_expression "param_3 + 0x12" (identifier "param_3") (+ "+") (number_literal "0x12")) () ")")))) (^ "^") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" (identifier "uVar2") (= "=") (binary_expression "uVar2 ^ uVar1" (identifier "uVar2") (^ "^") (identifier "uVar1"))) (; ";")) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2)" (identifier "uVar1") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x14) ^ uVar2)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x14) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x14)" (* "*") (cast_expression "(ulong *)(param_3 + 0x14)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x14)" (( "(") (binary_expression "param_3 + 0x14" (identifier "param_3") (+ "+") (number_literal "0x14")) () ")")))) (^ "^") (identifier "uVar2")) () ")")))) (; ";")) (expression_statement "uVar1 = uVar1 ^ uVar5;" (assignment_expression "uVar1 = uVar1 ^ uVar5" (identifier "uVar1") (= "=") (binary_expression "uVar1 ^ uVar5" (identifier "uVar1") (^ "^") (identifier "uVar5"))) (; ";")) (expression_statement "uVar3 = (uint)(uVar1 >> 0x20);" (assignment_expression "uVar3 = (uint)(uVar1 >> 0x20)" (identifier "uVar3") (= "=") (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar1 >> 0x20)" (( "(") (binary_expression "uVar1 >> 0x20" (identifier "uVar1") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3;" (assignment_expression "uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3" (identifier "uVar4") (= "=") (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20)" (( "(") (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3a)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(undefined8 *)(param_3 + 0x3a)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x3a)" (( "(") (binary_expression "param_3 + 0x3a" (identifier "param_3") (+ "+") (number_literal "0x3a")) () ")")))) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (identifier "uVar3"))) (; ";")) (expression_statement "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1;" (assignment_expression "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1" (identifier "uVar4") (= "=") (binary_expression "(uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1" (parenthesized_expression "(uVar4 << 1 | uVar4 >> 0x1f)" (( "(") (binary_expression "uVar4 << 1 | uVar4 >> 0x1f" (binary_expression "uVar4 << 1" (identifier "uVar4") (<< "<<") (number_literal "1")) (| "|") (binary_expression "uVar4 >> 0x1f" (identifier "uVar4") (>> ">>") (number_literal "0x1f"))) () ")")) (^ "^") (cast_expression "(uint)uVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar1")))) (; ";")) (expression_statement "uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20);" (assignment_expression "uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20)" (identifier "uVar6") (= "=") (binary_expression "((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20)" (parenthesized_expression "((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c))" (( "(") (binary_expression "(uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)" (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2")) (| "|") (binary_expression "(uint)*(undefined8 *)(param_3 + 0x3c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)(param_3 + 0x3c)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x3c)" (( "(") (binary_expression "param_3 + 0x3c" (identifier "param_3") (+ "+") (number_literal "0x3c")) () ")"))))) () ")")) (^ "^") (call_expression "(uint)(uVar2 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 >> 0x20)" (( "(") (binary_expression "uVar2 >> 0x20" (identifier "uVar2") (>> ">>") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4);" (assignment_expression "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4)" (identifier "uVar5") (= "=") (call_expression "CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4)" (identifier "CONCAT44") (argument_list "(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4)" (( "(") (binary_expression "((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3" (parenthesized_expression "((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4)" (( "(") (binary_expression "(uint)*(undefined8 *)(param_3 + 0x3a) | uVar4" (binary_expression "(uint)*(undefined8 *)(param_3 + 0x3a)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)(param_3 + 0x3a)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x3a)" (( "(") (binary_expression "param_3 + 0x3a" (identifier "param_3") (+ "+") (number_literal "0x3a")) () ")")))) (| "|") (identifier "uVar4")) () ")")) (^ "^") (identifier "uVar3")) (, ",") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6;" (assignment_expression "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6" (identifier "uVar3") (= "=") (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20)" (( "(") (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3c)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(undefined8 *)(param_3 + 0x3c)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x3c)" (( "(") (binary_expression "param_3 + 0x3c" (identifier "param_3") (+ "+") (number_literal "0x3c")) () ")")))) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (identifier "uVar6"))) (; ";")) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5)" (identifier "uVar1") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x16) ^ uVar5)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x16) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x16)" (* "*") (cast_expression "(ulong *)(param_3 + 0x16)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x16)" (( "(") (binary_expression "param_3 + 0x16" (identifier "param_3") (+ "+") (number_literal "0x16")) () ")")))) (^ "^") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;" (assignment_expression "uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" (identifier "uVar1") (= "=") (binary_expression "CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" (call_expression "CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" (identifier "CONCAT44") (argument_list "(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" (( "(") (identifier "uVar6") (, ",") (binary_expression "(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)" (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2")) (^ "^") (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" (( "(") (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" (identifier "uVar3") (<< "<<") (number_literal "1")) (| "|") (binary_expression "uVar3 >> 0x1f" (identifier "uVar3") (>> ">>") (number_literal "0x1f"))) () ")"))) () ")"))) (^ "^") (identifier "uVar1"))) (; ";")) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1)" (identifier "uVar2") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x18) ^ uVar1)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x18) ^ uVar1" (pointer_expression "*(ulong *)(param_3 + 0x18)" (* "*") (cast_expression "(ulong *)(param_3 + 0x18)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x18)" (( "(") (binary_expression "param_3 + 0x18" (identifier "param_3") (+ "+") (number_literal "0x18")) () ")")))) (^ "^") (identifier "uVar1")) () ")")))) (; ";")) (expression_statement "uVar5 = uVar5 ^ uVar2;" (assignment_expression "uVar5 = uVar5 ^ uVar2" (identifier "uVar5") (= "=") (binary_expression "uVar5 ^ uVar2" (identifier "uVar5") (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5)" (identifier "uVar2") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x1a) ^ uVar5)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x1a) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x1a)" (* "*") (cast_expression "(ulong *)(param_3 + 0x1a)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1a)" (( "(") (binary_expression "param_3 + 0x1a" (identifier "param_3") (+ "+") (number_literal "0x1a")) () ")")))) (^ "^") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "uVar1 = uVar1 ^ uVar2;" (assignment_expression "uVar1 = uVar1 ^ uVar2" (identifier "uVar1") (= "=") (binary_expression "uVar1 ^ uVar2" (identifier "uVar1") (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1)" (identifier "uVar2") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x1c) ^ uVar1)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x1c) ^ uVar1" (pointer_expression "*(ulong *)(param_3 + 0x1c)" (* "*") (cast_expression "(ulong *)(param_3 + 0x1c)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1c)" (( "(") (binary_expression "param_3 + 0x1c" (identifier "param_3") (+ "+") (number_literal "0x1c")) () ")")))) (^ "^") (identifier "uVar1")) () ")")))) (; ";")) (expression_statement "uVar5 = uVar5 ^ uVar2;" (assignment_expression "uVar5 = uVar5 ^ uVar2" (identifier "uVar5") (= "=") (binary_expression "uVar5 ^ uVar2" (identifier "uVar5") (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5)" (identifier "uVar2") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x1e) ^ uVar5)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x1e) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x1e)" (* "*") (cast_expression "(ulong *)(param_3 + 0x1e)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1e)" (( "(") (binary_expression "param_3 + 0x1e" (identifier "param_3") (+ "+") (number_literal "0x1e")) () ")")))) (^ "^") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "uVar1 = uVar1 ^ uVar2;" (assignment_expression "uVar1 = uVar1 ^ uVar2" (identifier "uVar1") (= "=") (binary_expression "uVar1 ^ uVar2" (identifier "uVar1") (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1)" (identifier "uVar2") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x20) ^ uVar1)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x20) ^ uVar1" (pointer_expression "*(ulong *)(param_3 + 0x20)" (* "*") (cast_expression "(ulong *)(param_3 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x20)" (( "(") (binary_expression "param_3 + 0x20" (identifier "param_3") (+ "+") (number_literal "0x20")) () ")")))) (^ "^") (identifier "uVar1")) () ")")))) (; ";")) (expression_statement "uVar5 = uVar5 ^ uVar2;" (assignment_expression "uVar5 = uVar5 ^ uVar2" (identifier "uVar5") (= "=") (binary_expression "uVar5 ^ uVar2" (identifier "uVar5") (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar3 = (uint)(uVar5 >> 0x20);" (assignment_expression "uVar3 = (uint)(uVar5 >> 0x20)" (identifier "uVar3") (= "=") (call_expression "(uint)(uVar5 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar5 >> 0x20)" (( "(") (binary_expression "uVar5 >> 0x20" (identifier "uVar5") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3;" (assignment_expression "uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3" (identifier "uVar4") (= "=") (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20)" (( "(") (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x3e)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(undefined8 *)(param_3 + 0x3e)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x3e)" (( "(") (binary_expression "param_3 + 0x3e" (identifier "param_3") (+ "+") (number_literal "0x3e")) () ")")))) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (identifier "uVar3"))) (; ";")) (expression_statement "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;" (assignment_expression "uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5" (identifier "uVar4") (= "=") (binary_expression "(uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5" (parenthesized_expression "(uVar4 << 1 | uVar4 >> 0x1f)" (( "(") (binary_expression "uVar4 << 1 | uVar4 >> 0x1f" (binary_expression "uVar4 << 1" (identifier "uVar4") (<< "<<") (number_literal "1")) (| "|") (binary_expression "uVar4 >> 0x1f" (identifier "uVar4") (>> ">>") (number_literal "0x1f"))) () ")")) (^ "^") (cast_expression "(uint)uVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar5")))) (; ";")) (expression_statement "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4);" (assignment_expression "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4)" (identifier "uVar5") (= "=") (call_expression "CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4)" (identifier "CONCAT44") (argument_list "(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4)" (( "(") (binary_expression "((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3" (parenthesized_expression "((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4)" (( "(") (binary_expression "(uint)*(undefined8 *)(param_3 + 0x3e) | uVar4" (binary_expression "(uint)*(undefined8 *)(param_3 + 0x3e)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)(param_3 + 0x3e)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x3e)" (( "(") (binary_expression "param_3 + 0x3e" (identifier "param_3") (+ "+") (number_literal "0x3e")) () ")")))) (| "|") (identifier "uVar4")) () ")")) (^ "^") (identifier "uVar3")) (, ",") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20);" (assignment_expression "uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20)" (identifier "uVar4") (= "=") (binary_expression "((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20)" (parenthesized_expression "((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40))" (( "(") (binary_expression "(uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)" (cast_expression "(uint)uVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar1")) (| "|") (binary_expression "(uint)*(undefined8 *)(param_3 + 0x40)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)(param_3 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x40)" (( "(") (binary_expression "param_3 + 0x40" (identifier "param_3") (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (^ "^") (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar1 >> 0x20)" (( "(") (binary_expression "uVar1 >> 0x20" (identifier "uVar1") (>> ">>") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4;" (assignment_expression "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4" (identifier "uVar3") (= "=") (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20)" (( "(") (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x40)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(undefined8 *)(param_3 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x40)" (( "(") (binary_expression "param_3 + 0x40" (identifier "param_3") (+ "+") (number_literal "0x40")) () ")")))) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (identifier "uVar4"))) (; ";")) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5)" (identifier "uVar2") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x22) ^ uVar5)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x22) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x22)" (* "*") (cast_expression "(ulong *)(param_3 + 0x22)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x22)" (( "(") (binary_expression "param_3 + 0x22" (identifier "param_3") (+ "+") (number_literal "0x22")) () ")")))) (^ "^") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2;" (assignment_expression "uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2" (identifier "uVar2") (= "=") (binary_expression "CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2" (call_expression "CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1)" (identifier "CONCAT44") (argument_list "(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1)" (( "(") (identifier "uVar4") (, ",") (binary_expression "(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1" (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" (( "(") (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" (identifier "uVar3") (<< "<<") (number_literal "1")) (| "|") (binary_expression "uVar3 >> 0x1f" (identifier "uVar3") (>> ">>") (number_literal "0x1f"))) () ")")) (^ "^") (cast_expression "(uint)uVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar1"))) () ")"))) (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2)" (identifier "uVar1") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x24) ^ uVar2)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x24) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x24)" (* "*") (cast_expression "(ulong *)(param_3 + 0x24)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x24)" (( "(") (binary_expression "param_3 + 0x24" (identifier "param_3") (+ "+") (number_literal "0x24")) () ")")))) (^ "^") (identifier "uVar2")) () ")")))) (; ";")) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" (identifier "uVar5") (= "=") (binary_expression "uVar5 ^ uVar1" (identifier "uVar5") (^ "^") (identifier "uVar1"))) (; ";")) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5)" (identifier "uVar1") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x26) ^ uVar5)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x26) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x26)" (* "*") (cast_expression "(ulong *)(param_3 + 0x26)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x26)" (( "(") (binary_expression "param_3 + 0x26" (identifier "param_3") (+ "+") (number_literal "0x26")) () ")")))) (^ "^") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" (identifier "uVar2") (= "=") (binary_expression "uVar2 ^ uVar1" (identifier "uVar2") (^ "^") (identifier "uVar1"))) (; ";")) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2)" (identifier "uVar1") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x28) ^ uVar2)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x28) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x28)" (* "*") (cast_expression "(ulong *)(param_3 + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x28)" (( "(") (binary_expression "param_3 + 0x28" (identifier "param_3") (+ "+") (number_literal "0x28")) () ")")))) (^ "^") (identifier "uVar2")) () ")")))) (; ";")) (expression_statement "uVar5 = uVar5 ^ uVar1;" (assignment_expression "uVar5 = uVar5 ^ uVar1" (identifier "uVar5") (= "=") (binary_expression "uVar5 ^ uVar1" (identifier "uVar5") (^ "^") (identifier "uVar1"))) (; ";")) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5)" (identifier "uVar1") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x2a) ^ uVar5)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x2a) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x2a)" (* "*") (cast_expression "(ulong *)(param_3 + 0x2a)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2a)" (( "(") (binary_expression "param_3 + 0x2a" (identifier "param_3") (+ "+") (number_literal "0x2a")) () ")")))) (^ "^") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "uVar2 = uVar2 ^ uVar1;" (assignment_expression "uVar2 = uVar2 ^ uVar1" (identifier "uVar2") (= "=") (binary_expression "uVar2 ^ uVar1" (identifier "uVar2") (^ "^") (identifier "uVar1"))) (; ";")) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2)" (identifier "uVar1") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x2c) ^ uVar2)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x2c) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x2c)" (* "*") (cast_expression "(ulong *)(param_3 + 0x2c)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2c)" (( "(") (binary_expression "param_3 + 0x2c" (identifier "param_3") (+ "+") (number_literal "0x2c")) () ")")))) (^ "^") (identifier "uVar2")) () ")")))) (; ";")) (expression_statement "uVar1 = uVar1 ^ uVar5;" (assignment_expression "uVar1 = uVar1 ^ uVar5" (identifier "uVar1") (= "=") (binary_expression "uVar1 ^ uVar5" (identifier "uVar1") (^ "^") (identifier "uVar5"))) (; ";")) (if_statement "if (*param_3 == 0x18) {\n    uVar4 = (uint)(uVar1 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;\n    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);\n    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);\n    uVar1 = uVar1 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);\n    uVar2 = uVar1 ^ uVar2;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);\n    uVar1 = uVar1 ^ uVar5;\n  }" (if "if") (parenthesized_expression "(*param_3 == 0x18)" (( "(") (binary_expression "*param_3 == 0x18" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (== "==") (number_literal "0x18")) () ")")) (compound_statement "{\n    uVar4 = (uint)(uVar1 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;\n    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);\n    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);\n    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);\n    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);\n    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);\n    uVar1 = uVar1 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);\n    uVar5 = uVar5 ^ uVar2;\n    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);\n    uVar2 = uVar1 ^ uVar2;\n    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);\n    uVar1 = uVar1 ^ uVar5;\n  }" ({ "{") (expression_statement "uVar4 = (uint)(uVar1 >> 0x20);" (assignment_expression "uVar4 = (uint)(uVar1 >> 0x20)" (identifier "uVar4") (= "=") (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar1 >> 0x20)" (( "(") (binary_expression "uVar1 >> 0x20" (identifier "uVar1") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;" (assignment_expression "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4" (identifier "uVar3") (= "=") (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20)" (( "(") (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x42)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(undefined8 *)(param_3 + 0x42)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x42)" (( "(") (binary_expression "param_3 + 0x42" (identifier "param_3") (+ "+") (number_literal "0x42")) () ")")))) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (identifier "uVar4"))) (; ";")) (expression_statement "uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);" (assignment_expression "uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f)" (identifier "uVar3") (= "=") (binary_expression "(uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f)" (cast_expression "(uint)uVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar1")) (^ "^") (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" (( "(") (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" (identifier "uVar3") (<< "<<") (number_literal "1")) (| "|") (binary_expression "uVar3 >> 0x1f" (identifier "uVar3") (>> ">>") (number_literal "0x1f"))) () ")")))) (; ";")) (expression_statement "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);" (assignment_expression "uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3)" (identifier "uVar5") (= "=") (call_expression "CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3)" (identifier "CONCAT44") (argument_list "(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3)" (( "(") (binary_expression "((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4" (parenthesized_expression "((uint)*(undefined8 *)(param_3 + 0x42) | uVar3)" (( "(") (binary_expression "(uint)*(undefined8 *)(param_3 + 0x42) | uVar3" (binary_expression "(uint)*(undefined8 *)(param_3 + 0x42)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)(param_3 + 0x42)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x42)" (( "(") (binary_expression "param_3 + 0x42" (identifier "param_3") (+ "+") (number_literal "0x42")) () ")")))) (| "|") (identifier "uVar3")) () ")")) (^ "^") (identifier "uVar4")) (, ",") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);" (assignment_expression "uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20)" (identifier "uVar4") (= "=") (binary_expression "((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20)" (parenthesized_expression "((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44))" (( "(") (binary_expression "(uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)" (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2")) (| "|") (binary_expression "(uint)*(undefined8 *)(param_3 + 0x44)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)(param_3 + 0x44)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x44)" (( "(") (binary_expression "param_3 + 0x44" (identifier "param_3") (+ "+") (number_literal "0x44")) () ")"))))) () ")")) (^ "^") (call_expression "(uint)(uVar2 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 >> 0x20)" (( "(") (binary_expression "uVar2 >> 0x20" (identifier "uVar2") (>> ">>") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;" (assignment_expression "uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4" (identifier "uVar3") (= "=") (binary_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4" (call_expression "(uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20)" (( "(") (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20" (binary_expression "(ulong)*(undefined8 *)(param_3 + 0x44)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(undefined8 *)(param_3 + 0x44)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x44)" (( "(") (binary_expression "param_3 + 0x44" (identifier "param_3") (+ "+") (number_literal "0x44")) () ")")))) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (identifier "uVar4"))) (; ";")) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5)" (identifier "uVar1") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x2e) ^ uVar5)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x2e) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x2e)" (* "*") (cast_expression "(ulong *)(param_3 + 0x2e)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2e)" (( "(") (binary_expression "param_3 + 0x2e" (identifier "param_3") (+ "+") (number_literal "0x2e")) () ")")))) (^ "^") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;" (assignment_expression "uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" (identifier "uVar1") (= "=") (binary_expression "CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1" (call_expression "CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" (identifier "CONCAT44") (argument_list "(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f))" (( "(") (identifier "uVar4") (, ",") (binary_expression "(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)" (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2")) (^ "^") (parenthesized_expression "(uVar3 << 1 | uVar3 >> 0x1f)" (( "(") (binary_expression "uVar3 << 1 | uVar3 >> 0x1f" (binary_expression "uVar3 << 1" (identifier "uVar3") (<< "<<") (number_literal "1")) (| "|") (binary_expression "uVar3 >> 0x1f" (identifier "uVar3") (>> ">>") (number_literal "0x1f"))) () ")"))) () ")"))) (^ "^") (identifier "uVar1"))) (; ";")) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1)" (identifier "uVar2") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x30) ^ uVar1)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x30) ^ uVar1" (pointer_expression "*(ulong *)(param_3 + 0x30)" (* "*") (cast_expression "(ulong *)(param_3 + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x30)" (( "(") (binary_expression "param_3 + 0x30" (identifier "param_3") (+ "+") (number_literal "0x30")) () ")")))) (^ "^") (identifier "uVar1")) () ")")))) (; ";")) (expression_statement "uVar5 = uVar5 ^ uVar2;" (assignment_expression "uVar5 = uVar5 ^ uVar2" (identifier "uVar5") (= "=") (binary_expression "uVar5 ^ uVar2" (identifier "uVar5") (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5)" (identifier "uVar2") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x32) ^ uVar5)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x32) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x32)" (* "*") (cast_expression "(ulong *)(param_3 + 0x32)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x32)" (( "(") (binary_expression "param_3 + 0x32" (identifier "param_3") (+ "+") (number_literal "0x32")) () ")")))) (^ "^") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "uVar1 = uVar1 ^ uVar2;" (assignment_expression "uVar1 = uVar1 ^ uVar2" (identifier "uVar1") (= "=") (binary_expression "uVar1 ^ uVar2" (identifier "uVar1") (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1)" (identifier "uVar2") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x34) ^ uVar1)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x34) ^ uVar1" (pointer_expression "*(ulong *)(param_3 + 0x34)" (* "*") (cast_expression "(ulong *)(param_3 + 0x34)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x34)" (( "(") (binary_expression "param_3 + 0x34" (identifier "param_3") (+ "+") (number_literal "0x34")) () ")")))) (^ "^") (identifier "uVar1")) () ")")))) (; ";")) (expression_statement "uVar5 = uVar5 ^ uVar2;" (assignment_expression "uVar5 = uVar5 ^ uVar2" (identifier "uVar5") (= "=") (binary_expression "uVar5 ^ uVar2" (identifier "uVar5") (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);" (assignment_expression "uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5)" (identifier "uVar2") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x36) ^ uVar5)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x36) ^ uVar5" (pointer_expression "*(ulong *)(param_3 + 0x36)" (* "*") (cast_expression "(ulong *)(param_3 + 0x36)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x36)" (( "(") (binary_expression "param_3 + 0x36" (identifier "param_3") (+ "+") (number_literal "0x36")) () ")")))) (^ "^") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "uVar2 = uVar1 ^ uVar2;" (assignment_expression "uVar2 = uVar1 ^ uVar2" (identifier "uVar2") (= "=") (binary_expression "uVar1 ^ uVar2" (identifier "uVar1") (^ "^") (identifier "uVar2"))) (; ";")) (expression_statement "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);" (assignment_expression "uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2)" (identifier "uVar1") (= "=") (call_expression "FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2)" (identifier "FUN_001193d0") (argument_list "(*(ulong *)(param_3 + 0x38) ^ uVar2)" (( "(") (binary_expression "*(ulong *)(param_3 + 0x38) ^ uVar2" (pointer_expression "*(ulong *)(param_3 + 0x38)" (* "*") (cast_expression "(ulong *)(param_3 + 0x38)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x38)" (( "(") (binary_expression "param_3 + 0x38" (identifier "param_3") (+ "+") (number_literal "0x38")) () ")")))) (^ "^") (identifier "uVar2")) () ")")))) (; ";")) (expression_statement "uVar1 = uVar1 ^ uVar5;" (assignment_expression "uVar1 = uVar1 ^ uVar5" (identifier "uVar1") (= "=") (binary_expression "uVar1 ^ uVar5" (identifier "uVar1") (^ "^") (identifier "uVar5"))) (; ";")) (} "}"))) (expression_statement "uVar1 = uVar1 ^ *(ulong *)(param_3 + 8);" (assignment_expression "uVar1 = uVar1 ^ *(ulong *)(param_3 + 8)" (identifier "uVar1") (= "=") (binary_expression "uVar1 ^ *(ulong *)(param_3 + 8)" (identifier "uVar1") (^ "^") (pointer_expression "*(ulong *)(param_3 + 8)" (* "*") (cast_expression "(ulong *)(param_3 + 8)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 8)" (( "(") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "uVar2 = uVar2 ^ *(ulong *)(param_3 + 6);" (assignment_expression "uVar2 = uVar2 ^ *(ulong *)(param_3 + 6)" (identifier "uVar2") (= "=") (binary_expression "uVar2 ^ *(ulong *)(param_3 + 6)" (identifier "uVar2") (^ "^") (pointer_expression "*(ulong *)(param_3 + 6)" (* "*") (cast_expression "(ulong *)(param_3 + 6)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 6)" (( "(") (binary_expression "param_3 + 6" (identifier "param_3") (+ "+") (number_literal "6")) () ")")))))) (; ";")) (expression_statement "*param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38;" (assignment_expression "*param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n             (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |\n             (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" (identifier "uVar2") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" (( "(") (binary_expression "uVar2 & 0xff000000000000" (identifier "uVar2") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" (( "(") (binary_expression "uVar2 & 0xff0000000000" (identifier "uVar2") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" (( "(") (binary_expression "uVar2 & 0xff00000000" (identifier "uVar2") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" (( "(") (binary_expression "uVar2 & 0xff000000" (identifier "uVar2") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" (( "(") (binary_expression "uVar2 & 0xff0000" (identifier "uVar2") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" (( "(") (binary_expression "uVar2 & 0xff00" (identifier "uVar2") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar2 << 0x38" (identifier "uVar2") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38;" (assignment_expression "param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |\n               (uVar1 & 0xff0000) << 0x18" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18\n               | (uVar1 & 0xff00000000) >> 8" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18" (binary_expression "uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28" (binary_expression "uVar1 >> 0x38" (identifier "uVar1") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar1 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar1 & 0xff000000000000)" (( "(") (binary_expression "uVar1 & 0xff000000000000" (identifier "uVar1") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar1 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar1 & 0xff0000000000)" (( "(") (binary_expression "uVar1 & 0xff0000000000" (identifier "uVar1") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar1 & 0xff00000000) >> 8" (parenthesized_expression "(uVar1 & 0xff00000000)" (( "(") (binary_expression "uVar1 & 0xff00000000" (identifier "uVar1") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar1 & 0xff000000) << 8" (parenthesized_expression "(uVar1 & 0xff000000)" (( "(") (binary_expression "uVar1 & 0xff000000" (identifier "uVar1") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar1 & 0xff0000) << 0x18" (parenthesized_expression "(uVar1 & 0xff0000)" (( "(") (binary_expression "uVar1 & 0xff0000" (identifier "uVar1") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar1 & 0xff00) << 0x28" (parenthesized_expression "(uVar1 & 0xff00)" (( "(") (binary_expression "uVar1 & 0xff00" (identifier "uVar1") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar1 << 0x38" (identifier "uVar1") (<< "<<") (number_literal "0x38")))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

int function_1(type_1 *var_1,type_1 *var_10,type_2 *skey)

{
  type_3 var_5;
  type_4 var_4;
  type_5 var_6;
  type_5 var_7;
  type_4 var_2;
  type_5 var_9;
  
  var_2 = *(type_4 *)var_1;
  var_4 = *(type_4 *)(var_1 + 8);
  var_2 = (var_2 >> 0x38 | (var_2 & 0xff000000000000) >> 0x28 | (var_2 & 0xff0000000000) >> 0x18 |
           (var_2 & 0xff00000000) >> 8 | (var_2 & 0xff000000) << 8 | (var_2 & 0xff0000) << 0x18 |
           (var_2 & 0xff00) << 0x28 | var_2 << 0x38) ^ (skey->xtea).A[1];
  var_5 = var_3((skey->xtea).A[5] ^ var_2);
  var_4 = (var_4 >> 0x38 | (var_4 & 0xff000000000000) >> 0x28 | (var_4 & 0xff0000000000) >> 0x18 |
           (var_4 & 0xff00000000) >> 8 | (var_4 & 0xff000000) << 8 | (var_4 & 0xff0000) << 0x18 |
           (var_4 & 0xff00) << 0x28 | var_4 << 0x38) ^ var_5 ^ (skey->xtea).A[2];
  var_5 = var_3((skey->xtea).A[6] ^ var_4);
  var_2 = var_2 ^ var_5;
  var_5 = var_3((skey->xtea).A[7] ^ var_2);
  var_4 = var_4 ^ var_5;
  var_5 = var_3((skey->xtea).A[8] ^ var_4);
  var_2 = var_2 ^ var_5;
  var_5 = var_3((skey->xtea).A[9] ^ var_2);
  var_4 = var_4 ^ var_5;
  var_5 = var_3((skey->xtea).A[10] ^ var_4);
  var_2 = var_5 ^ var_2;
  var_6 = (type_5)(var_2 >> 0x20);
  var_7 = (type_5)((skey->xtea).A[0x1d] >> 0x20) & var_6;
  var_7 = (var_7 << 1 | var_7 >> 0x1f) ^ (type_5)var_2;
  var_9 = ((type_5)var_4 | (type_5)(skey->xtea).A[0x1e]) ^ (type_5)(var_4 >> 0x20);
  var_2 = var_8(((type_5)(skey->xtea).A[0x1d] | var_7) ^ var_6,var_7);
  var_6 = (type_5)((skey->xtea).A[0x1e] >> 0x20) & var_9;
  var_5 = var_3((skey->xtea).A[0xb] ^ var_2);
  var_4 = var_8(var_9,(type_5)var_4 ^ (var_6 << 1 | var_6 >> 0x1f)) ^ var_5;
  var_5 = var_3((skey->xtea).A[0xc] ^ var_4);
  var_2 = var_2 ^ var_5;
  var_5 = var_3((skey->xtea).A[0xd] ^ var_2);
  var_4 = var_4 ^ var_5;
  var_5 = var_3((skey->xtea).A[0xe] ^ var_4);
  var_2 = var_2 ^ var_5;
  var_5 = var_3((skey->xtea).A[0xf] ^ var_2);
  var_4 = var_4 ^ var_5;
  var_5 = var_3((skey->xtea).A[0x10] ^ var_4);
  var_2 = var_2 ^ var_5;
  var_6 = (type_5)(var_2 >> 0x20);
  var_7 = (type_5)((skey->xtea).A[0x1f] >> 0x20) & var_6;
  var_7 = (var_7 << 1 | var_7 >> 0x1f) ^ (type_5)var_2;
  var_2 = var_8(((type_5)(skey->xtea).A[0x1f] | var_7) ^ var_6,var_7);
  var_7 = ((type_5)var_4 | (type_5)(skey->xtea).B[0]) ^ (type_5)(var_4 >> 0x20);
  var_6 = (type_5)((skey->xtea).B[0] >> 0x20) & var_7;
  var_5 = var_3((skey->xtea).A[0x11] ^ var_2);
  var_4 = var_8(var_7,(var_6 << 1 | var_6 >> 0x1f) ^ (type_5)var_4) ^ var_5;
  var_5 = var_3((skey->xtea).A[0x12] ^ var_4);
  var_2 = var_2 ^ var_5;
  var_5 = var_3((skey->xtea).A[0x13] ^ var_2);
  var_4 = var_4 ^ var_5;
  var_5 = var_3((skey->xtea).A[0x14] ^ var_4);
  var_2 = var_2 ^ var_5;
  var_5 = var_3((skey->xtea).A[0x15] ^ var_2);
  var_4 = var_4 ^ var_5;
  var_5 = var_3((skey->xtea).A[0x16] ^ var_4);
  var_2 = var_5 ^ var_2;
  if ((skey->des).ek[0] == 0x18) {
    var_7 = (type_5)(var_2 >> 0x20);
    var_6 = (type_5)((skey->xtea).B[1] >> 0x20) & var_7;
    var_6 = (type_5)var_2 ^ (var_6 << 1 | var_6 >> 0x1f);
    var_2 = var_8(((type_5)(skey->xtea).B[1] | var_6) ^ var_7,var_6);
    var_7 = ((type_5)var_4 | (type_5)(skey->xtea).B[2]) ^ (type_5)(var_4 >> 0x20);
    var_6 = (type_5)((skey->xtea).B[2] >> 0x20) & var_7;
    var_5 = var_3((skey->xtea).A[0x17] ^ var_2);
    var_4 = var_8(var_7,(type_5)var_4 ^ (var_6 << 1 | var_6 >> 0x1f)) ^ var_5;
    var_5 = var_3((skey->xtea).A[0x18] ^ var_4);
    var_2 = var_2 ^ var_5;
    var_5 = var_3((skey->xtea).A[0x19] ^ var_2);
    var_4 = var_4 ^ var_5;
    var_5 = var_3((skey->xtea).A[0x1a] ^ var_4);
    var_2 = var_2 ^ var_5;
    var_5 = var_3((skey->xtea).A[0x1b] ^ var_2);
    var_4 = var_4 ^ var_5;
    var_5 = var_3((skey->xtea).A[0x1c] ^ var_4);
    var_2 = var_5 ^ var_2;
  }
  var_2 = var_2 ^ (skey->xtea).A[4];
  var_4 = var_4 ^ (skey->xtea).A[3];
  *(type_4 *)var_10 = var_4 >> 0x38 | (var_4 & 0xff000000000000) >> 0x28 |
                 (var_4 & 0xff0000000000) >> 0x18 | (var_4 & 0xff00000000) >> 8 |
                 (var_4 & 0xff000000) << 8 | (var_4 & 0xff0000) << 0x18 | (var_4 & 0xff00) << 0x28 |
                 var_4 << 0x38;
  *(type_4 *)(var_10 + 8) =
       var_2 >> 0x38 | (var_2 & 0xff000000000000) >> 0x28 | (var_2 & 0xff0000000000) >> 0x18 |
       (var_2 & 0xff00000000) >> 8 | (var_2 & 0xff000000) << 8 | (var_2 & 0xff0000) << 0x18 |
       (var_2 & 0xff00) << 0x28 | var_2 << 0x38;
  return 0;
}


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

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

{
  ulong uVar1;
  ulong uVar2;
  uint uVar3;
  uint uVar4;
  ulong uVar5;
  uint uVar6;
  
  uVar1 = *param_1;
  uVar2 = param_1[1];
  uVar5 = (uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18 |
           (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 | (uVar1 & 0xff0000) << 0x18 |
           (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38) ^ *(ulong *)(param_3 + 2);
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 10) ^ uVar5);
  uVar2 = (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |
           (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |
           (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38) ^ uVar1 ^ *(ulong *)(param_3 + 4);
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xc) ^ uVar2);
  uVar5 = uVar5 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0xe) ^ uVar5);
  uVar2 = uVar2 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x10) ^ uVar2);
  uVar5 = uVar5 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x12) ^ uVar5);
  uVar2 = uVar2 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x14) ^ uVar2);
  uVar1 = uVar1 ^ uVar5;
  uVar3 = (uint)(uVar1 >> 0x20);
  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3a) >> 0x20) & uVar3;
  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar1;
  uVar6 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x3c)) ^ (uint)(uVar2 >> 0x20);
  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3a) | uVar4) ^ uVar3,uVar4);
  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3c) >> 0x20) & uVar6;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x16) ^ uVar5);
  uVar1 = CONCAT44(uVar6,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;
  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x18) ^ uVar1);
  uVar5 = uVar5 ^ uVar2;
  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1a) ^ uVar5);
  uVar1 = uVar1 ^ uVar2;
  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1c) ^ uVar1);
  uVar5 = uVar5 ^ uVar2;
  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x1e) ^ uVar5);
  uVar1 = uVar1 ^ uVar2;
  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x20) ^ uVar1);
  uVar5 = uVar5 ^ uVar2;
  uVar3 = (uint)(uVar5 >> 0x20);
  uVar4 = (uint)((ulong)*(undefined8 *)(param_3 + 0x3e) >> 0x20) & uVar3;
  uVar4 = (uVar4 << 1 | uVar4 >> 0x1f) ^ (uint)uVar5;
  uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x3e) | uVar4) ^ uVar3,uVar4);
  uVar4 = ((uint)uVar1 | (uint)*(undefined8 *)(param_3 + 0x40)) ^ (uint)(uVar1 >> 0x20);
  uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x40) >> 0x20) & uVar4;
  uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x22) ^ uVar5);
  uVar2 = CONCAT44(uVar4,(uVar3 << 1 | uVar3 >> 0x1f) ^ (uint)uVar1) ^ uVar2;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x24) ^ uVar2);
  uVar5 = uVar5 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x26) ^ uVar5);
  uVar2 = uVar2 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x28) ^ uVar2);
  uVar5 = uVar5 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2a) ^ uVar5);
  uVar2 = uVar2 ^ uVar1;
  uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2c) ^ uVar2);
  uVar1 = uVar1 ^ uVar5;
  if (*param_3 == 0x18) {
    uVar4 = (uint)(uVar1 >> 0x20);
    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x42) >> 0x20) & uVar4;
    uVar3 = (uint)uVar1 ^ (uVar3 << 1 | uVar3 >> 0x1f);
    uVar5 = CONCAT44(((uint)*(undefined8 *)(param_3 + 0x42) | uVar3) ^ uVar4,uVar3);
    uVar4 = ((uint)uVar2 | (uint)*(undefined8 *)(param_3 + 0x44)) ^ (uint)(uVar2 >> 0x20);
    uVar3 = (uint)((ulong)*(undefined8 *)(param_3 + 0x44) >> 0x20) & uVar4;
    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x2e) ^ uVar5);
    uVar1 = CONCAT44(uVar4,(uint)uVar2 ^ (uVar3 << 1 | uVar3 >> 0x1f)) ^ uVar1;
    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x30) ^ uVar1);
    uVar5 = uVar5 ^ uVar2;
    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x32) ^ uVar5);
    uVar1 = uVar1 ^ uVar2;
    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x34) ^ uVar1);
    uVar5 = uVar5 ^ uVar2;
    uVar2 = FUN_001193d0(*(ulong *)(param_3 + 0x36) ^ uVar5);
    uVar2 = uVar1 ^ uVar2;
    uVar1 = FUN_001193d0(*(ulong *)(param_3 + 0x38) ^ uVar2);
    uVar1 = uVar1 ^ uVar5;
  }
  uVar1 = uVar1 ^ *(ulong *)(param_3 + 8);
  uVar2 = uVar2 ^ *(ulong *)(param_3 + 6);
  *param_2 = uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 | (uVar2 & 0xff0000000000) >> 0x18 |
             (uVar2 & 0xff00000000) >> 8 | (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |
             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38;
  param_2[1] = uVar1 >> 0x38 | (uVar1 & 0xff000000000000) >> 0x28 | (uVar1 & 0xff0000000000) >> 0x18
               | (uVar1 & 0xff00000000) >> 8 | (uVar1 & 0xff000000) << 8 |
               (uVar1 & 0xff0000) << 0x18 | (uVar1 & 0xff00) << 0x28 | uVar1 << 0x38;
  return 0;
}

