
void aes_encrypt_nb_4(AESContext *ctx,word32 *block)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  AESContext *pAVar16;
  AESContext *pAVar17;
  uint uVar18;
  int iVar19;
  
  pAVar17 = ctx;
  if (1 < ctx->Nr) {
    iVar19 = 0;
    pAVar16 = ctx;
    do {
      uVar6 = *block ^ pAVar16->keysched[0];
      *block = uVar6;
      uVar9 = block[1] ^ pAVar16->keysched[1];
      block[1] = uVar9;
      uVar7 = block[2] ^ pAVar16->keysched[2];
      block[2] = uVar7;
      pAVar17 = (AESContext *)(pAVar16->keysched + 4);
      uVar11 = block[3] ^ pAVar16->keysched[3];
      uVar10 = E0[uVar9 >> 0x18];
      uVar8 = E3[uVar6 & 0xff];
      uVar12 = E1[uVar7 >> 0x10 & 0xff];
      uVar13 = E2[uVar11 >> 8 & 0xff];
      uVar14 = E0[uVar7 >> 0x18];
      uVar15 = E3[uVar9 & 0xff];
      uVar18 = E2[uVar6 >> 8 & 0xff];
      uVar1 = E1[uVar11 >> 0x10 & 0xff];
      uVar2 = E1[uVar6 >> 0x10 & 0xff];
      uVar3 = E2[uVar9 >> 8 & 0xff];
      uVar4 = E3[uVar7 & 0xff];
      uVar5 = E0[uVar11 >> 0x18];
      *block = E1[uVar9 >> 0x10 & 0xff] ^ E2[uVar7 >> 8 & 0xff] ^ E0[uVar6 >> 0x18] ^
               E3[uVar11 & 0xff];
      block[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;
      block[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;
      block[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;
      iVar19 = iVar19 + 1;
      pAVar16 = pAVar17;
    } while (iVar19 < ctx->Nr + -1);
  }
  uVar12 = *block ^ pAVar17->keysched[0];
  *block = uVar12;
  uVar15 = block[1] ^ pAVar17->keysched[1];
  block[1] = uVar15;
  uVar18 = block[2] ^ pAVar17->keysched[2];
  block[2] = uVar18;
  uVar10 = block[3] ^ pAVar17->keysched[3];
  uVar14 = (uint)Sbox[uVar12 >> 0x18] << 0x18 | (uint)Sbox[uVar10 & 0xff] |
           (uint)Sbox[uVar15 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar18 >> 8 & 0xff] << 8;
  uVar13 = (uint)Sbox[uVar15 >> 0x18] << 0x18 | (uint)Sbox[uVar12 & 0xff] |
           (uint)Sbox[uVar18 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar10 >> 8 & 0xff] << 8;
  uVar8 = (uint)Sbox[uVar18 >> 0x18] << 0x18 | (uint)Sbox[uVar15 & 0xff] |
          (uint)Sbox[uVar10 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar12 >> 8 & 0xff] << 8;
  uVar10 = (uint)Sbox[uVar15 >> 8 & 0xff] << 8 |
           (uint)Sbox[uVar10 >> 0x18] << 0x18 | (uint)Sbox[uVar18 & 0xff] |
           (uint)Sbox[uVar12 >> 0x10 & 0xff] << 0x10;
  *block = uVar14;
  block[1] = uVar13;
  block[2] = uVar8;
  block[3] = uVar10;
  *block = uVar14 ^ pAVar17->keysched[4];
  block[1] = uVar13 ^ pAVar17->keysched[5];
  block[2] = uVar8 ^ pAVar17->keysched[6];
  block[3] = uVar10 ^ pAVar17->keysched[7];
  return;
}



void FUN_0012cf3f(uint *param_1,uint *param_2)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint *puVar16;
  uint *puVar17;
  uint uVar18;
  int iVar19;
  
  puVar17 = param_1;
  if (1 < (int)param_1[0xfd]) {
    iVar19 = 0;
    puVar16 = param_1;
    do {
      uVar6 = *param_2 ^ *puVar16;
      *param_2 = uVar6;
      uVar9 = param_2[1] ^ puVar16[1];
      param_2[1] = uVar9;
      uVar7 = param_2[2] ^ puVar16[2];
      param_2[2] = uVar7;
      puVar17 = puVar16 + 4;
      uVar11 = param_2[3] ^ puVar16[3];
      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);
      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);
      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);
      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);
      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);
      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);
      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);
      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);
      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);
      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);
      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);
      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);
      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^
                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^
                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^
                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);
      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;
      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;
      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;
      iVar19 = iVar19 + 1;
      puVar16 = puVar17;
    } while (iVar19 < (int)(param_1[0xfd] - 1));
  }
  uVar12 = *param_2 ^ *puVar17;
  *param_2 = uVar12;
  uVar15 = param_2[1] ^ puVar17[1];
  param_2[1] = uVar15;
  uVar18 = param_2[2] ^ puVar17[2];
  param_2[2] = uVar18;
  uVar10 = param_2[3] ^ puVar17[3];
  uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |
           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |
           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |
           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8;
  uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |
           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |
           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |
           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8;
  uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |
          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |
          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |
          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8;
  uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |
           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |
           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |
           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10;
  *param_2 = uVar14;
  param_2[1] = uVar13;
  param_2[2] = uVar8;
  param_2[3] = uVar10;
  *param_2 = uVar14 ^ puVar17[4];
  param_2[1] = uVar13 ^ puVar17[5];
  param_2[2] = uVar8 ^ puVar17[6];
  param_2[3] = uVar10 ^ puVar17[7];
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
MOV qword ptr [RSP + -0x8],RDI
MOV R10,RDI
CMP dword ptr [RDI + 0x3f4],0x1
JLE 0x0012d080
MOV R15D,0x0
LEA R13,[0x1660c0]
LEA R12,[0x1654c0]
LEA RBP,[0x165cc0]
LEA R11,[0x1658c0]
MOV EAX,dword ptr [RSI]
XOR EAX,dword ptr [R10]
MOV dword ptr [RSI],EAX
MOV EDX,dword ptr [RSI + 0x4]
XOR EDX,dword ptr [R10 + 0x4]
MOV dword ptr [RSI + 0x4],EDX
MOV ECX,dword ptr [RSI + 0x8]
XOR ECX,dword ptr [R10 + 0x8]
MOV dword ptr [RSI + 0x8],ECX
ADD R10,0x10
MOV EBX,dword ptr [RSI + 0xc]
XOR EBX,dword ptr [R10 + -0x4]
MOV EDI,EDX
SHR EDI,0x18
MOV EDI,EDI
MOVZX R8D,AL
MOV R9D,dword ptr [R13 + RDI*0x4]
XOR R9D,dword ptr [R12 + R8*0x4]
MOV EDI,ECX
SHR EDI,0x10
MOVZX EDI,DIL
XOR R9D,dword ptr [RBP + RDI*0x4]
MOVZX EDI,BH
XOR R9D,dword ptr [R11 + RDI*0x4]
MOV R8D,ECX
SHR R8D,0x18
MOV R8D,R8D
MOVZX EDI,DL
MOV R8D,dword ptr [R13 + R8*0x4]
XOR R8D,dword ptr [R12 + RDI*0x4]
MOVZX EDI,AH
XOR R8D,dword ptr [R11 + RDI*0x4]
MOV EDI,EBX
SHR EDI,0x10
MOVZX EDI,DIL
XOR R8D,dword ptr [RBP + RDI*0x4]
MOV EDI,EAX
SHR EDI,0x10
MOVZX EDI,DIL
MOV qword ptr [RSP + -0x10],RDI
MOVZX EDI,DH
MOV R14,RDI
MOV RDI,qword ptr [RSP + -0x10]
MOV EDI,dword ptr [RBP + RDI*0x4]
XOR EDI,dword ptr [R11 + R14*0x4]
MOVZX R14D,CL
XOR EDI,dword ptr [R12 + R14*0x4]
MOV R14D,EBX
SHR R14D,0x18
MOV R14D,R14D
XOR EDI,dword ptr [R13 + R14*0x4]
SHR EDX,0x10
MOVZX EDX,DL
MOVZX ECX,CH
MOV EDX,dword ptr [RBP + RDX*0x4]
XOR EDX,dword ptr [R11 + RCX*0x4]
SHR EAX,0x18
MOV EAX,EAX
XOR EDX,dword ptr [R13 + RAX*0x4]
MOVZX EBX,BL
XOR EDX,dword ptr [R12 + RBX*0x4]
MOV dword ptr [RSI],EDX
MOV dword ptr [RSI + 0x4],R9D
MOV dword ptr [RSI + 0x8],R8D
MOV dword ptr [RSI + 0xc],EDI
ADD R15D,0x1
MOV RAX,qword ptr [RSP + -0x8]
MOV EAX,dword ptr [RAX + 0x3f4]
MOV dword ptr [RSP + -0x10],EAX
SUB EAX,0x1
CMP EAX,R15D
JG 0x0012cf80
MOV EBX,dword ptr [RSI]
XOR EBX,dword ptr [R10]
MOV dword ptr [RSI],EBX
MOV R9D,dword ptr [RSI + 0x4]
XOR R9D,dword ptr [R10 + 0x4]
MOV dword ptr [RSI + 0x4],R9D
MOV R11D,dword ptr [RSI + 0x8]
XOR R11D,dword ptr [R10 + 0x8]
MOV dword ptr [RSI + 0x8],R11D
MOV EDX,dword ptr [RSI + 0xc]
XOR EDX,dword ptr [R10 + 0xc]
LEA RAX,[0x1665c0]
MOV ECX,EBX
SHR ECX,0x18
MOV ECX,ECX
MOVZX R8D,byte ptr [RAX + RCX*0x1]
SHL R8D,0x18
MOVZX ECX,DL
MOVZX ECX,byte ptr [RAX + RCX*0x1]
OR R8D,ECX
MOV ECX,R9D
SHR ECX,0x10
MOVZX ECX,CL
MOVZX ECX,byte ptr [RAX + RCX*0x1]
SHL ECX,0x10
OR R8D,ECX
MOV ECX,R11D
MOVZX ECX,CH
MOVZX ECX,byte ptr [RAX + RCX*0x1]
SHL ECX,0x8
OR R8D,ECX
MOV ECX,R9D
SHR ECX,0x18
MOV ECX,ECX
MOVZX EDI,byte ptr [RAX + RCX*0x1]
SHL EDI,0x18
MOVZX ECX,BL
MOVZX ECX,byte ptr [RAX + RCX*0x1]
OR EDI,ECX
MOV ECX,R11D
SHR ECX,0x10
MOVZX ECX,CL
MOVZX ECX,byte ptr [RAX + RCX*0x1]
SHL ECX,0x10
OR EDI,ECX
MOVZX ECX,DH
MOVZX ECX,byte ptr [RAX + RCX*0x1]
SHL ECX,0x8
OR EDI,ECX
MOV ECX,R11D
SHR ECX,0x18
MOV ECX,ECX
MOVZX ECX,byte ptr [RAX + RCX*0x1]
SHL ECX,0x18
MOVZX EBP,R9B
MOVZX EBP,byte ptr [RAX + RBP*0x1]
OR ECX,EBP
MOV EBP,EDX
SHR EBP,0x10
MOVZX EBP,BPL
MOVZX EBP,byte ptr [RAX + RBP*0x1]
SHL EBP,0x10
OR ECX,EBP
MOVZX EBP,BH
MOVZX EBP,byte ptr [RAX + RBP*0x1]
SHL EBP,0x8
OR ECX,EBP
SHR EDX,0x18
MOV EDX,EDX
MOVZX EDX,byte ptr [RAX + RDX*0x1]
SHL EDX,0x18
MOVZX R11D,R11B
MOVZX R11D,byte ptr [RAX + R11*0x1]
OR EDX,R11D
SHR EBX,0x10
MOVZX EBX,BL
MOVZX R11D,byte ptr [RAX + RBX*0x1]
SHL R11D,0x10
OR EDX,R11D
MOV EBX,R9D
MOVZX EBX,BH
MOVZX EAX,byte ptr [RAX + RBX*0x1]
SHL EAX,0x8
OR EAX,EDX
MOV dword ptr [RSI],R8D
MOV dword ptr [RSI + 0x4],EDI
MOV dword ptr [RSI + 0x8],ECX
MOV dword ptr [RSI + 0xc],EAX
XOR R8D,dword ptr [R10 + 0x10]
MOV dword ptr [RSI],R8D
XOR EDI,dword ptr [R10 + 0x14]
MOV dword ptr [RSI + 0x4],EDI
XOR ECX,dword ptr [R10 + 0x18]
MOV dword ptr [RSI + 0x8],ECX
XOR EAX,dword ptr [R10 + 0x1c]
MOV dword ptr [RSI + 0xc],EAX
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
(translation_unit "void FUN_0012cf3f(uint *param_1,uint *param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  int iVar19;\n  \n  puVar17 = param_1;\n  if (1 < (int)param_1[0xfd]) {\n    iVar19 = 0;\n    puVar16 = param_1;\n    do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));\n  }\n  uVar12 = *param_2 ^ *puVar17;\n  *param_2 = uVar12;\n  uVar15 = param_2[1] ^ puVar17[1];\n  param_2[1] = uVar15;\n  uVar18 = param_2[2] ^ puVar17[2];\n  param_2[2] = uVar18;\n  uVar10 = param_2[3] ^ puVar17[3];\n  uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8;\n  uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8;\n  uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8;\n  uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10;\n  *param_2 = uVar14;\n  param_2[1] = uVar13;\n  param_2[2] = uVar8;\n  param_2[3] = uVar10;\n  *param_2 = uVar14 ^ puVar17[4];\n  param_2[1] = uVar13 ^ puVar17[5];\n  param_2[2] = uVar8 ^ puVar17[6];\n  param_2[3] = uVar10 ^ puVar17[7];\n  return;\n}\n\n" (function_definition "void FUN_0012cf3f(uint *param_1,uint *param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  int iVar19;\n  \n  puVar17 = param_1;\n  if (1 < (int)param_1[0xfd]) {\n    iVar19 = 0;\n    puVar16 = param_1;\n    do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));\n  }\n  uVar12 = *param_2 ^ *puVar17;\n  *param_2 = uVar12;\n  uVar15 = param_2[1] ^ puVar17[1];\n  param_2[1] = uVar15;\n  uVar18 = param_2[2] ^ puVar17[2];\n  param_2[2] = uVar18;\n  uVar10 = param_2[3] ^ puVar17[3];\n  uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8;\n  uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8;\n  uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8;\n  uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10;\n  *param_2 = uVar14;\n  param_2[1] = uVar13;\n  param_2[2] = uVar8;\n  param_2[3] = uVar10;\n  *param_2 = uVar14 ^ puVar17[4];\n  param_2[1] = uVar13 ^ puVar17[5];\n  param_2[2] = uVar8 ^ puVar17[6];\n  param_2[3] = uVar10 ^ puVar17[7];\n  return;\n}" primitive_type (function_declarator "FUN_0012cf3f(uint *param_1,uint *param_2)" identifier (parameter_list "(uint *param_1,uint *param_2)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  int iVar19;\n  \n  puVar17 = param_1;\n  if (1 < (int)param_1[0xfd]) {\n    iVar19 = 0;\n    puVar16 = param_1;\n    do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));\n  }\n  uVar12 = *param_2 ^ *puVar17;\n  *param_2 = uVar12;\n  uVar15 = param_2[1] ^ puVar17[1];\n  param_2[1] = uVar15;\n  uVar18 = param_2[2] ^ puVar17[2];\n  param_2[2] = uVar18;\n  uVar10 = param_2[3] ^ puVar17[3];\n  uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8;\n  uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8;\n  uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8;\n  uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10;\n  *param_2 = uVar14;\n  param_2[1] = uVar13;\n  param_2[2] = uVar8;\n  param_2[3] = uVar10;\n  *param_2 = uVar14 ^ puVar17[4];\n  param_2[1] = uVar13 ^ puVar17[5];\n  param_2[2] = uVar8 ^ puVar17[6];\n  param_2[3] = uVar10 ^ puVar17[7];\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (expression_statement "puVar17 = param_1;" (assignment_expression "puVar17 = param_1" identifier = identifier) ;) (if_statement "if (1 < (int)param_1[0xfd]) {\n    iVar19 = 0;\n    puVar16 = param_1;\n    do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));\n  }" if (parenthesized_expression "(1 < (int)param_1[0xfd])" ( (binary_expression "1 < (int)param_1[0xfd]" number_literal < (cast_expression "(int)param_1[0xfd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0xfd]" identifier [ number_literal ]))) )) (compound_statement "{\n    iVar19 = 0;\n    puVar16 = param_1;\n    do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));\n  }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "puVar16 = param_1;" (assignment_expression "puVar16 = param_1" identifier = identifier) ;) (do_statement "do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));" do (compound_statement "{\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    }" { (expression_statement "uVar6 = *param_2 ^ *puVar16;" (assignment_expression "uVar6 = *param_2 ^ *puVar16" identifier = (binary_expression "*param_2 ^ *puVar16" (pointer_expression "*param_2" * identifier) ^ (pointer_expression "*puVar16" * identifier))) ;) (expression_statement "*param_2 = uVar6;" (assignment_expression "*param_2 = uVar6" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "uVar9 = param_2[1] ^ puVar16[1];" (assignment_expression "uVar9 = param_2[1] ^ puVar16[1]" identifier = (binary_expression "param_2[1] ^ puVar16[1]" (subscript_expression "param_2[1]" identifier [ number_literal ]) ^ (subscript_expression "puVar16[1]" identifier [ number_literal ]))) ;) (expression_statement "param_2[1] = uVar9;" (assignment_expression "param_2[1] = uVar9" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = param_2[2] ^ puVar16[2];" (assignment_expression "uVar7 = param_2[2] ^ puVar16[2]" identifier = (binary_expression "param_2[2] ^ puVar16[2]" (subscript_expression "param_2[2]" identifier [ number_literal ]) ^ (subscript_expression "puVar16[2]" identifier [ number_literal ]))) ;) (expression_statement "param_2[2] = uVar7;" (assignment_expression "param_2[2] = uVar7" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17 = puVar16 + 4;" (assignment_expression "puVar17 = puVar16 + 4" identifier = (binary_expression "puVar16 + 4" identifier + number_literal)) ;) (expression_statement "uVar11 = param_2[3] ^ puVar16[3];" (assignment_expression "uVar11 = param_2[3] ^ puVar16[3]" identifier = (binary_expression "param_2[3] ^ puVar16[3]" (subscript_expression "param_2[3]" identifier [ number_literal ]) ^ (subscript_expression "puVar16[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);" (assignment_expression "uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4)" ( (binary_expression "&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4" (pointer_expression "&DAT_001660c0" & identifier) + (binary_expression "(ulong)(uVar9 >> 0x18) * 4" (call_expression "(ulong)(uVar9 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar9 >> 0x18)" ( (binary_expression "uVar9 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);" (assignment_expression "uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4)" ( (binary_expression "&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4" (pointer_expression "&DAT_001654c0" & identifier) + (binary_expression "(ulong)(uVar6 & 0xff) * 4" (call_expression "(ulong)(uVar6 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 & 0xff)" ( (binary_expression "uVar6 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);" (assignment_expression "uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00165cc0" & identifier) + (binary_expression "(ulong)(uVar7 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar7 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 >> 0x10 & 0xff)" ( (binary_expression "uVar7 >> 0x10 & 0xff" (binary_expression "uVar7 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);" (assignment_expression "uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4)" ( (binary_expression "&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4" (pointer_expression "&DAT_001658c0" & identifier) + (binary_expression "(ulong)(uVar11 >> 8 & 0xff) * 4" (call_expression "(ulong)(uVar11 >> 8 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar11 >> 8 & 0xff)" ( (binary_expression "uVar11 >> 8 & 0xff" (binary_expression "uVar11 >> 8" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);" (assignment_expression "uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4)" ( (binary_expression "&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4" (pointer_expression "&DAT_001660c0" & identifier) + (binary_expression "(ulong)(uVar7 >> 0x18) * 4" (call_expression "(ulong)(uVar7 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 >> 0x18)" ( (binary_expression "uVar7 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);" (assignment_expression "uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4)" ( (binary_expression "&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4" (pointer_expression "&DAT_001654c0" & identifier) + (binary_expression "(ulong)(uVar9 & 0xff) * 4" (call_expression "(ulong)(uVar9 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar9 & 0xff)" ( (binary_expression "uVar9 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);" (assignment_expression "uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4)" ( (binary_expression "&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4" (pointer_expression "&DAT_001658c0" & identifier) + (binary_expression "(ulong)(uVar6 >> 8 & 0xff) * 4" (call_expression "(ulong)(uVar6 >> 8 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 >> 8 & 0xff)" ( (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);" (assignment_expression "uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00165cc0" & identifier) + (binary_expression "(ulong)(uVar11 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar11 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar11 >> 0x10 & 0xff)" ( (binary_expression "uVar11 >> 0x10 & 0xff" (binary_expression "uVar11 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);" (assignment_expression "uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00165cc0" & identifier) + (binary_expression "(ulong)(uVar6 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar6 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 >> 0x10 & 0xff)" ( (binary_expression "uVar6 >> 0x10 & 0xff" (binary_expression "uVar6 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);" (assignment_expression "uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4)" ( (binary_expression "&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4" (pointer_expression "&DAT_001658c0" & identifier) + (binary_expression "(ulong)(uVar9 >> 8 & 0xff) * 4" (call_expression "(ulong)(uVar9 >> 8 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar9 >> 8 & 0xff)" ( (binary_expression "uVar9 >> 8 & 0xff" (binary_expression "uVar9 >> 8" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);" (assignment_expression "uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4)" ( (binary_expression "&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4" (pointer_expression "&DAT_001654c0" & identifier) + (binary_expression "(ulong)(uVar7 & 0xff) * 4" (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);" (assignment_expression "uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4)" ( (binary_expression "&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4" (pointer_expression "&DAT_001660c0" & identifier) + (binary_expression "(ulong)(uVar11 >> 0x18) * 4" (call_expression "(ulong)(uVar11 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar11 >> 0x18)" ( (binary_expression "uVar11 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) ;) (expression_statement "*param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);" (assignment_expression "*param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4)" (pointer_expression "*param_2" * identifier) = (binary_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4)" (binary_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4)" (binary_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4)" (pointer_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00165cc0" & identifier) + (binary_expression "(ulong)(uVar9 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar9 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar9 >> 0x10 & 0xff)" ( (binary_expression "uVar9 >> 0x10 & 0xff" (binary_expression "uVar9 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4)" ( (binary_expression "&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4" (pointer_expression "&DAT_001658c0" & identifier) + (binary_expression "(ulong)(uVar7 >> 8 & 0xff) * 4" (call_expression "(ulong)(uVar7 >> 8 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 >> 8 & 0xff)" ( (binary_expression "uVar7 >> 8 & 0xff" (binary_expression "uVar7 >> 8" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4)" ( (binary_expression "&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4" (pointer_expression "&DAT_001660c0" & identifier) + (binary_expression "(ulong)(uVar6 >> 0x18) * 4" (call_expression "(ulong)(uVar6 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4)" ( (binary_expression "&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4" (pointer_expression "&DAT_001654c0" & identifier) + (binary_expression "(ulong)(uVar11 & 0xff) * 4" (call_expression "(ulong)(uVar11 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) ))) * number_literal)) )))))) ;) (expression_statement "param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;" (assignment_expression "param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar10 ^ uVar8 ^ uVar12 ^ uVar13" (binary_expression "uVar10 ^ uVar8 ^ uVar12" (binary_expression "uVar10 ^ uVar8" identifier ^ identifier) ^ identifier) ^ identifier)) ;) (expression_statement "param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;" (assignment_expression "param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar14 ^ uVar15 ^ uVar18 ^ uVar1" (binary_expression "uVar14 ^ uVar15 ^ uVar18" (binary_expression "uVar14 ^ uVar15" identifier ^ identifier) ^ identifier) ^ identifier)) ;) (expression_statement "param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;" (assignment_expression "param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "uVar2 ^ uVar3 ^ uVar4 ^ uVar5" (binary_expression "uVar2 ^ uVar3 ^ uVar4" (binary_expression "uVar2 ^ uVar3" identifier ^ identifier) ^ identifier) ^ identifier)) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) }) while (parenthesized_expression "(iVar19 < (int)(param_1[0xfd] - 1))" ( (binary_expression "iVar19 < (int)(param_1[0xfd] - 1)" identifier < (cast_expression "(int)(param_1[0xfd] - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1[0xfd] - 1)" ( (binary_expression "param_1[0xfd] - 1" (subscript_expression "param_1[0xfd]" identifier [ number_literal ]) - number_literal) )))) )) ;) })) (expression_statement "uVar12 = *param_2 ^ *puVar17;" (assignment_expression "uVar12 = *param_2 ^ *puVar17" identifier = (binary_expression "*param_2 ^ *puVar17" (pointer_expression "*param_2" * identifier) ^ (pointer_expression "*puVar17" * identifier))) ;) (expression_statement "*param_2 = uVar12;" (assignment_expression "*param_2 = uVar12" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "uVar15 = param_2[1] ^ puVar17[1];" (assignment_expression "uVar15 = param_2[1] ^ puVar17[1]" identifier = (binary_expression "param_2[1] ^ puVar17[1]" (subscript_expression "param_2[1]" identifier [ number_literal ]) ^ (subscript_expression "puVar17[1]" identifier [ number_literal ]))) ;) (expression_statement "param_2[1] = uVar15;" (assignment_expression "param_2[1] = uVar15" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar18 = param_2[2] ^ puVar17[2];" (assignment_expression "uVar18 = param_2[2] ^ puVar17[2]" identifier = (binary_expression "param_2[2] ^ puVar17[2]" (subscript_expression "param_2[2]" identifier [ number_literal ]) ^ (subscript_expression "puVar17[2]" identifier [ number_literal ]))) ;) (expression_statement "param_2[2] = uVar18;" (assignment_expression "param_2[2] = uVar18" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar10 = param_2[3] ^ puVar17[3];" (assignment_expression "uVar10 = param_2[3] ^ puVar17[3]" identifier = (binary_expression "param_2[3] ^ puVar17[3]" (subscript_expression "param_2[3]" identifier [ number_literal ]) ^ (subscript_expression "puVar17[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8;" (assignment_expression "uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8" identifier = (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff]" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar12 >> 0x18" identifier >> number_literal) ]) << number_literal) | (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar10 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar10 & 0xff" identifier & number_literal) ])) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar15 >> 0x10 & 0xff" (binary_expression "uVar15 >> 0x10" identifier >> number_literal) & number_literal) ]) << number_literal)) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar18 >> 8 & 0xff" (binary_expression "uVar18 >> 8" identifier >> number_literal) & number_literal) ]) << number_literal))) ;) (expression_statement "uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8;" (assignment_expression "uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8" identifier = (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff]" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar15 >> 0x18" identifier >> number_literal) ]) << number_literal) | (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar12 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar12 & 0xff" identifier & number_literal) ])) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar18 >> 0x10 & 0xff" (binary_expression "uVar18 >> 0x10" identifier >> number_literal) & number_literal) ]) << number_literal)) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" identifier >> number_literal) & number_literal) ]) << number_literal))) ;) (expression_statement "uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8;" (assignment_expression "uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8" identifier = (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff]" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar18 >> 0x18" identifier >> number_literal) ]) << number_literal) | (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar15 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar15 & 0xff" identifier & number_literal) ])) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar10 >> 0x10 & 0xff" (binary_expression "uVar10 >> 0x10" identifier >> number_literal) & number_literal) ]) << number_literal)) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar12 >> 8 & 0xff" (binary_expression "uVar12 >> 8" identifier >> number_literal) & number_literal) ]) << number_literal))) ;) (expression_statement "uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10;" (assignment_expression "uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10" identifier = (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff]" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" identifier >> number_literal) & number_literal) ]) << number_literal) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar10 >> 0x18" identifier >> number_literal) ]) << number_literal)) | (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar18 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar18 & 0xff" identifier & number_literal) ])) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar12 >> 0x10 & 0xff" (binary_expression "uVar12 >> 0x10" identifier >> number_literal) & number_literal) ]) << number_literal))) ;) (expression_statement "*param_2 = uVar14;" (assignment_expression "*param_2 = uVar14" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "param_2[1] = uVar13;" (assignment_expression "param_2[1] = uVar13" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[2] = uVar8;" (assignment_expression "param_2[2] = uVar8" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[3] = uVar10;" (assignment_expression "param_2[3] = uVar10" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_2 = uVar14 ^ puVar17[4];" (assignment_expression "*param_2 = uVar14 ^ puVar17[4]" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar14 ^ puVar17[4]" identifier ^ (subscript_expression "puVar17[4]" identifier [ number_literal ]))) ;) (expression_statement "param_2[1] = uVar13 ^ puVar17[5];" (assignment_expression "param_2[1] = uVar13 ^ puVar17[5]" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar13 ^ puVar17[5]" identifier ^ (subscript_expression "puVar17[5]" identifier [ number_literal ]))) ;) (expression_statement "param_2[2] = uVar8 ^ puVar17[6];" (assignment_expression "param_2[2] = uVar8 ^ puVar17[6]" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar8 ^ puVar17[6]" identifier ^ (subscript_expression "puVar17[6]" identifier [ number_literal ]))) ;) (expression_statement "param_2[3] = uVar10 ^ puVar17[7];" (assignment_expression "param_2[3] = uVar10 ^ puVar17[7]" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "uVar10 ^ puVar17[7]" identifier ^ (subscript_expression "puVar17[7]" identifier [ number_literal ]))) ;) (return_statement "return;" return ;) })))
(translation_unit "void aes_encrypt_nb_4(AESContext *ctx,word32 *block)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  AESContext *pAVar16;\n  AESContext *pAVar17;\n  uint uVar18;\n  int iVar19;\n  \n  pAVar17 = ctx;\n  if (1 < ctx->Nr) {\n    iVar19 = 0;\n    pAVar16 = ctx;\n    do {\n      uVar6 = *block ^ pAVar16->keysched[0];\n      *block = uVar6;\n      uVar9 = block[1] ^ pAVar16->keysched[1];\n      block[1] = uVar9;\n      uVar7 = block[2] ^ pAVar16->keysched[2];\n      block[2] = uVar7;\n      pAVar17 = (AESContext *)(pAVar16->keysched + 4);\n      uVar11 = block[3] ^ pAVar16->keysched[3];\n      uVar10 = E0[uVar9 >> 0x18];\n      uVar8 = E3[uVar6 & 0xff];\n      uVar12 = E1[uVar7 >> 0x10 & 0xff];\n      uVar13 = E2[uVar11 >> 8 & 0xff];\n      uVar14 = E0[uVar7 >> 0x18];\n      uVar15 = E3[uVar9 & 0xff];\n      uVar18 = E2[uVar6 >> 8 & 0xff];\n      uVar1 = E1[uVar11 >> 0x10 & 0xff];\n      uVar2 = E1[uVar6 >> 0x10 & 0xff];\n      uVar3 = E2[uVar9 >> 8 & 0xff];\n      uVar4 = E3[uVar7 & 0xff];\n      uVar5 = E0[uVar11 >> 0x18];\n      *block = E1[uVar9 >> 0x10 & 0xff] ^ E2[uVar7 >> 8 & 0xff] ^ E0[uVar6 >> 0x18] ^\n               E3[uVar11 & 0xff];\n      block[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      block[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      block[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      pAVar16 = pAVar17;\n    } while (iVar19 < ctx->Nr + -1);\n  }\n  uVar12 = *block ^ pAVar17->keysched[0];\n  *block = uVar12;\n  uVar15 = block[1] ^ pAVar17->keysched[1];\n  block[1] = uVar15;\n  uVar18 = block[2] ^ pAVar17->keysched[2];\n  block[2] = uVar18;\n  uVar10 = block[3] ^ pAVar17->keysched[3];\n  uVar14 = (uint)Sbox[uVar12 >> 0x18] << 0x18 | (uint)Sbox[uVar10 & 0xff] |\n           (uint)Sbox[uVar15 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar18 >> 8 & 0xff] << 8;\n  uVar13 = (uint)Sbox[uVar15 >> 0x18] << 0x18 | (uint)Sbox[uVar12 & 0xff] |\n           (uint)Sbox[uVar18 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar10 >> 8 & 0xff] << 8;\n  uVar8 = (uint)Sbox[uVar18 >> 0x18] << 0x18 | (uint)Sbox[uVar15 & 0xff] |\n          (uint)Sbox[uVar10 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar12 >> 8 & 0xff] << 8;\n  uVar10 = (uint)Sbox[uVar15 >> 8 & 0xff] << 8 |\n           (uint)Sbox[uVar10 >> 0x18] << 0x18 | (uint)Sbox[uVar18 & 0xff] |\n           (uint)Sbox[uVar12 >> 0x10 & 0xff] << 0x10;\n  *block = uVar14;\n  block[1] = uVar13;\n  block[2] = uVar8;\n  block[3] = uVar10;\n  *block = uVar14 ^ pAVar17->keysched[4];\n  block[1] = uVar13 ^ pAVar17->keysched[5];\n  block[2] = uVar8 ^ pAVar17->keysched[6];\n  block[3] = uVar10 ^ pAVar17->keysched[7];\n  return;\n}\n\n" (function_definition "void aes_encrypt_nb_4(AESContext *ctx,word32 *block)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  AESContext *pAVar16;\n  AESContext *pAVar17;\n  uint uVar18;\n  int iVar19;\n  \n  pAVar17 = ctx;\n  if (1 < ctx->Nr) {\n    iVar19 = 0;\n    pAVar16 = ctx;\n    do {\n      uVar6 = *block ^ pAVar16->keysched[0];\n      *block = uVar6;\n      uVar9 = block[1] ^ pAVar16->keysched[1];\n      block[1] = uVar9;\n      uVar7 = block[2] ^ pAVar16->keysched[2];\n      block[2] = uVar7;\n      pAVar17 = (AESContext *)(pAVar16->keysched + 4);\n      uVar11 = block[3] ^ pAVar16->keysched[3];\n      uVar10 = E0[uVar9 >> 0x18];\n      uVar8 = E3[uVar6 & 0xff];\n      uVar12 = E1[uVar7 >> 0x10 & 0xff];\n      uVar13 = E2[uVar11 >> 8 & 0xff];\n      uVar14 = E0[uVar7 >> 0x18];\n      uVar15 = E3[uVar9 & 0xff];\n      uVar18 = E2[uVar6 >> 8 & 0xff];\n      uVar1 = E1[uVar11 >> 0x10 & 0xff];\n      uVar2 = E1[uVar6 >> 0x10 & 0xff];\n      uVar3 = E2[uVar9 >> 8 & 0xff];\n      uVar4 = E3[uVar7 & 0xff];\n      uVar5 = E0[uVar11 >> 0x18];\n      *block = E1[uVar9 >> 0x10 & 0xff] ^ E2[uVar7 >> 8 & 0xff] ^ E0[uVar6 >> 0x18] ^\n               E3[uVar11 & 0xff];\n      block[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      block[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      block[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      pAVar16 = pAVar17;\n    } while (iVar19 < ctx->Nr + -1);\n  }\n  uVar12 = *block ^ pAVar17->keysched[0];\n  *block = uVar12;\n  uVar15 = block[1] ^ pAVar17->keysched[1];\n  block[1] = uVar15;\n  uVar18 = block[2] ^ pAVar17->keysched[2];\n  block[2] = uVar18;\n  uVar10 = block[3] ^ pAVar17->keysched[3];\n  uVar14 = (uint)Sbox[uVar12 >> 0x18] << 0x18 | (uint)Sbox[uVar10 & 0xff] |\n           (uint)Sbox[uVar15 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar18 >> 8 & 0xff] << 8;\n  uVar13 = (uint)Sbox[uVar15 >> 0x18] << 0x18 | (uint)Sbox[uVar12 & 0xff] |\n           (uint)Sbox[uVar18 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar10 >> 8 & 0xff] << 8;\n  uVar8 = (uint)Sbox[uVar18 >> 0x18] << 0x18 | (uint)Sbox[uVar15 & 0xff] |\n          (uint)Sbox[uVar10 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar12 >> 8 & 0xff] << 8;\n  uVar10 = (uint)Sbox[uVar15 >> 8 & 0xff] << 8 |\n           (uint)Sbox[uVar10 >> 0x18] << 0x18 | (uint)Sbox[uVar18 & 0xff] |\n           (uint)Sbox[uVar12 >> 0x10 & 0xff] << 0x10;\n  *block = uVar14;\n  block[1] = uVar13;\n  block[2] = uVar8;\n  block[3] = uVar10;\n  *block = uVar14 ^ pAVar17->keysched[4];\n  block[1] = uVar13 ^ pAVar17->keysched[5];\n  block[2] = uVar8 ^ pAVar17->keysched[6];\n  block[3] = uVar10 ^ pAVar17->keysched[7];\n  return;\n}" primitive_type (function_declarator "aes_encrypt_nb_4(AESContext *ctx,word32 *block)" identifier (parameter_list "(AESContext *ctx,word32 *block)" ( (parameter_declaration "AESContext *ctx" type_identifier (pointer_declarator "*ctx" * identifier)) , (parameter_declaration "word32 *block" type_identifier (pointer_declarator "*block" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  AESContext *pAVar16;\n  AESContext *pAVar17;\n  uint uVar18;\n  int iVar19;\n  \n  pAVar17 = ctx;\n  if (1 < ctx->Nr) {\n    iVar19 = 0;\n    pAVar16 = ctx;\n    do {\n      uVar6 = *block ^ pAVar16->keysched[0];\n      *block = uVar6;\n      uVar9 = block[1] ^ pAVar16->keysched[1];\n      block[1] = uVar9;\n      uVar7 = block[2] ^ pAVar16->keysched[2];\n      block[2] = uVar7;\n      pAVar17 = (AESContext *)(pAVar16->keysched + 4);\n      uVar11 = block[3] ^ pAVar16->keysched[3];\n      uVar10 = E0[uVar9 >> 0x18];\n      uVar8 = E3[uVar6 & 0xff];\n      uVar12 = E1[uVar7 >> 0x10 & 0xff];\n      uVar13 = E2[uVar11 >> 8 & 0xff];\n      uVar14 = E0[uVar7 >> 0x18];\n      uVar15 = E3[uVar9 & 0xff];\n      uVar18 = E2[uVar6 >> 8 & 0xff];\n      uVar1 = E1[uVar11 >> 0x10 & 0xff];\n      uVar2 = E1[uVar6 >> 0x10 & 0xff];\n      uVar3 = E2[uVar9 >> 8 & 0xff];\n      uVar4 = E3[uVar7 & 0xff];\n      uVar5 = E0[uVar11 >> 0x18];\n      *block = E1[uVar9 >> 0x10 & 0xff] ^ E2[uVar7 >> 8 & 0xff] ^ E0[uVar6 >> 0x18] ^\n               E3[uVar11 & 0xff];\n      block[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      block[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      block[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      pAVar16 = pAVar17;\n    } while (iVar19 < ctx->Nr + -1);\n  }\n  uVar12 = *block ^ pAVar17->keysched[0];\n  *block = uVar12;\n  uVar15 = block[1] ^ pAVar17->keysched[1];\n  block[1] = uVar15;\n  uVar18 = block[2] ^ pAVar17->keysched[2];\n  block[2] = uVar18;\n  uVar10 = block[3] ^ pAVar17->keysched[3];\n  uVar14 = (uint)Sbox[uVar12 >> 0x18] << 0x18 | (uint)Sbox[uVar10 & 0xff] |\n           (uint)Sbox[uVar15 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar18 >> 8 & 0xff] << 8;\n  uVar13 = (uint)Sbox[uVar15 >> 0x18] << 0x18 | (uint)Sbox[uVar12 & 0xff] |\n           (uint)Sbox[uVar18 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar10 >> 8 & 0xff] << 8;\n  uVar8 = (uint)Sbox[uVar18 >> 0x18] << 0x18 | (uint)Sbox[uVar15 & 0xff] |\n          (uint)Sbox[uVar10 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar12 >> 8 & 0xff] << 8;\n  uVar10 = (uint)Sbox[uVar15 >> 8 & 0xff] << 8 |\n           (uint)Sbox[uVar10 >> 0x18] << 0x18 | (uint)Sbox[uVar18 & 0xff] |\n           (uint)Sbox[uVar12 >> 0x10 & 0xff] << 0x10;\n  *block = uVar14;\n  block[1] = uVar13;\n  block[2] = uVar8;\n  block[3] = uVar10;\n  *block = uVar14 ^ pAVar17->keysched[4];\n  block[1] = uVar13 ^ pAVar17->keysched[5];\n  block[2] = uVar8 ^ pAVar17->keysched[6];\n  block[3] = uVar10 ^ pAVar17->keysched[7];\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "AESContext *pAVar16;" type_identifier (pointer_declarator "*pAVar16" * identifier) ;) (declaration "AESContext *pAVar17;" type_identifier (pointer_declarator "*pAVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (expression_statement "pAVar17 = ctx;" (assignment_expression "pAVar17 = ctx" identifier = identifier) ;) (if_statement "if (1 < ctx->Nr) {\n    iVar19 = 0;\n    pAVar16 = ctx;\n    do {\n      uVar6 = *block ^ pAVar16->keysched[0];\n      *block = uVar6;\n      uVar9 = block[1] ^ pAVar16->keysched[1];\n      block[1] = uVar9;\n      uVar7 = block[2] ^ pAVar16->keysched[2];\n      block[2] = uVar7;\n      pAVar17 = (AESContext *)(pAVar16->keysched + 4);\n      uVar11 = block[3] ^ pAVar16->keysched[3];\n      uVar10 = E0[uVar9 >> 0x18];\n      uVar8 = E3[uVar6 & 0xff];\n      uVar12 = E1[uVar7 >> 0x10 & 0xff];\n      uVar13 = E2[uVar11 >> 8 & 0xff];\n      uVar14 = E0[uVar7 >> 0x18];\n      uVar15 = E3[uVar9 & 0xff];\n      uVar18 = E2[uVar6 >> 8 & 0xff];\n      uVar1 = E1[uVar11 >> 0x10 & 0xff];\n      uVar2 = E1[uVar6 >> 0x10 & 0xff];\n      uVar3 = E2[uVar9 >> 8 & 0xff];\n      uVar4 = E3[uVar7 & 0xff];\n      uVar5 = E0[uVar11 >> 0x18];\n      *block = E1[uVar9 >> 0x10 & 0xff] ^ E2[uVar7 >> 8 & 0xff] ^ E0[uVar6 >> 0x18] ^\n               E3[uVar11 & 0xff];\n      block[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      block[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      block[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      pAVar16 = pAVar17;\n    } while (iVar19 < ctx->Nr + -1);\n  }" if (parenthesized_expression "(1 < ctx->Nr)" ( (binary_expression "1 < ctx->Nr" number_literal < (field_expression "ctx->Nr" identifier -> field_identifier)) )) (compound_statement "{\n    iVar19 = 0;\n    pAVar16 = ctx;\n    do {\n      uVar6 = *block ^ pAVar16->keysched[0];\n      *block = uVar6;\n      uVar9 = block[1] ^ pAVar16->keysched[1];\n      block[1] = uVar9;\n      uVar7 = block[2] ^ pAVar16->keysched[2];\n      block[2] = uVar7;\n      pAVar17 = (AESContext *)(pAVar16->keysched + 4);\n      uVar11 = block[3] ^ pAVar16->keysched[3];\n      uVar10 = E0[uVar9 >> 0x18];\n      uVar8 = E3[uVar6 & 0xff];\n      uVar12 = E1[uVar7 >> 0x10 & 0xff];\n      uVar13 = E2[uVar11 >> 8 & 0xff];\n      uVar14 = E0[uVar7 >> 0x18];\n      uVar15 = E3[uVar9 & 0xff];\n      uVar18 = E2[uVar6 >> 8 & 0xff];\n      uVar1 = E1[uVar11 >> 0x10 & 0xff];\n      uVar2 = E1[uVar6 >> 0x10 & 0xff];\n      uVar3 = E2[uVar9 >> 8 & 0xff];\n      uVar4 = E3[uVar7 & 0xff];\n      uVar5 = E0[uVar11 >> 0x18];\n      *block = E1[uVar9 >> 0x10 & 0xff] ^ E2[uVar7 >> 8 & 0xff] ^ E0[uVar6 >> 0x18] ^\n               E3[uVar11 & 0xff];\n      block[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      block[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      block[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      pAVar16 = pAVar17;\n    } while (iVar19 < ctx->Nr + -1);\n  }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "pAVar16 = ctx;" (assignment_expression "pAVar16 = ctx" identifier = identifier) ;) (do_statement "do {\n      uVar6 = *block ^ pAVar16->keysched[0];\n      *block = uVar6;\n      uVar9 = block[1] ^ pAVar16->keysched[1];\n      block[1] = uVar9;\n      uVar7 = block[2] ^ pAVar16->keysched[2];\n      block[2] = uVar7;\n      pAVar17 = (AESContext *)(pAVar16->keysched + 4);\n      uVar11 = block[3] ^ pAVar16->keysched[3];\n      uVar10 = E0[uVar9 >> 0x18];\n      uVar8 = E3[uVar6 & 0xff];\n      uVar12 = E1[uVar7 >> 0x10 & 0xff];\n      uVar13 = E2[uVar11 >> 8 & 0xff];\n      uVar14 = E0[uVar7 >> 0x18];\n      uVar15 = E3[uVar9 & 0xff];\n      uVar18 = E2[uVar6 >> 8 & 0xff];\n      uVar1 = E1[uVar11 >> 0x10 & 0xff];\n      uVar2 = E1[uVar6 >> 0x10 & 0xff];\n      uVar3 = E2[uVar9 >> 8 & 0xff];\n      uVar4 = E3[uVar7 & 0xff];\n      uVar5 = E0[uVar11 >> 0x18];\n      *block = E1[uVar9 >> 0x10 & 0xff] ^ E2[uVar7 >> 8 & 0xff] ^ E0[uVar6 >> 0x18] ^\n               E3[uVar11 & 0xff];\n      block[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      block[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      block[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      pAVar16 = pAVar17;\n    } while (iVar19 < ctx->Nr + -1);" do (compound_statement "{\n      uVar6 = *block ^ pAVar16->keysched[0];\n      *block = uVar6;\n      uVar9 = block[1] ^ pAVar16->keysched[1];\n      block[1] = uVar9;\n      uVar7 = block[2] ^ pAVar16->keysched[2];\n      block[2] = uVar7;\n      pAVar17 = (AESContext *)(pAVar16->keysched + 4);\n      uVar11 = block[3] ^ pAVar16->keysched[3];\n      uVar10 = E0[uVar9 >> 0x18];\n      uVar8 = E3[uVar6 & 0xff];\n      uVar12 = E1[uVar7 >> 0x10 & 0xff];\n      uVar13 = E2[uVar11 >> 8 & 0xff];\n      uVar14 = E0[uVar7 >> 0x18];\n      uVar15 = E3[uVar9 & 0xff];\n      uVar18 = E2[uVar6 >> 8 & 0xff];\n      uVar1 = E1[uVar11 >> 0x10 & 0xff];\n      uVar2 = E1[uVar6 >> 0x10 & 0xff];\n      uVar3 = E2[uVar9 >> 8 & 0xff];\n      uVar4 = E3[uVar7 & 0xff];\n      uVar5 = E0[uVar11 >> 0x18];\n      *block = E1[uVar9 >> 0x10 & 0xff] ^ E2[uVar7 >> 8 & 0xff] ^ E0[uVar6 >> 0x18] ^\n               E3[uVar11 & 0xff];\n      block[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      block[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      block[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      pAVar16 = pAVar17;\n    }" { (expression_statement "uVar6 = *block ^ pAVar16->keysched[0];" (assignment_expression "uVar6 = *block ^ pAVar16->keysched[0]" identifier = (binary_expression "*block ^ pAVar16->keysched[0]" (pointer_expression "*block" * identifier) ^ (subscript_expression "pAVar16->keysched[0]" (field_expression "pAVar16->keysched" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "*block = uVar6;" (assignment_expression "*block = uVar6" (pointer_expression "*block" * identifier) = identifier) ;) (expression_statement "uVar9 = block[1] ^ pAVar16->keysched[1];" (assignment_expression "uVar9 = block[1] ^ pAVar16->keysched[1]" identifier = (binary_expression "block[1] ^ pAVar16->keysched[1]" (subscript_expression "block[1]" identifier [ number_literal ]) ^ (subscript_expression "pAVar16->keysched[1]" (field_expression "pAVar16->keysched" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "block[1] = uVar9;" (assignment_expression "block[1] = uVar9" (subscript_expression "block[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = block[2] ^ pAVar16->keysched[2];" (assignment_expression "uVar7 = block[2] ^ pAVar16->keysched[2]" identifier = (binary_expression "block[2] ^ pAVar16->keysched[2]" (subscript_expression "block[2]" identifier [ number_literal ]) ^ (subscript_expression "pAVar16->keysched[2]" (field_expression "pAVar16->keysched" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "block[2] = uVar7;" (assignment_expression "block[2] = uVar7" (subscript_expression "block[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pAVar17 = (AESContext *)(pAVar16->keysched + 4);" (assignment_expression "pAVar17 = (AESContext *)(pAVar16->keysched + 4)" identifier = (cast_expression "(AESContext *)(pAVar16->keysched + 4)" ( (type_descriptor "AESContext *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pAVar16->keysched + 4)" ( (binary_expression "pAVar16->keysched + 4" (field_expression "pAVar16->keysched" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "uVar11 = block[3] ^ pAVar16->keysched[3];" (assignment_expression "uVar11 = block[3] ^ pAVar16->keysched[3]" identifier = (binary_expression "block[3] ^ pAVar16->keysched[3]" (subscript_expression "block[3]" identifier [ number_literal ]) ^ (subscript_expression "pAVar16->keysched[3]" (field_expression "pAVar16->keysched" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "uVar10 = E0[uVar9 >> 0x18];" (assignment_expression "uVar10 = E0[uVar9 >> 0x18]" identifier = (subscript_expression "E0[uVar9 >> 0x18]" identifier [ (binary_expression "uVar9 >> 0x18" identifier >> number_literal) ])) ;) (expression_statement "uVar8 = E3[uVar6 & 0xff];" (assignment_expression "uVar8 = E3[uVar6 & 0xff]" identifier = (subscript_expression "E3[uVar6 & 0xff]" identifier [ (binary_expression "uVar6 & 0xff" identifier & number_literal) ])) ;) (expression_statement "uVar12 = E1[uVar7 >> 0x10 & 0xff];" (assignment_expression "uVar12 = E1[uVar7 >> 0x10 & 0xff]" identifier = (subscript_expression "E1[uVar7 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar7 >> 0x10 & 0xff" (binary_expression "uVar7 >> 0x10" identifier >> number_literal) & number_literal) ])) ;) (expression_statement "uVar13 = E2[uVar11 >> 8 & 0xff];" (assignment_expression "uVar13 = E2[uVar11 >> 8 & 0xff]" identifier = (subscript_expression "E2[uVar11 >> 8 & 0xff]" identifier [ (binary_expression "uVar11 >> 8 & 0xff" (binary_expression "uVar11 >> 8" identifier >> number_literal) & number_literal) ])) ;) (expression_statement "uVar14 = E0[uVar7 >> 0x18];" (assignment_expression "uVar14 = E0[uVar7 >> 0x18]" identifier = (subscript_expression "E0[uVar7 >> 0x18]" identifier [ (binary_expression "uVar7 >> 0x18" identifier >> number_literal) ])) ;) (expression_statement "uVar15 = E3[uVar9 & 0xff];" (assignment_expression "uVar15 = E3[uVar9 & 0xff]" identifier = (subscript_expression "E3[uVar9 & 0xff]" identifier [ (binary_expression "uVar9 & 0xff" identifier & number_literal) ])) ;) (expression_statement "uVar18 = E2[uVar6 >> 8 & 0xff];" (assignment_expression "uVar18 = E2[uVar6 >> 8 & 0xff]" identifier = (subscript_expression "E2[uVar6 >> 8 & 0xff]" identifier [ (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" identifier >> number_literal) & number_literal) ])) ;) (expression_statement "uVar1 = E1[uVar11 >> 0x10 & 0xff];" (assignment_expression "uVar1 = E1[uVar11 >> 0x10 & 0xff]" identifier = (subscript_expression "E1[uVar11 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar11 >> 0x10 & 0xff" (binary_expression "uVar11 >> 0x10" identifier >> number_literal) & number_literal) ])) ;) (expression_statement "uVar2 = E1[uVar6 >> 0x10 & 0xff];" (assignment_expression "uVar2 = E1[uVar6 >> 0x10 & 0xff]" identifier = (subscript_expression "E1[uVar6 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar6 >> 0x10 & 0xff" (binary_expression "uVar6 >> 0x10" identifier >> number_literal) & number_literal) ])) ;) (expression_statement "uVar3 = E2[uVar9 >> 8 & 0xff];" (assignment_expression "uVar3 = E2[uVar9 >> 8 & 0xff]" identifier = (subscript_expression "E2[uVar9 >> 8 & 0xff]" identifier [ (binary_expression "uVar9 >> 8 & 0xff" (binary_expression "uVar9 >> 8" identifier >> number_literal) & number_literal) ])) ;) (expression_statement "uVar4 = E3[uVar7 & 0xff];" (assignment_expression "uVar4 = E3[uVar7 & 0xff]" identifier = (subscript_expression "E3[uVar7 & 0xff]" identifier [ (binary_expression "uVar7 & 0xff" identifier & number_literal) ])) ;) (expression_statement "uVar5 = E0[uVar11 >> 0x18];" (assignment_expression "uVar5 = E0[uVar11 >> 0x18]" identifier = (subscript_expression "E0[uVar11 >> 0x18]" identifier [ (binary_expression "uVar11 >> 0x18" identifier >> number_literal) ])) ;) (expression_statement "*block = E1[uVar9 >> 0x10 & 0xff] ^ E2[uVar7 >> 8 & 0xff] ^ E0[uVar6 >> 0x18] ^\n               E3[uVar11 & 0xff];" (assignment_expression "*block = E1[uVar9 >> 0x10 & 0xff] ^ E2[uVar7 >> 8 & 0xff] ^ E0[uVar6 >> 0x18] ^\n               E3[uVar11 & 0xff]" (pointer_expression "*block" * identifier) = (binary_expression "E1[uVar9 >> 0x10 & 0xff] ^ E2[uVar7 >> 8 & 0xff] ^ E0[uVar6 >> 0x18] ^\n               E3[uVar11 & 0xff]" (binary_expression "E1[uVar9 >> 0x10 & 0xff] ^ E2[uVar7 >> 8 & 0xff] ^ E0[uVar6 >> 0x18]" (binary_expression "E1[uVar9 >> 0x10 & 0xff] ^ E2[uVar7 >> 8 & 0xff]" (subscript_expression "E1[uVar9 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar9 >> 0x10 & 0xff" (binary_expression "uVar9 >> 0x10" identifier >> number_literal) & number_literal) ]) ^ (subscript_expression "E2[uVar7 >> 8 & 0xff]" identifier [ (binary_expression "uVar7 >> 8 & 0xff" (binary_expression "uVar7 >> 8" identifier >> number_literal) & number_literal) ])) ^ (subscript_expression "E0[uVar6 >> 0x18]" identifier [ (binary_expression "uVar6 >> 0x18" identifier >> number_literal) ])) ^ (subscript_expression "E3[uVar11 & 0xff]" identifier [ (binary_expression "uVar11 & 0xff" identifier & number_literal) ]))) ;) (expression_statement "block[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;" (assignment_expression "block[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13" (subscript_expression "block[1]" identifier [ number_literal ]) = (binary_expression "uVar10 ^ uVar8 ^ uVar12 ^ uVar13" (binary_expression "uVar10 ^ uVar8 ^ uVar12" (binary_expression "uVar10 ^ uVar8" identifier ^ identifier) ^ identifier) ^ identifier)) ;) (expression_statement "block[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;" (assignment_expression "block[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1" (subscript_expression "block[2]" identifier [ number_literal ]) = (binary_expression "uVar14 ^ uVar15 ^ uVar18 ^ uVar1" (binary_expression "uVar14 ^ uVar15 ^ uVar18" (binary_expression "uVar14 ^ uVar15" identifier ^ identifier) ^ identifier) ^ identifier)) ;) (expression_statement "block[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;" (assignment_expression "block[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5" (subscript_expression "block[3]" identifier [ number_literal ]) = (binary_expression "uVar2 ^ uVar3 ^ uVar4 ^ uVar5" (binary_expression "uVar2 ^ uVar3 ^ uVar4" (binary_expression "uVar2 ^ uVar3" identifier ^ identifier) ^ identifier) ^ identifier)) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "pAVar16 = pAVar17;" (assignment_expression "pAVar16 = pAVar17" identifier = identifier) ;) }) while (parenthesized_expression "(iVar19 < ctx->Nr + -1)" ( (binary_expression "iVar19 < ctx->Nr + -1" identifier < (binary_expression "ctx->Nr + -1" (field_expression "ctx->Nr" identifier -> field_identifier) + number_literal)) )) ;) })) (expression_statement "uVar12 = *block ^ pAVar17->keysched[0];" (assignment_expression "uVar12 = *block ^ pAVar17->keysched[0]" identifier = (binary_expression "*block ^ pAVar17->keysched[0]" (pointer_expression "*block" * identifier) ^ (subscript_expression "pAVar17->keysched[0]" (field_expression "pAVar17->keysched" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "*block = uVar12;" (assignment_expression "*block = uVar12" (pointer_expression "*block" * identifier) = identifier) ;) (expression_statement "uVar15 = block[1] ^ pAVar17->keysched[1];" (assignment_expression "uVar15 = block[1] ^ pAVar17->keysched[1]" identifier = (binary_expression "block[1] ^ pAVar17->keysched[1]" (subscript_expression "block[1]" identifier [ number_literal ]) ^ (subscript_expression "pAVar17->keysched[1]" (field_expression "pAVar17->keysched" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "block[1] = uVar15;" (assignment_expression "block[1] = uVar15" (subscript_expression "block[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar18 = block[2] ^ pAVar17->keysched[2];" (assignment_expression "uVar18 = block[2] ^ pAVar17->keysched[2]" identifier = (binary_expression "block[2] ^ pAVar17->keysched[2]" (subscript_expression "block[2]" identifier [ number_literal ]) ^ (subscript_expression "pAVar17->keysched[2]" (field_expression "pAVar17->keysched" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "block[2] = uVar18;" (assignment_expression "block[2] = uVar18" (subscript_expression "block[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar10 = block[3] ^ pAVar17->keysched[3];" (assignment_expression "uVar10 = block[3] ^ pAVar17->keysched[3]" identifier = (binary_expression "block[3] ^ pAVar17->keysched[3]" (subscript_expression "block[3]" identifier [ number_literal ]) ^ (subscript_expression "pAVar17->keysched[3]" (field_expression "pAVar17->keysched" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "uVar14 = (uint)Sbox[uVar12 >> 0x18] << 0x18 | (uint)Sbox[uVar10 & 0xff] |\n           (uint)Sbox[uVar15 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar18 >> 8 & 0xff] << 8;" (assignment_expression "uVar14 = (uint)Sbox[uVar12 >> 0x18] << 0x18 | (uint)Sbox[uVar10 & 0xff] |\n           (uint)Sbox[uVar15 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar18 >> 8 & 0xff] << 8" identifier = (binary_expression "(uint)Sbox[uVar12 >> 0x18] << 0x18 | (uint)Sbox[uVar10 & 0xff] |\n           (uint)Sbox[uVar15 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar18 >> 8 & 0xff] << 8" (binary_expression "(uint)Sbox[uVar12 >> 0x18] << 0x18 | (uint)Sbox[uVar10 & 0xff] |\n           (uint)Sbox[uVar15 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)Sbox[uVar12 >> 0x18] << 0x18 | (uint)Sbox[uVar10 & 0xff]" (binary_expression "(uint)Sbox[uVar12 >> 0x18] << 0x18" (cast_expression "(uint)Sbox[uVar12 >> 0x18]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar12 >> 0x18]" identifier [ (binary_expression "uVar12 >> 0x18" identifier >> number_literal) ])) << number_literal) | (cast_expression "(uint)Sbox[uVar10 & 0xff]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar10 & 0xff]" identifier [ (binary_expression "uVar10 & 0xff" identifier & number_literal) ]))) | (binary_expression "(uint)Sbox[uVar15 >> 0x10 & 0xff] << 0x10" (cast_expression "(uint)Sbox[uVar15 >> 0x10 & 0xff]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar15 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar15 >> 0x10 & 0xff" (binary_expression "uVar15 >> 0x10" identifier >> number_literal) & number_literal) ])) << number_literal)) | (binary_expression "(uint)Sbox[uVar18 >> 8 & 0xff] << 8" (cast_expression "(uint)Sbox[uVar18 >> 8 & 0xff]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar18 >> 8 & 0xff]" identifier [ (binary_expression "uVar18 >> 8 & 0xff" (binary_expression "uVar18 >> 8" identifier >> number_literal) & number_literal) ])) << number_literal))) ;) (expression_statement "uVar13 = (uint)Sbox[uVar15 >> 0x18] << 0x18 | (uint)Sbox[uVar12 & 0xff] |\n           (uint)Sbox[uVar18 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar10 >> 8 & 0xff] << 8;" (assignment_expression "uVar13 = (uint)Sbox[uVar15 >> 0x18] << 0x18 | (uint)Sbox[uVar12 & 0xff] |\n           (uint)Sbox[uVar18 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar10 >> 8 & 0xff] << 8" identifier = (binary_expression "(uint)Sbox[uVar15 >> 0x18] << 0x18 | (uint)Sbox[uVar12 & 0xff] |\n           (uint)Sbox[uVar18 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar10 >> 8 & 0xff] << 8" (binary_expression "(uint)Sbox[uVar15 >> 0x18] << 0x18 | (uint)Sbox[uVar12 & 0xff] |\n           (uint)Sbox[uVar18 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)Sbox[uVar15 >> 0x18] << 0x18 | (uint)Sbox[uVar12 & 0xff]" (binary_expression "(uint)Sbox[uVar15 >> 0x18] << 0x18" (cast_expression "(uint)Sbox[uVar15 >> 0x18]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar15 >> 0x18]" identifier [ (binary_expression "uVar15 >> 0x18" identifier >> number_literal) ])) << number_literal) | (cast_expression "(uint)Sbox[uVar12 & 0xff]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar12 & 0xff]" identifier [ (binary_expression "uVar12 & 0xff" identifier & number_literal) ]))) | (binary_expression "(uint)Sbox[uVar18 >> 0x10 & 0xff] << 0x10" (cast_expression "(uint)Sbox[uVar18 >> 0x10 & 0xff]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar18 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar18 >> 0x10 & 0xff" (binary_expression "uVar18 >> 0x10" identifier >> number_literal) & number_literal) ])) << number_literal)) | (binary_expression "(uint)Sbox[uVar10 >> 8 & 0xff] << 8" (cast_expression "(uint)Sbox[uVar10 >> 8 & 0xff]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar10 >> 8 & 0xff]" identifier [ (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" identifier >> number_literal) & number_literal) ])) << number_literal))) ;) (expression_statement "uVar8 = (uint)Sbox[uVar18 >> 0x18] << 0x18 | (uint)Sbox[uVar15 & 0xff] |\n          (uint)Sbox[uVar10 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar12 >> 8 & 0xff] << 8;" (assignment_expression "uVar8 = (uint)Sbox[uVar18 >> 0x18] << 0x18 | (uint)Sbox[uVar15 & 0xff] |\n          (uint)Sbox[uVar10 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar12 >> 8 & 0xff] << 8" identifier = (binary_expression "(uint)Sbox[uVar18 >> 0x18] << 0x18 | (uint)Sbox[uVar15 & 0xff] |\n          (uint)Sbox[uVar10 >> 0x10 & 0xff] << 0x10 | (uint)Sbox[uVar12 >> 8 & 0xff] << 8" (binary_expression "(uint)Sbox[uVar18 >> 0x18] << 0x18 | (uint)Sbox[uVar15 & 0xff] |\n          (uint)Sbox[uVar10 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)Sbox[uVar18 >> 0x18] << 0x18 | (uint)Sbox[uVar15 & 0xff]" (binary_expression "(uint)Sbox[uVar18 >> 0x18] << 0x18" (cast_expression "(uint)Sbox[uVar18 >> 0x18]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar18 >> 0x18]" identifier [ (binary_expression "uVar18 >> 0x18" identifier >> number_literal) ])) << number_literal) | (cast_expression "(uint)Sbox[uVar15 & 0xff]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar15 & 0xff]" identifier [ (binary_expression "uVar15 & 0xff" identifier & number_literal) ]))) | (binary_expression "(uint)Sbox[uVar10 >> 0x10 & 0xff] << 0x10" (cast_expression "(uint)Sbox[uVar10 >> 0x10 & 0xff]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar10 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar10 >> 0x10 & 0xff" (binary_expression "uVar10 >> 0x10" identifier >> number_literal) & number_literal) ])) << number_literal)) | (binary_expression "(uint)Sbox[uVar12 >> 8 & 0xff] << 8" (cast_expression "(uint)Sbox[uVar12 >> 8 & 0xff]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar12 >> 8 & 0xff]" identifier [ (binary_expression "uVar12 >> 8 & 0xff" (binary_expression "uVar12 >> 8" identifier >> number_literal) & number_literal) ])) << number_literal))) ;) (expression_statement "uVar10 = (uint)Sbox[uVar15 >> 8 & 0xff] << 8 |\n           (uint)Sbox[uVar10 >> 0x18] << 0x18 | (uint)Sbox[uVar18 & 0xff] |\n           (uint)Sbox[uVar12 >> 0x10 & 0xff] << 0x10;" (assignment_expression "uVar10 = (uint)Sbox[uVar15 >> 8 & 0xff] << 8 |\n           (uint)Sbox[uVar10 >> 0x18] << 0x18 | (uint)Sbox[uVar18 & 0xff] |\n           (uint)Sbox[uVar12 >> 0x10 & 0xff] << 0x10" identifier = (binary_expression "(uint)Sbox[uVar15 >> 8 & 0xff] << 8 |\n           (uint)Sbox[uVar10 >> 0x18] << 0x18 | (uint)Sbox[uVar18 & 0xff] |\n           (uint)Sbox[uVar12 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)Sbox[uVar15 >> 8 & 0xff] << 8 |\n           (uint)Sbox[uVar10 >> 0x18] << 0x18 | (uint)Sbox[uVar18 & 0xff]" (binary_expression "(uint)Sbox[uVar15 >> 8 & 0xff] << 8 |\n           (uint)Sbox[uVar10 >> 0x18] << 0x18" (binary_expression "(uint)Sbox[uVar15 >> 8 & 0xff] << 8" (cast_expression "(uint)Sbox[uVar15 >> 8 & 0xff]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar15 >> 8 & 0xff]" identifier [ (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" identifier >> number_literal) & number_literal) ])) << number_literal) | (binary_expression "(uint)Sbox[uVar10 >> 0x18] << 0x18" (cast_expression "(uint)Sbox[uVar10 >> 0x18]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar10 >> 0x18]" identifier [ (binary_expression "uVar10 >> 0x18" identifier >> number_literal) ])) << number_literal)) | (cast_expression "(uint)Sbox[uVar18 & 0xff]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar18 & 0xff]" identifier [ (binary_expression "uVar18 & 0xff" identifier & number_literal) ]))) | (binary_expression "(uint)Sbox[uVar12 >> 0x10 & 0xff] << 0x10" (cast_expression "(uint)Sbox[uVar12 >> 0x10 & 0xff]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "Sbox[uVar12 >> 0x10 & 0xff]" identifier [ (binary_expression "uVar12 >> 0x10 & 0xff" (binary_expression "uVar12 >> 0x10" identifier >> number_literal) & number_literal) ])) << number_literal))) ;) (expression_statement "*block = uVar14;" (assignment_expression "*block = uVar14" (pointer_expression "*block" * identifier) = identifier) ;) (expression_statement "block[1] = uVar13;" (assignment_expression "block[1] = uVar13" (subscript_expression "block[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "block[2] = uVar8;" (assignment_expression "block[2] = uVar8" (subscript_expression "block[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "block[3] = uVar10;" (assignment_expression "block[3] = uVar10" (subscript_expression "block[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*block = uVar14 ^ pAVar17->keysched[4];" (assignment_expression "*block = uVar14 ^ pAVar17->keysched[4]" (pointer_expression "*block" * identifier) = (binary_expression "uVar14 ^ pAVar17->keysched[4]" identifier ^ (subscript_expression "pAVar17->keysched[4]" (field_expression "pAVar17->keysched" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "block[1] = uVar13 ^ pAVar17->keysched[5];" (assignment_expression "block[1] = uVar13 ^ pAVar17->keysched[5]" (subscript_expression "block[1]" identifier [ number_literal ]) = (binary_expression "uVar13 ^ pAVar17->keysched[5]" identifier ^ (subscript_expression "pAVar17->keysched[5]" (field_expression "pAVar17->keysched" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "block[2] = uVar8 ^ pAVar17->keysched[6];" (assignment_expression "block[2] = uVar8 ^ pAVar17->keysched[6]" (subscript_expression "block[2]" identifier [ number_literal ]) = (binary_expression "uVar8 ^ pAVar17->keysched[6]" identifier ^ (subscript_expression "pAVar17->keysched[6]" (field_expression "pAVar17->keysched" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "block[3] = uVar10 ^ pAVar17->keysched[7];" (assignment_expression "block[3] = uVar10 ^ pAVar17->keysched[7]" (subscript_expression "block[3]" identifier [ number_literal ]) = (binary_expression "uVar10 ^ pAVar17->keysched[7]" identifier ^ (subscript_expression "pAVar17->keysched[7]" (field_expression "pAVar17->keysched" identifier -> field_identifier) [ number_literal ]))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0012cf3f(uint *param_1,uint *param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  int iVar19;\n  \n  puVar17 = param_1;\n  if (1 < (int)param_1[0xfd]) {\n    iVar19 = 0;\n    puVar16 = param_1;\n    do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));\n  }\n  uVar12 = *param_2 ^ *puVar17;\n  *param_2 = uVar12;\n  uVar15 = param_2[1] ^ puVar17[1];\n  param_2[1] = uVar15;\n  uVar18 = param_2[2] ^ puVar17[2];\n  param_2[2] = uVar18;\n  uVar10 = param_2[3] ^ puVar17[3];\n  uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8;\n  uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8;\n  uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8;\n  uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10;\n  *param_2 = uVar14;\n  param_2[1] = uVar13;\n  param_2[2] = uVar8;\n  param_2[3] = uVar10;\n  *param_2 = uVar14 ^ puVar17[4];\n  param_2[1] = uVar13 ^ puVar17[5];\n  param_2[2] = uVar8 ^ puVar17[6];\n  param_2[3] = uVar10 ^ puVar17[7];\n  return;\n}\n\n" (function_definition "void FUN_0012cf3f(uint *param_1,uint *param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  int iVar19;\n  \n  puVar17 = param_1;\n  if (1 < (int)param_1[0xfd]) {\n    iVar19 = 0;\n    puVar16 = param_1;\n    do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));\n  }\n  uVar12 = *param_2 ^ *puVar17;\n  *param_2 = uVar12;\n  uVar15 = param_2[1] ^ puVar17[1];\n  param_2[1] = uVar15;\n  uVar18 = param_2[2] ^ puVar17[2];\n  param_2[2] = uVar18;\n  uVar10 = param_2[3] ^ puVar17[3];\n  uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8;\n  uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8;\n  uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8;\n  uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10;\n  *param_2 = uVar14;\n  param_2[1] = uVar13;\n  param_2[2] = uVar8;\n  param_2[3] = uVar10;\n  *param_2 = uVar14 ^ puVar17[4];\n  param_2[1] = uVar13 ^ puVar17[5];\n  param_2[2] = uVar8 ^ puVar17[6];\n  param_2[3] = uVar10 ^ puVar17[7];\n  return;\n}" primitive_type (function_declarator "FUN_0012cf3f(uint *param_1,uint *param_2)" identifier (parameter_list "(uint *param_1,uint *param_2)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  int iVar19;\n  \n  puVar17 = param_1;\n  if (1 < (int)param_1[0xfd]) {\n    iVar19 = 0;\n    puVar16 = param_1;\n    do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));\n  }\n  uVar12 = *param_2 ^ *puVar17;\n  *param_2 = uVar12;\n  uVar15 = param_2[1] ^ puVar17[1];\n  param_2[1] = uVar15;\n  uVar18 = param_2[2] ^ puVar17[2];\n  param_2[2] = uVar18;\n  uVar10 = param_2[3] ^ puVar17[3];\n  uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8;\n  uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8;\n  uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8;\n  uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10;\n  *param_2 = uVar14;\n  param_2[1] = uVar13;\n  param_2[2] = uVar8;\n  param_2[3] = uVar10;\n  *param_2 = uVar14 ^ puVar17[4];\n  param_2[1] = uVar13 ^ puVar17[5];\n  param_2[2] = uVar8 ^ puVar17[6];\n  param_2[3] = uVar10 ^ puVar17[7];\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (expression_statement "puVar17 = param_1;" (assignment_expression "puVar17 = param_1" identifier = identifier) ;) (if_statement "if (1 < (int)param_1[0xfd]) {\n    iVar19 = 0;\n    puVar16 = param_1;\n    do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));\n  }" if (parenthesized_expression "(1 < (int)param_1[0xfd])" ( (binary_expression "1 < (int)param_1[0xfd]" number_literal < (cast_expression "(int)param_1[0xfd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0xfd]" identifier [ number_literal ]))) )) (compound_statement "{\n    iVar19 = 0;\n    puVar16 = param_1;\n    do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));\n  }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "puVar16 = param_1;" (assignment_expression "puVar16 = param_1" identifier = identifier) ;) (do_statement "do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));" do (compound_statement "{\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    }" { (expression_statement "uVar6 = *param_2 ^ *puVar16;" (assignment_expression "uVar6 = *param_2 ^ *puVar16" identifier = (binary_expression "*param_2 ^ *puVar16" (pointer_expression "*param_2" * identifier) ^ (pointer_expression "*puVar16" * identifier))) ;) (expression_statement "*param_2 = uVar6;" (assignment_expression "*param_2 = uVar6" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "uVar9 = param_2[1] ^ puVar16[1];" (assignment_expression "uVar9 = param_2[1] ^ puVar16[1]" identifier = (binary_expression "param_2[1] ^ puVar16[1]" (subscript_expression "param_2[1]" identifier [ number_literal ]) ^ (subscript_expression "puVar16[1]" identifier [ number_literal ]))) ;) (expression_statement "param_2[1] = uVar9;" (assignment_expression "param_2[1] = uVar9" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = param_2[2] ^ puVar16[2];" (assignment_expression "uVar7 = param_2[2] ^ puVar16[2]" identifier = (binary_expression "param_2[2] ^ puVar16[2]" (subscript_expression "param_2[2]" identifier [ number_literal ]) ^ (subscript_expression "puVar16[2]" identifier [ number_literal ]))) ;) (expression_statement "param_2[2] = uVar7;" (assignment_expression "param_2[2] = uVar7" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17 = puVar16 + 4;" (assignment_expression "puVar17 = puVar16 + 4" identifier = (binary_expression "puVar16 + 4" identifier + number_literal)) ;) (expression_statement "uVar11 = param_2[3] ^ puVar16[3];" (assignment_expression "uVar11 = param_2[3] ^ puVar16[3]" identifier = (binary_expression "param_2[3] ^ puVar16[3]" (subscript_expression "param_2[3]" identifier [ number_literal ]) ^ (subscript_expression "puVar16[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);" (assignment_expression "uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4)" ( (binary_expression "&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4" (pointer_expression "&DAT_001660c0" & identifier) + (binary_expression "(ulong)(uVar9 >> 0x18) * 4" (call_expression "(ulong)(uVar9 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar9 >> 0x18)" ( (binary_expression "uVar9 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);" (assignment_expression "uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4)" ( (binary_expression "&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4" (pointer_expression "&DAT_001654c0" & identifier) + (binary_expression "(ulong)(uVar6 & 0xff) * 4" (call_expression "(ulong)(uVar6 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 & 0xff)" ( (binary_expression "uVar6 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);" (assignment_expression "uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00165cc0" & identifier) + (binary_expression "(ulong)(uVar7 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar7 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 >> 0x10 & 0xff)" ( (binary_expression "uVar7 >> 0x10 & 0xff" (binary_expression "uVar7 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);" (assignment_expression "uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4)" ( (binary_expression "&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4" (pointer_expression "&DAT_001658c0" & identifier) + (binary_expression "(ulong)(uVar11 >> 8 & 0xff) * 4" (call_expression "(ulong)(uVar11 >> 8 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar11 >> 8 & 0xff)" ( (binary_expression "uVar11 >> 8 & 0xff" (binary_expression "uVar11 >> 8" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);" (assignment_expression "uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4)" ( (binary_expression "&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4" (pointer_expression "&DAT_001660c0" & identifier) + (binary_expression "(ulong)(uVar7 >> 0x18) * 4" (call_expression "(ulong)(uVar7 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 >> 0x18)" ( (binary_expression "uVar7 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);" (assignment_expression "uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4)" ( (binary_expression "&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4" (pointer_expression "&DAT_001654c0" & identifier) + (binary_expression "(ulong)(uVar9 & 0xff) * 4" (call_expression "(ulong)(uVar9 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar9 & 0xff)" ( (binary_expression "uVar9 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);" (assignment_expression "uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4)" ( (binary_expression "&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4" (pointer_expression "&DAT_001658c0" & identifier) + (binary_expression "(ulong)(uVar6 >> 8 & 0xff) * 4" (call_expression "(ulong)(uVar6 >> 8 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 >> 8 & 0xff)" ( (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);" (assignment_expression "uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00165cc0" & identifier) + (binary_expression "(ulong)(uVar11 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar11 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar11 >> 0x10 & 0xff)" ( (binary_expression "uVar11 >> 0x10 & 0xff" (binary_expression "uVar11 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);" (assignment_expression "uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00165cc0" & identifier) + (binary_expression "(ulong)(uVar6 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar6 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 >> 0x10 & 0xff)" ( (binary_expression "uVar6 >> 0x10 & 0xff" (binary_expression "uVar6 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);" (assignment_expression "uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4)" ( (binary_expression "&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4" (pointer_expression "&DAT_001658c0" & identifier) + (binary_expression "(ulong)(uVar9 >> 8 & 0xff) * 4" (call_expression "(ulong)(uVar9 >> 8 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar9 >> 8 & 0xff)" ( (binary_expression "uVar9 >> 8 & 0xff" (binary_expression "uVar9 >> 8" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);" (assignment_expression "uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4)" ( (binary_expression "&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4" (pointer_expression "&DAT_001654c0" & identifier) + (binary_expression "(ulong)(uVar7 & 0xff) * 4" (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 & 0xff)" ( (binary_expression "uVar7 & 0xff" identifier & number_literal) ))) * number_literal)) ))))) ;) (expression_statement "uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);" (assignment_expression "uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4)" identifier = (pointer_expression "*(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4)" ( (binary_expression "&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4" (pointer_expression "&DAT_001660c0" & identifier) + (binary_expression "(ulong)(uVar11 >> 0x18) * 4" (call_expression "(ulong)(uVar11 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar11 >> 0x18)" ( (binary_expression "uVar11 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) ;) (expression_statement "*param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);" (assignment_expression "*param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4)" (pointer_expression "*param_2" * identifier) = (binary_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4)" (binary_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4)" (binary_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4)" (pointer_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4)" ( (binary_expression "&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00165cc0" & identifier) + (binary_expression "(ulong)(uVar9 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar9 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar9 >> 0x10 & 0xff)" ( (binary_expression "uVar9 >> 0x10 & 0xff" (binary_expression "uVar9 >> 0x10" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) ^ (pointer_expression "*(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4)" ( (binary_expression "&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4" (pointer_expression "&DAT_001658c0" & identifier) + (binary_expression "(ulong)(uVar7 >> 8 & 0xff) * 4" (call_expression "(ulong)(uVar7 >> 8 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar7 >> 8 & 0xff)" ( (binary_expression "uVar7 >> 8 & 0xff" (binary_expression "uVar7 >> 8" identifier >> number_literal) & number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4)" * (cast_expression "(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4)" ( (binary_expression "&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4" (pointer_expression "&DAT_001660c0" & identifier) + (binary_expression "(ulong)(uVar6 >> 0x18) * 4" (call_expression "(ulong)(uVar6 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) ))) * number_literal)) ))))) ^ (pointer_expression "*(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4)" * (cast_expression "(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4)" ( (binary_expression "&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4" (pointer_expression "&DAT_001654c0" & identifier) + (binary_expression "(ulong)(uVar11 & 0xff) * 4" (call_expression "(ulong)(uVar11 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) ))) * number_literal)) )))))) ;) (expression_statement "param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;" (assignment_expression "param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar10 ^ uVar8 ^ uVar12 ^ uVar13" (binary_expression "uVar10 ^ uVar8 ^ uVar12" (binary_expression "uVar10 ^ uVar8" identifier ^ identifier) ^ identifier) ^ identifier)) ;) (expression_statement "param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;" (assignment_expression "param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar14 ^ uVar15 ^ uVar18 ^ uVar1" (binary_expression "uVar14 ^ uVar15 ^ uVar18" (binary_expression "uVar14 ^ uVar15" identifier ^ identifier) ^ identifier) ^ identifier)) ;) (expression_statement "param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;" (assignment_expression "param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "uVar2 ^ uVar3 ^ uVar4 ^ uVar5" (binary_expression "uVar2 ^ uVar3 ^ uVar4" (binary_expression "uVar2 ^ uVar3" identifier ^ identifier) ^ identifier) ^ identifier)) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) }) while (parenthesized_expression "(iVar19 < (int)(param_1[0xfd] - 1))" ( (binary_expression "iVar19 < (int)(param_1[0xfd] - 1)" identifier < (cast_expression "(int)(param_1[0xfd] - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1[0xfd] - 1)" ( (binary_expression "param_1[0xfd] - 1" (subscript_expression "param_1[0xfd]" identifier [ number_literal ]) - number_literal) )))) )) ;) })) (expression_statement "uVar12 = *param_2 ^ *puVar17;" (assignment_expression "uVar12 = *param_2 ^ *puVar17" identifier = (binary_expression "*param_2 ^ *puVar17" (pointer_expression "*param_2" * identifier) ^ (pointer_expression "*puVar17" * identifier))) ;) (expression_statement "*param_2 = uVar12;" (assignment_expression "*param_2 = uVar12" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "uVar15 = param_2[1] ^ puVar17[1];" (assignment_expression "uVar15 = param_2[1] ^ puVar17[1]" identifier = (binary_expression "param_2[1] ^ puVar17[1]" (subscript_expression "param_2[1]" identifier [ number_literal ]) ^ (subscript_expression "puVar17[1]" identifier [ number_literal ]))) ;) (expression_statement "param_2[1] = uVar15;" (assignment_expression "param_2[1] = uVar15" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar18 = param_2[2] ^ puVar17[2];" (assignment_expression "uVar18 = param_2[2] ^ puVar17[2]" identifier = (binary_expression "param_2[2] ^ puVar17[2]" (subscript_expression "param_2[2]" identifier [ number_literal ]) ^ (subscript_expression "puVar17[2]" identifier [ number_literal ]))) ;) (expression_statement "param_2[2] = uVar18;" (assignment_expression "param_2[2] = uVar18" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar10 = param_2[3] ^ puVar17[3];" (assignment_expression "uVar10 = param_2[3] ^ puVar17[3]" identifier = (binary_expression "param_2[3] ^ puVar17[3]" (subscript_expression "param_2[3]" identifier [ number_literal ]) ^ (subscript_expression "puVar17[3]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8;" (assignment_expression "uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8" identifier = (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff]" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar12 >> 0x18" identifier >> number_literal) ]) << number_literal) | (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar10 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar10 & 0xff" identifier & number_literal) ])) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar15 >> 0x10 & 0xff" (binary_expression "uVar15 >> 0x10" identifier >> number_literal) & number_literal) ]) << number_literal)) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar18 >> 8 & 0xff" (binary_expression "uVar18 >> 8" identifier >> number_literal) & number_literal) ]) << number_literal))) ;) (expression_statement "uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8;" (assignment_expression "uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8" identifier = (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff]" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar15 >> 0x18" identifier >> number_literal) ]) << number_literal) | (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar12 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar12 & 0xff" identifier & number_literal) ])) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar18 >> 0x10 & 0xff" (binary_expression "uVar18 >> 0x10" identifier >> number_literal) & number_literal) ]) << number_literal)) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" identifier >> number_literal) & number_literal) ]) << number_literal))) ;) (expression_statement "uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8;" (assignment_expression "uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8" identifier = (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff]" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar18 >> 0x18" identifier >> number_literal) ]) << number_literal) | (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar15 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar15 & 0xff" identifier & number_literal) ])) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar10 >> 0x10 & 0xff" (binary_expression "uVar10 >> 0x10" identifier >> number_literal) & number_literal) ]) << number_literal)) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar12 >> 8 & 0xff" (binary_expression "uVar12 >> 8" identifier >> number_literal) & number_literal) ]) << number_literal))) ;) (expression_statement "uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10;" (assignment_expression "uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10" identifier = (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff]" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" identifier >> number_literal) & number_literal) ]) << number_literal) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar10 >> 0x18" identifier >> number_literal) ]) << number_literal)) | (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar18 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar18 & 0xff" identifier & number_literal) ])) | (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(&DAT_001665c0)" ( (pointer_expression "&DAT_001665c0" & identifier) ))) [ (binary_expression "uVar12 >> 0x10 & 0xff" (binary_expression "uVar12 >> 0x10" identifier >> number_literal) & number_literal) ]) << number_literal))) ;) (expression_statement "*param_2 = uVar14;" (assignment_expression "*param_2 = uVar14" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "param_2[1] = uVar13;" (assignment_expression "param_2[1] = uVar13" (subscript_expression "param_2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[2] = uVar8;" (assignment_expression "param_2[2] = uVar8" (subscript_expression "param_2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2[3] = uVar10;" (assignment_expression "param_2[3] = uVar10" (subscript_expression "param_2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_2 = uVar14 ^ puVar17[4];" (assignment_expression "*param_2 = uVar14 ^ puVar17[4]" (pointer_expression "*param_2" * identifier) = (binary_expression "uVar14 ^ puVar17[4]" identifier ^ (subscript_expression "puVar17[4]" identifier [ number_literal ]))) ;) (expression_statement "param_2[1] = uVar13 ^ puVar17[5];" (assignment_expression "param_2[1] = uVar13 ^ puVar17[5]" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "uVar13 ^ puVar17[5]" identifier ^ (subscript_expression "puVar17[5]" identifier [ number_literal ]))) ;) (expression_statement "param_2[2] = uVar8 ^ puVar17[6];" (assignment_expression "param_2[2] = uVar8 ^ puVar17[6]" (subscript_expression "param_2[2]" identifier [ number_literal ]) = (binary_expression "uVar8 ^ puVar17[6]" identifier ^ (subscript_expression "puVar17[6]" identifier [ number_literal ]))) ;) (expression_statement "param_2[3] = uVar10 ^ puVar17[7];" (assignment_expression "param_2[3] = uVar10 ^ puVar17[7]" (subscript_expression "param_2[3]" identifier [ number_literal ]) = (binary_expression "uVar10 ^ puVar17[7]" identifier ^ (subscript_expression "puVar17[7]" identifier [ number_literal ]))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (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 ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT >> LIT) & LIT) ))) * LIT)) ))))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) ))))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * LIT)) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression IDENT ^ IDENT) ^ IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression IDENT ^ IDENT) ^ IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression IDENT ^ IDENT) ^ IDENT) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) )))) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression IDENT >> LIT) ]) << LIT) | (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression IDENT & LIT) ])) | (binary_expression (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ]) << LIT)) | (binary_expression (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ]) << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression IDENT >> LIT) ]) << LIT) | (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression IDENT & LIT) ])) | (binary_expression (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ]) << LIT)) | (binary_expression (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ]) << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression IDENT >> LIT) ]) << LIT) | (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression IDENT & LIT) ])) | (binary_expression (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ]) << LIT)) | (binary_expression (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ]) << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ]) << LIT) | (binary_expression (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression IDENT >> LIT) ]) << LIT)) | (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression IDENT & LIT) ])) | (binary_expression (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression (binary_expression IDENT >> LIT) & LIT) ]) << LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ]))) ;) (return_statement return ;) })))
(function_definition "void FUN_0012cf3f(uint *param_1,uint *param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  int iVar19;\n  \n  puVar17 = param_1;\n  if (1 < (int)param_1[0xfd]) {\n    iVar19 = 0;\n    puVar16 = param_1;\n    do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));\n  }\n  uVar12 = *param_2 ^ *puVar17;\n  *param_2 = uVar12;\n  uVar15 = param_2[1] ^ puVar17[1];\n  param_2[1] = uVar15;\n  uVar18 = param_2[2] ^ puVar17[2];\n  param_2[2] = uVar18;\n  uVar10 = param_2[3] ^ puVar17[3];\n  uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8;\n  uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8;\n  uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8;\n  uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10;\n  *param_2 = uVar14;\n  param_2[1] = uVar13;\n  param_2[2] = uVar8;\n  param_2[3] = uVar10;\n  *param_2 = uVar14 ^ puVar17[4];\n  param_2[1] = uVar13 ^ puVar17[5];\n  param_2[2] = uVar8 ^ puVar17[6];\n  param_2[3] = uVar10 ^ puVar17[7];\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0012cf3f(uint *param_1,uint *param_2)" (identifier "FUN_0012cf3f") (parameter_list "(uint *param_1,uint *param_2)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint *puVar16;\n  uint *puVar17;\n  uint uVar18;\n  int iVar19;\n  \n  puVar17 = param_1;\n  if (1 < (int)param_1[0xfd]) {\n    iVar19 = 0;\n    puVar16 = param_1;\n    do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));\n  }\n  uVar12 = *param_2 ^ *puVar17;\n  *param_2 = uVar12;\n  uVar15 = param_2[1] ^ puVar17[1];\n  param_2[1] = uVar15;\n  uVar18 = param_2[2] ^ puVar17[2];\n  param_2[2] = uVar18;\n  uVar10 = param_2[3] ^ puVar17[3];\n  uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8;\n  uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8;\n  uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8;\n  uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10;\n  *param_2 = uVar14;\n  param_2[1] = uVar13;\n  param_2[2] = uVar8;\n  param_2[3] = uVar10;\n  *param_2 = uVar14 ^ puVar17[4];\n  param_2[1] = uVar13 ^ puVar17[5];\n  param_2[2] = uVar8 ^ puVar17[6];\n  param_2[3] = uVar10 ^ puVar17[7];\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "uint *puVar16;" (type_identifier "uint") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "uint *puVar17;" (type_identifier "uint") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (expression_statement "puVar17 = param_1;" (assignment_expression "puVar17 = param_1" (identifier "puVar17") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (1 < (int)param_1[0xfd]) {\n    iVar19 = 0;\n    puVar16 = param_1;\n    do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));\n  }" (if "if") (parenthesized_expression "(1 < (int)param_1[0xfd])" (( "(") (binary_expression "1 < (int)param_1[0xfd]" (number_literal "1") (< "<") (cast_expression "(int)param_1[0xfd]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0xfd]" (identifier "param_1") ([ "[") (number_literal "0xfd") (] "]")))) () ")")) (compound_statement "{\n    iVar19 = 0;\n    puVar16 = param_1;\n    do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));\n  }" ({ "{") (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar16 = param_1;" (assignment_expression "puVar16 = param_1" (identifier "puVar16") (= "=") (identifier "param_1")) (; ";")) (do_statement "do {\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    } while (iVar19 < (int)(param_1[0xfd] - 1));" (do "do") (compound_statement "{\n      uVar6 = *param_2 ^ *puVar16;\n      *param_2 = uVar6;\n      uVar9 = param_2[1] ^ puVar16[1];\n      param_2[1] = uVar9;\n      uVar7 = param_2[2] ^ puVar16[2];\n      param_2[2] = uVar7;\n      puVar17 = puVar16 + 4;\n      uVar11 = param_2[3] ^ puVar16[3];\n      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);\n      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);\n      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);\n      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);\n      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);\n      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);\n      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);\n      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);\n      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);\n      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);\n      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);\n      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);\n      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);\n      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;\n      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;\n      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;\n      iVar19 = iVar19 + 1;\n      puVar16 = puVar17;\n    }" ({ "{") (expression_statement "uVar6 = *param_2 ^ *puVar16;" (assignment_expression "uVar6 = *param_2 ^ *puVar16" (identifier "uVar6") (= "=") (binary_expression "*param_2 ^ *puVar16" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (^ "^") (pointer_expression "*puVar16" (* "*") (identifier "puVar16")))) (; ";")) (expression_statement "*param_2 = uVar6;" (assignment_expression "*param_2 = uVar6" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uVar9 = param_2[1] ^ puVar16[1];" (assignment_expression "uVar9 = param_2[1] ^ puVar16[1]" (identifier "uVar9") (= "=") (binary_expression "param_2[1] ^ puVar16[1]" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (^ "^") (subscript_expression "puVar16[1]" (identifier "puVar16") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "param_2[1] = uVar9;" (assignment_expression "param_2[1] = uVar9" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar7 = param_2[2] ^ puVar16[2];" (assignment_expression "uVar7 = param_2[2] ^ puVar16[2]" (identifier "uVar7") (= "=") (binary_expression "param_2[2] ^ puVar16[2]" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (^ "^") (subscript_expression "puVar16[2]" (identifier "puVar16") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "param_2[2] = uVar7;" (assignment_expression "param_2[2] = uVar7" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puVar17 = puVar16 + 4;" (assignment_expression "puVar17 = puVar16 + 4" (identifier "puVar17") (= "=") (binary_expression "puVar16 + 4" (identifier "puVar16") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar11 = param_2[3] ^ puVar16[3];" (assignment_expression "uVar11 = param_2[3] ^ puVar16[3]" (identifier "uVar11") (= "=") (binary_expression "param_2[3] ^ puVar16[3]" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (^ "^") (subscript_expression "puVar16[3]" (identifier "puVar16") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);" (assignment_expression "uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4" (pointer_expression "&DAT_001660c0" (& "&") (identifier "DAT_001660c0")) (+ "+") (binary_expression "(ulong)(uVar9 >> 0x18) * 4" (call_expression "(ulong)(uVar9 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar9 >> 0x18)" (( "(") (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);" (assignment_expression "uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4)" (( "(") (binary_expression "&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4" (pointer_expression "&DAT_001654c0" (& "&") (identifier "DAT_001654c0")) (+ "+") (binary_expression "(ulong)(uVar6 & 0xff) * 4" (call_expression "(ulong)(uVar6 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar6 & 0xff)" (( "(") (binary_expression "uVar6 & 0xff" (identifier "uVar6") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);" (assignment_expression "uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00165cc0" (& "&") (identifier "DAT_00165cc0")) (+ "+") (binary_expression "(ulong)(uVar7 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar7 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar7 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar7 >> 0x10 & 0xff" (binary_expression "uVar7 >> 0x10" (identifier "uVar7") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);" (assignment_expression "uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4)" (( "(") (binary_expression "&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4" (pointer_expression "&DAT_001658c0" (& "&") (identifier "DAT_001658c0")) (+ "+") (binary_expression "(ulong)(uVar11 >> 8 & 0xff) * 4" (call_expression "(ulong)(uVar11 >> 8 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar11 >> 8 & 0xff)" (( "(") (binary_expression "uVar11 >> 8 & 0xff" (binary_expression "uVar11 >> 8" (identifier "uVar11") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);" (assignment_expression "uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4)" (identifier "uVar14") (= "=") (pointer_expression "*(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4" (pointer_expression "&DAT_001660c0" (& "&") (identifier "DAT_001660c0")) (+ "+") (binary_expression "(ulong)(uVar7 >> 0x18) * 4" (call_expression "(ulong)(uVar7 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar7 >> 0x18)" (( "(") (binary_expression "uVar7 >> 0x18" (identifier "uVar7") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);" (assignment_expression "uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4)" (( "(") (binary_expression "&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4" (pointer_expression "&DAT_001654c0" (& "&") (identifier "DAT_001654c0")) (+ "+") (binary_expression "(ulong)(uVar9 & 0xff) * 4" (call_expression "(ulong)(uVar9 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar9 & 0xff)" (( "(") (binary_expression "uVar9 & 0xff" (identifier "uVar9") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);" (assignment_expression "uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4)" (( "(") (binary_expression "&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4" (pointer_expression "&DAT_001658c0" (& "&") (identifier "DAT_001658c0")) (+ "+") (binary_expression "(ulong)(uVar6 >> 8 & 0xff) * 4" (call_expression "(ulong)(uVar6 >> 8 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar6 >> 8 & 0xff)" (( "(") (binary_expression "uVar6 >> 8 & 0xff" (binary_expression "uVar6 >> 8" (identifier "uVar6") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);" (assignment_expression "uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00165cc0" (& "&") (identifier "DAT_00165cc0")) (+ "+") (binary_expression "(ulong)(uVar11 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar11 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar11 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar11 >> 0x10 & 0xff" (binary_expression "uVar11 >> 0x10" (identifier "uVar11") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);" (assignment_expression "uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00165cc0" (& "&") (identifier "DAT_00165cc0")) (+ "+") (binary_expression "(ulong)(uVar6 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar6 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar6 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar6 >> 0x10 & 0xff" (binary_expression "uVar6 >> 0x10" (identifier "uVar6") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);" (assignment_expression "uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4)" (( "(") (binary_expression "&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4" (pointer_expression "&DAT_001658c0" (& "&") (identifier "DAT_001658c0")) (+ "+") (binary_expression "(ulong)(uVar9 >> 8 & 0xff) * 4" (call_expression "(ulong)(uVar9 >> 8 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar9 >> 8 & 0xff)" (( "(") (binary_expression "uVar9 >> 8 & 0xff" (binary_expression "uVar9 >> 8" (identifier "uVar9") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);" (assignment_expression "uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4)" (( "(") (binary_expression "&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4" (pointer_expression "&DAT_001654c0" (& "&") (identifier "DAT_001654c0")) (+ "+") (binary_expression "(ulong)(uVar7 & 0xff) * 4" (call_expression "(ulong)(uVar7 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar7 & 0xff)" (( "(") (binary_expression "uVar7 & 0xff" (identifier "uVar7") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);" (assignment_expression "uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4" (pointer_expression "&DAT_001660c0" (& "&") (identifier "DAT_001660c0")) (+ "+") (binary_expression "(ulong)(uVar11 >> 0x18) * 4" (call_expression "(ulong)(uVar11 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar11 >> 0x18)" (( "(") (binary_expression "uVar11 >> 0x18" (identifier "uVar11") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "*param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);" (assignment_expression "*param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^\n                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4)" (binary_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4)" (binary_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^\n                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4)" (pointer_expression "*(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4)" (( "(") (binary_expression "&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4" (pointer_expression "&DAT_00165cc0" (& "&") (identifier "DAT_00165cc0")) (+ "+") (binary_expression "(ulong)(uVar9 >> 0x10 & 0xff) * 4" (call_expression "(ulong)(uVar9 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar9 >> 0x10 & 0xff)" (( "(") (binary_expression "uVar9 >> 0x10 & 0xff" (binary_expression "uVar9 >> 0x10" (identifier "uVar9") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (^ "^") (pointer_expression "*(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4)" (( "(") (binary_expression "&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4" (pointer_expression "&DAT_001658c0" (& "&") (identifier "DAT_001658c0")) (+ "+") (binary_expression "(ulong)(uVar7 >> 8 & 0xff) * 4" (call_expression "(ulong)(uVar7 >> 8 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar7 >> 8 & 0xff)" (( "(") (binary_expression "uVar7 >> 8 & 0xff" (binary_expression "uVar7 >> 8" (identifier "uVar7") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (pointer_expression "*(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4)" (* "*") (cast_expression "(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4)" (( "(") (binary_expression "&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4" (pointer_expression "&DAT_001660c0" (& "&") (identifier "DAT_001660c0")) (+ "+") (binary_expression "(ulong)(uVar6 >> 0x18) * 4" (call_expression "(ulong)(uVar6 >> 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar6 >> 0x18)" (( "(") (binary_expression "uVar6 >> 0x18" (identifier "uVar6") (>> ">>") (number_literal "0x18")) () ")"))) (* "*") (number_literal "4"))) () ")"))))) (^ "^") (pointer_expression "*(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4)" (* "*") (cast_expression "(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4)" (( "(") (binary_expression "&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4" (pointer_expression "&DAT_001654c0" (& "&") (identifier "DAT_001654c0")) (+ "+") (binary_expression "(ulong)(uVar11 & 0xff) * 4" (call_expression "(ulong)(uVar11 & 0xff)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar11 & 0xff)" (( "(") (binary_expression "uVar11 & 0xff" (identifier "uVar11") (& "&") (number_literal "0xff")) () ")"))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;" (assignment_expression "param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar10 ^ uVar8 ^ uVar12 ^ uVar13" (binary_expression "uVar10 ^ uVar8 ^ uVar12" (binary_expression "uVar10 ^ uVar8" (identifier "uVar10") (^ "^") (identifier "uVar8")) (^ "^") (identifier "uVar12")) (^ "^") (identifier "uVar13"))) (; ";")) (expression_statement "param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;" (assignment_expression "param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar14 ^ uVar15 ^ uVar18 ^ uVar1" (binary_expression "uVar14 ^ uVar15 ^ uVar18" (binary_expression "uVar14 ^ uVar15" (identifier "uVar14") (^ "^") (identifier "uVar15")) (^ "^") (identifier "uVar18")) (^ "^") (identifier "uVar1"))) (; ";")) (expression_statement "param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;" (assignment_expression "param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "uVar2 ^ uVar3 ^ uVar4 ^ uVar5" (binary_expression "uVar2 ^ uVar3 ^ uVar4" (binary_expression "uVar2 ^ uVar3" (identifier "uVar2") (^ "^") (identifier "uVar3")) (^ "^") (identifier "uVar4")) (^ "^") (identifier "uVar5"))) (; ";")) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" (identifier "puVar16") (= "=") (identifier "puVar17")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar19 < (int)(param_1[0xfd] - 1))" (( "(") (binary_expression "iVar19 < (int)(param_1[0xfd] - 1)" (identifier "iVar19") (< "<") (cast_expression "(int)(param_1[0xfd] - 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_1[0xfd] - 1)" (( "(") (binary_expression "param_1[0xfd] - 1" (subscript_expression "param_1[0xfd]" (identifier "param_1") ([ "[") (number_literal "0xfd") (] "]")) (- "-") (number_literal "1")) () ")")))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar12 = *param_2 ^ *puVar17;" (assignment_expression "uVar12 = *param_2 ^ *puVar17" (identifier "uVar12") (= "=") (binary_expression "*param_2 ^ *puVar17" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (^ "^") (pointer_expression "*puVar17" (* "*") (identifier "puVar17")))) (; ";")) (expression_statement "*param_2 = uVar12;" (assignment_expression "*param_2 = uVar12" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar15 = param_2[1] ^ puVar17[1];" (assignment_expression "uVar15 = param_2[1] ^ puVar17[1]" (identifier "uVar15") (= "=") (binary_expression "param_2[1] ^ puVar17[1]" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (^ "^") (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "param_2[1] = uVar15;" (assignment_expression "param_2[1] = uVar15" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "uVar18 = param_2[2] ^ puVar17[2];" (assignment_expression "uVar18 = param_2[2] ^ puVar17[2]" (identifier "uVar18") (= "=") (binary_expression "param_2[2] ^ puVar17[2]" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (^ "^") (subscript_expression "puVar17[2]" (identifier "puVar17") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "param_2[2] = uVar18;" (assignment_expression "param_2[2] = uVar18" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "uVar10 = param_2[3] ^ puVar17[3];" (assignment_expression "uVar10 = param_2[3] ^ puVar17[3]" (identifier "uVar10") (= "=") (binary_expression "param_2[3] ^ puVar17[3]" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (^ "^") (subscript_expression "puVar17[3]" (identifier "puVar17") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8;" (assignment_expression "uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8" (identifier "uVar14") (= "=") (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff]" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (] "]")) (<< "<<") (number_literal "0x18")) (| "|") (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar10 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar10 & 0xff" (identifier "uVar10") (& "&") (number_literal "0xff")) (] "]"))) (| "|") (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar15 >> 0x10 & 0xff" (binary_expression "uVar15 >> 0x10" (identifier "uVar15") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) (] "]")) (<< "<<") (number_literal "0x10"))) (| "|") (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar18 >> 8 & 0xff" (binary_expression "uVar18 >> 8" (identifier "uVar18") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]")) (<< "<<") (number_literal "8")))) (; ";")) (expression_statement "uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8;" (assignment_expression "uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8" (identifier "uVar13") (= "=") (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff]" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar15 >> 0x18" (identifier "uVar15") (>> ">>") (number_literal "0x18")) (] "]")) (<< "<<") (number_literal "0x18")) (| "|") (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar12 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar12 & 0xff" (identifier "uVar12") (& "&") (number_literal "0xff")) (] "]"))) (| "|") (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar18 >> 0x10 & 0xff" (binary_expression "uVar18 >> 0x10" (identifier "uVar18") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) (] "]")) (<< "<<") (number_literal "0x10"))) (| "|") (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar10 >> 8 & 0xff" (binary_expression "uVar10 >> 8" (identifier "uVar10") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]")) (<< "<<") (number_literal "8")))) (; ";")) (expression_statement "uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8;" (assignment_expression "uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8" (identifier "uVar8") (= "=") (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |\n          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |\n          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |\n          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff]" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar18 >> 0x18" (identifier "uVar18") (>> ">>") (number_literal "0x18")) (] "]")) (<< "<<") (number_literal "0x18")) (| "|") (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar15 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar15 & 0xff" (identifier "uVar15") (& "&") (number_literal "0xff")) (] "]"))) (| "|") (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar10 >> 0x10 & 0xff" (binary_expression "uVar10 >> 0x10" (identifier "uVar10") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) (] "]")) (<< "<<") (number_literal "0x10"))) (| "|") (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar12 >> 8 & 0xff" (binary_expression "uVar12 >> 8" (identifier "uVar12") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]")) (<< "<<") (number_literal "8")))) (; ";")) (expression_statement "uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10;" (assignment_expression "uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10" (identifier "uVar10") (= "=") (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |\n           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |\n           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff]" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |\n           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18" (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar15 >> 8 & 0xff" (binary_expression "uVar15 >> 8" (identifier "uVar15") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (] "]")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar10 >> 0x18" (identifier "uVar10") (>> ">>") (number_literal "0x18")) (] "]")) (<< "<<") (number_literal "0x18"))) (| "|") (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar18 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar18 & 0xff" (identifier "uVar18") (& "&") (number_literal "0xff")) (] "]"))) (| "|") (binary_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10" (subscript_expression "(uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff]" (call_expression "(uint)(byte)(&DAT_001665c0)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(&DAT_001665c0)" (( "(") (pointer_expression "&DAT_001665c0" (& "&") (identifier "DAT_001665c0")) () ")"))) ([ "[") (binary_expression "uVar12 >> 0x10 & 0xff" (binary_expression "uVar12 >> 0x10" (identifier "uVar12") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) (] "]")) (<< "<<") (number_literal "0x10")))) (; ";")) (expression_statement "*param_2 = uVar14;" (assignment_expression "*param_2 = uVar14" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "param_2[1] = uVar13;" (assignment_expression "param_2[1] = uVar13" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "param_2[2] = uVar8;" (assignment_expression "param_2[2] = uVar8" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "param_2[3] = uVar10;" (assignment_expression "param_2[3] = uVar10" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "*param_2 = uVar14 ^ puVar17[4];" (assignment_expression "*param_2 = uVar14 ^ puVar17[4]" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "uVar14 ^ puVar17[4]" (identifier "uVar14") (^ "^") (subscript_expression "puVar17[4]" (identifier "puVar17") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "param_2[1] = uVar13 ^ puVar17[5];" (assignment_expression "param_2[1] = uVar13 ^ puVar17[5]" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar13 ^ puVar17[5]" (identifier "uVar13") (^ "^") (subscript_expression "puVar17[5]" (identifier "puVar17") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "param_2[2] = uVar8 ^ puVar17[6];" (assignment_expression "param_2[2] = uVar8 ^ puVar17[6]" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar8 ^ puVar17[6]" (identifier "uVar8") (^ "^") (subscript_expression "puVar17[6]" (identifier "puVar17") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "param_2[3] = uVar10 ^ puVar17[7];" (assignment_expression "param_2[3] = uVar10 ^ puVar17[7]" (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "uVar10 ^ puVar17[7]" (identifier "uVar10") (^ "^") (subscript_expression "puVar17[7]" (identifier "puVar17") ([ "[") (number_literal "7") (] "]")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *ctx,type_2 *block)

{
  type_3 var_12;
  type_3 var_13;
  type_3 var_14;
  type_3 var_15;
  type_3 var_16;
  type_3 var_2;
  type_3 var_3;
  type_3 var_6;
  type_3 var_1;
  type_3 var_5;
  type_3 var_4;
  type_3 var_7;
  type_3 var_8;
  type_3 var_9;
  type_3 var_10;
  type_1 *pAVar16;
  type_1 *pAVar17;
  type_3 var_11;
  int var_17;
  
  pAVar17 = ctx;
  if (1 < ctx->Nr) {
    var_17 = 0;
    pAVar16 = ctx;
    do {
      var_2 = *block ^ pAVar16->keysched[0];
      *block = var_2;
      var_1 = block[1] ^ pAVar16->keysched[1];
      block[1] = var_1;
      var_3 = block[2] ^ pAVar16->keysched[2];
      block[2] = var_3;
      pAVar17 = (type_1 *)(pAVar16->keysched + 4);
      var_4 = block[3] ^ pAVar16->keysched[3];
      var_5 = E0[var_1 >> 0x18];
      var_6 = E3[var_2 & 0xff];
      var_7 = E1[var_3 >> 0x10 & 0xff];
      var_8 = E2[var_4 >> 8 & 0xff];
      var_9 = E0[var_3 >> 0x18];
      var_10 = E3[var_1 & 0xff];
      var_11 = E2[var_2 >> 8 & 0xff];
      var_12 = E1[var_4 >> 0x10 & 0xff];
      var_13 = E1[var_2 >> 0x10 & 0xff];
      var_14 = E2[var_1 >> 8 & 0xff];
      var_15 = E3[var_3 & 0xff];
      var_16 = E0[var_4 >> 0x18];
      *block = E1[var_1 >> 0x10 & 0xff] ^ E2[var_3 >> 8 & 0xff] ^ E0[var_2 >> 0x18] ^
               E3[var_4 & 0xff];
      block[1] = var_5 ^ var_6 ^ var_7 ^ var_8;
      block[2] = var_9 ^ var_10 ^ var_11 ^ var_12;
      block[3] = var_13 ^ var_14 ^ var_15 ^ var_16;
      var_17 = var_17 + 1;
      pAVar16 = pAVar17;
    } while (var_17 < ctx->Nr + -1);
  }
  var_7 = *block ^ pAVar17->keysched[0];
  *block = var_7;
  var_10 = block[1] ^ pAVar17->keysched[1];
  block[1] = var_10;
  var_11 = block[2] ^ pAVar17->keysched[2];
  block[2] = var_11;
  var_5 = block[3] ^ pAVar17->keysched[3];
  var_9 = (type_3)Sbox[var_7 >> 0x18] << 0x18 | (type_3)Sbox[var_5 & 0xff] |
           (type_3)Sbox[var_10 >> 0x10 & 0xff] << 0x10 | (type_3)Sbox[var_11 >> 8 & 0xff] << 8;
  var_8 = (type_3)Sbox[var_10 >> 0x18] << 0x18 | (type_3)Sbox[var_7 & 0xff] |
           (type_3)Sbox[var_11 >> 0x10 & 0xff] << 0x10 | (type_3)Sbox[var_5 >> 8 & 0xff] << 8;
  var_6 = (type_3)Sbox[var_11 >> 0x18] << 0x18 | (type_3)Sbox[var_10 & 0xff] |
          (type_3)Sbox[var_5 >> 0x10 & 0xff] << 0x10 | (type_3)Sbox[var_7 >> 8 & 0xff] << 8;
  var_5 = (type_3)Sbox[var_10 >> 8 & 0xff] << 8 |
           (type_3)Sbox[var_5 >> 0x18] << 0x18 | (type_3)Sbox[var_11 & 0xff] |
           (type_3)Sbox[var_7 >> 0x10 & 0xff] << 0x10;
  *block = var_9;
  block[1] = var_8;
  block[2] = var_6;
  block[3] = var_5;
  *block = var_9 ^ pAVar17->keysched[4];
  block[1] = var_8 ^ pAVar17->keysched[5];
  block[2] = var_6 ^ pAVar17->keysched[6];
  block[3] = var_5 ^ pAVar17->keysched[7];
  return;
}


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

void MASKED(uint *param_1,uint *param_2)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint *puVar16;
  uint *puVar17;
  uint uVar18;
  int iVar19;
  
  puVar17 = param_1;
  if (1 < (int)param_1[0xfd]) {
    iVar19 = 0;
    puVar16 = param_1;
    do {
      uVar6 = *param_2 ^ *puVar16;
      *param_2 = uVar6;
      uVar9 = param_2[1] ^ puVar16[1];
      param_2[1] = uVar9;
      uVar7 = param_2[2] ^ puVar16[2];
      param_2[2] = uVar7;
      puVar17 = puVar16 + 4;
      uVar11 = param_2[3] ^ puVar16[3];
      uVar10 = *(uint *)(&DAT_001660c0 + (ulong)(uVar9 >> 0x18) * 4);
      uVar8 = *(uint *)(&DAT_001654c0 + (ulong)(uVar6 & 0xff) * 4);
      uVar12 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar7 >> 0x10 & 0xff) * 4);
      uVar13 = *(uint *)(&DAT_001658c0 + (ulong)(uVar11 >> 8 & 0xff) * 4);
      uVar14 = *(uint *)(&DAT_001660c0 + (ulong)(uVar7 >> 0x18) * 4);
      uVar15 = *(uint *)(&DAT_001654c0 + (ulong)(uVar9 & 0xff) * 4);
      uVar18 = *(uint *)(&DAT_001658c0 + (ulong)(uVar6 >> 8 & 0xff) * 4);
      uVar1 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar11 >> 0x10 & 0xff) * 4);
      uVar2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar6 >> 0x10 & 0xff) * 4);
      uVar3 = *(uint *)(&DAT_001658c0 + (ulong)(uVar9 >> 8 & 0xff) * 4);
      uVar4 = *(uint *)(&DAT_001654c0 + (ulong)(uVar7 & 0xff) * 4);
      uVar5 = *(uint *)(&DAT_001660c0 + (ulong)(uVar11 >> 0x18) * 4);
      *param_2 = *(uint *)(&DAT_00165cc0 + (ulong)(uVar9 >> 0x10 & 0xff) * 4) ^
                 *(uint *)(&DAT_001658c0 + (ulong)(uVar7 >> 8 & 0xff) * 4) ^
                 *(uint *)(&DAT_001660c0 + (ulong)(uVar6 >> 0x18) * 4) ^
                 *(uint *)(&DAT_001654c0 + (ulong)(uVar11 & 0xff) * 4);
      param_2[1] = uVar10 ^ uVar8 ^ uVar12 ^ uVar13;
      param_2[2] = uVar14 ^ uVar15 ^ uVar18 ^ uVar1;
      param_2[3] = uVar2 ^ uVar3 ^ uVar4 ^ uVar5;
      iVar19 = iVar19 + 1;
      puVar16 = puVar17;
    } while (iVar19 < (int)(param_1[0xfd] - 1));
  }
  uVar12 = *param_2 ^ *puVar17;
  *param_2 = uVar12;
  uVar15 = param_2[1] ^ puVar17[1];
  param_2[1] = uVar15;
  uVar18 = param_2[2] ^ puVar17[2];
  param_2[2] = uVar18;
  uVar10 = param_2[3] ^ puVar17[3];
  uVar14 = (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x18] << 0x18 |
           (uint)(byte)(&DAT_001665c0)[uVar10 & 0xff] |
           (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x10 & 0xff] << 0x10 |
           (uint)(byte)(&DAT_001665c0)[uVar18 >> 8 & 0xff] << 8;
  uVar13 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 0x18] << 0x18 |
           (uint)(byte)(&DAT_001665c0)[uVar12 & 0xff] |
           (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x10 & 0xff] << 0x10 |
           (uint)(byte)(&DAT_001665c0)[uVar10 >> 8 & 0xff] << 8;
  uVar8 = (uint)(byte)(&DAT_001665c0)[uVar18 >> 0x18] << 0x18 |
          (uint)(byte)(&DAT_001665c0)[uVar15 & 0xff] |
          (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x10 & 0xff] << 0x10 |
          (uint)(byte)(&DAT_001665c0)[uVar12 >> 8 & 0xff] << 8;
  uVar10 = (uint)(byte)(&DAT_001665c0)[uVar15 >> 8 & 0xff] << 8 |
           (uint)(byte)(&DAT_001665c0)[uVar10 >> 0x18] << 0x18 |
           (uint)(byte)(&DAT_001665c0)[uVar18 & 0xff] |
           (uint)(byte)(&DAT_001665c0)[uVar12 >> 0x10 & 0xff] << 0x10;
  *param_2 = uVar14;
  param_2[1] = uVar13;
  param_2[2] = uVar8;
  param_2[3] = uVar10;
  *param_2 = uVar14 ^ puVar17[4];
  param_2[1] = uVar13 ^ puVar17[5];
  param_2[2] = uVar8 ^ puVar17[6];
  param_2[3] = uVar10 ^ puVar17[7];
  return;
}

