
void __regparm3 poly1305_feed_chunk(poly1305 *ctx,uchar *chunk,int len)

{
  int iVar1;
  uint uVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  ulonglong uVar5;
  ulonglong uVar6;
  longlong lVar7;
  byte bVar8;
  longlong lVar9;
  longlong lVar10;
  longlong lVar11;
  longlong lVar12;
  int iVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  uint uVar29;
  int in_GS_OFFSET;
  uint local_a0;
  uint local_84;
  uint local_74;
  int local_60;
  uint local_5c;
  uint local_54;
  uint local_4c;
  bigval c;
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  c.w[0] = 0;
  c.w[1] = 0;
  c.w[2] = 0;
  c.w[3] = 0;
  c.w[4] = 0;
  bigval_import_le(&c,chunk,len);
  iVar13 = len + 3;
  if (-1 < len) {
    iVar13 = len;
  }
  bVar8 = (byte)(len >> 0x1f);
  c.w[iVar13 >> 2] =
       c.w[iVar13 >> 2] | 1 << ((((char)len + (bVar8 >> 6) & 3) - (bVar8 >> 6)) * '\b' & 0x1f);
  bigval_add(&c,&c,&ctx->h);
  uVar16 = (ctx->r).w[2];
  uVar28 = (ctx->r).w[0];
  uVar14 = (ctx->r).w[3];
  uVar2 = (ctx->r).w[1];
  uVar15 = (ctx->r).w[4];
  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[0] + ((ulonglong)uVar28 * (ulonglong)c.w[0] >> 0x20);
  uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[0] + (uVar3 >> 0x20);
  uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[0] + (uVar4 >> 0x20);
  uVar6 = (ulonglong)c.w[0] * (ulonglong)uVar15 + (uVar5 >> 0x20);
  lVar9 = (ulonglong)uVar28 * (ulonglong)c.w[1] + (uVar3 & 0xffffffff);
  uVar26 = (uint)((ulonglong)lVar9 >> 0x20);
  local_74 = (uint)uVar4;
  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[1] +
          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);
  uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);
  uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[1] + (uVar6 & 0xffffffff) + (uVar4 >> 0x20);
  uVar6 = (ulonglong)c.w[1] * (ulonglong)uVar15 + (uVar6 >> 0x20) + (uVar5 >> 0x20);
  lVar10 = (ulonglong)uVar28 * (ulonglong)c.w[2] + (uVar3 & 0xffffffff);
  uVar26 = (uint)((ulonglong)lVar10 >> 0x20);
  local_74 = (uint)uVar4;
  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[2] +
          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);
  uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);
  uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[2] + (uVar6 & 0xffffffff) + (uVar4 >> 0x20);
  uVar6 = (ulonglong)uVar15 * (ulonglong)c.w[2] + (uVar6 >> 0x20) + (uVar5 >> 0x20);
  lVar11 = (ulonglong)uVar28 * (ulonglong)c.w[3] + (uVar3 & 0xffffffff);
  uVar26 = (uint)((ulonglong)lVar11 >> 0x20);
  local_74 = (uint)uVar4;
  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[3] +
          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);
  uVar5 = (ulonglong)uVar16 * (ulonglong)c.w[3] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);
  uVar4 = (ulonglong)uVar14 * (ulonglong)c.w[3] + (uVar6 & 0xffffffff) + (uVar5 >> 0x20);
  uVar6 = (ulonglong)uVar15 * (ulonglong)c.w[3] + (uVar6 >> 0x20) + (uVar4 >> 0x20);
  lVar7 = (ulonglong)uVar28 * (ulonglong)c.w[4] + (uVar3 & 0xffffffff);
  uVar21 = (uint)lVar7;
  uVar26 = (uint)((ulonglong)lVar7 >> 0x20);
  local_74 = (uint)uVar5;
  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[4] +
          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);
  uVar26 = (uint)uVar3;
  lVar12 = (ulonglong)uVar16 * (ulonglong)c.w[4] + (uVar4 & 0xffffffff) + (uVar3 >> 0x20);
  uVar22 = (uint)lVar12;
  local_60 = (int)(uVar6 >> 0x20);
  lVar7 = (ulonglong)uVar14 * (ulonglong)c.w[4] + (uVar6 & 0xffffffff);
  uVar16 = (uint)lVar7;
  local_a0 = (uint)((ulonglong)lVar12 >> 0x20);
  uVar23 = local_a0 + uVar16;
  uVar16 = local_60 + uVar15 * c.w[4] +
           (int)((ulonglong)lVar7 >> 0x20) + (uint)CARRY4(local_a0,uVar16);
  uVar14 = uVar21 >> 2;
  uVar15 = uVar14 | uVar26 << 0x1e;
  uVar2 = uVar15 * 5;
  uVar27 = (uVar26 & 3) + (uint)CARRY4(uVar14 * 4,uVar15);
  uVar15 = uVar26 >> 2 | uVar22 << 0x1e;
  uVar14 = uVar15 * 5;
  uVar24 = uVar27 + uVar14;
  uVar26 = (uVar22 & 3) + (uint)CARRY4(uVar15,(uVar26 >> 2) * 4) + (uint)CARRY4(uVar27,uVar14);
  uVar15 = uVar22 >> 2 | uVar23 * 0x40000000;
  uVar14 = uVar15 * 5;
  local_84 = (uint)((ulonglong)uVar28 * (ulonglong)c.w[0]);
  uVar27 = uVar26 + uVar14;
  uVar19 = (uVar23 & 3) + (uint)CARRY4(uVar15,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar26,uVar14);
  uVar22 = uVar23 >> 2 | uVar16 * 0x40000000;
  uVar15 = uVar22 * 5;
  uVar17 = uVar19 + uVar15;
  uVar18 = local_84 + uVar2;
  uVar28 = (uint)CARRY4(local_84,uVar2);
  local_5c = (uint)lVar9;
  uVar14 = local_5c + uVar28;
  uVar25 = uVar14 + uVar24;
  local_54 = (uint)lVar10;
  uVar28 = (uint)CARRY4(local_5c,uVar28) + (uint)CARRY4(uVar14,uVar24);
  uVar14 = uVar28 + uVar27;
  local_4c = (uint)lVar11;
  uVar29 = uVar14 + local_54;
  uVar20 = (uint)CARRY4(uVar28,uVar27) + (uint)CARRY4(uVar14,local_54);
  uVar24 = uVar17 + local_4c;
  uVar27 = uVar20 + uVar24;
  uVar26 = (uVar16 >> 4) * 0x19;
  uVar28 = (uint)CARRY4(uVar26,uVar18);
  uVar14 = (uint)CARRY4(uVar28,uVar25);
  uVar2 = (uint)CARRY4(uVar14,uVar29);
  (ctx->h).w[0] = uVar26 + uVar18;
  (ctx->h).w[2] = uVar14 + uVar29;
  (ctx->h).w[1] = uVar28 + uVar25;
  (ctx->h).w[3] = uVar2 + uVar27;
  (ctx->h).w[4] =
       (uVar16 >> 2 & 3) * 5 + (uVar21 & 3) +
       (uVar16 & 3) + (uint)CARRY4(uVar22,(uVar23 >> 2) * 4) + (uint)CARRY4(uVar19,uVar15) +
       (uint)CARRY4(uVar17,local_4c) + (uint)CARRY4(uVar20,uVar24) + (uint)CARRY4(uVar2,uVar27);
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



void __regparm3 FUN_00043cb0(int param_1,undefined4 param_2,int param_3)

{
  uint uVar1;
  ulonglong uVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  ulonglong uVar5;
  longlong lVar6;
  byte bVar7;
  longlong lVar8;
  longlong lVar9;
  longlong lVar10;
  longlong lVar11;
  int iVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  int in_GS_OFFSET;
  uint local_a0;
  uint local_84;
  uint local_74;
  int local_60;
  uint local_5c;
  uint local_54;
  uint local_4c;
  uint local_34 [9];
  
  local_34[5] = *(int *)(in_GS_OFFSET + 0x14);
  local_34[0] = 0;
  local_34[1] = 0;
  local_34[2] = 0;
  local_34[3] = 0;
  local_34[4] = 0;
  FUN_00043c70();
  iVar12 = param_3 + 3;
  if (-1 < param_3) {
    iVar12 = param_3;
  }
  bVar7 = (byte)(param_3 >> 0x1f);
  local_34[iVar12 >> 2] =
       local_34[iVar12 >> 2] |
       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f);
  FUN_000439e0();
  uVar15 = *(uint *)(param_1 + 0x18);
  uVar27 = *(uint *)(param_1 + 0x10);
  uVar13 = *(uint *)(param_1 + 0x1c);
  uVar1 = *(uint *)(param_1 + 0x14);
  uVar14 = *(uint *)(param_1 + 0x20);
  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +
          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20);
  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20);
  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20);
  uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20);
  lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff);
  uVar25 = (uint)((ulonglong)lVar8 >> 0x20);
  local_74 = (uint)uVar3;
  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +
          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);
  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);
  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);
  uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20);
  lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff);
  uVar25 = (uint)((ulonglong)lVar9 >> 0x20);
  local_74 = (uint)uVar3;
  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +
          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);
  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);
  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);
  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20);
  lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff);
  uVar25 = (uint)((ulonglong)lVar10 >> 0x20);
  local_74 = (uint)uVar3;
  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +
          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);
  uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);
  uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20);
  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20);
  lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff);
  uVar20 = (uint)lVar6;
  uVar25 = (uint)((ulonglong)lVar6 >> 0x20);
  local_74 = (uint)uVar4;
  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +
          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);
  uVar25 = (uint)uVar2;
  lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20);
  uVar21 = (uint)lVar11;
  local_60 = (int)(uVar5 >> 0x20);
  lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff);
  uVar15 = (uint)lVar6;
  local_a0 = (uint)((ulonglong)lVar11 >> 0x20);
  uVar22 = local_a0 + uVar15;
  uVar15 = local_60 + uVar14 * local_34[4] +
           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15);
  uVar13 = uVar20 >> 2;
  uVar14 = uVar13 | uVar25 << 0x1e;
  uVar1 = uVar14 * 5;
  uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14);
  uVar14 = uVar25 >> 2 | uVar21 << 0x1e;
  uVar13 = uVar14 * 5;
  uVar23 = uVar26 + uVar13;
  uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13);
  uVar14 = uVar21 >> 2 | uVar22 * 0x40000000;
  uVar13 = uVar14 * 5;
  local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0]);
  uVar26 = uVar25 + uVar13;
  uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13);
  uVar21 = uVar22 >> 2 | uVar15 * 0x40000000;
  uVar14 = uVar21 * 5;
  uVar16 = uVar18 + uVar14;
  uVar17 = local_84 + uVar1;
  uVar27 = (uint)CARRY4(local_84,uVar1);
  local_5c = (uint)lVar8;
  uVar13 = local_5c + uVar27;
  uVar24 = uVar13 + uVar23;
  local_54 = (uint)lVar9;
  uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23);
  uVar13 = uVar27 + uVar26;
  local_4c = (uint)lVar10;
  uVar28 = uVar13 + local_54;
  uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54);
  uVar23 = uVar16 + local_4c;
  uVar26 = uVar19 + uVar23;
  uVar25 = (uVar15 >> 4) * 0x19;
  uVar27 = (uint)CARRY4(uVar25,uVar17);
  uVar13 = (uint)CARRY4(uVar27,uVar24);
  uVar1 = (uint)CARRY4(uVar13,uVar28);
  *(uint *)(param_1 + 0x24) = uVar25 + uVar17;
  *(uint *)(param_1 + 0x2c) = uVar13 + uVar28;
  *(uint *)(param_1 + 0x28) = uVar27 + uVar24;
  *(uint *)(param_1 + 0x30) = uVar1 + uVar26;
  *(uint *)(param_1 + 0x34) =
       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +
       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +
       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26);
  if (local_34[5] == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0006dad0();
}


PUSH EBP
PUSH EDI
MOV EDI,EAX
PUSH ESI
PUSH EBX
MOV EBX,ECX
SUB ESP,0x9c
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x8c],EAX
XOR EAX,EAX
LEA ESI,[ESP + 0x78]
MOV dword ptr [ESP + 0x78],0x0
MOV EAX,ESI
MOV dword ptr [ESP + 0x7c],0x0
MOV dword ptr [ESP + 0x80],0x0
MOV dword ptr [ESP + 0x84],0x0
MOV dword ptr [ESP + 0x88],0x0
CALL 0x00043c70
TEST EBX,EBX
LEA EAX,[EBX + 0x3]
MOV EDX,EBX
CMOVNS EAX,EBX
SAR EDX,0x1f
SHR EDX,0x1e
LEA ECX,[EBX + EDX*0x1]
SAR EAX,0x2
AND ECX,0x3
SUB ECX,EDX
MOV EDX,0x1
SHL ECX,0x3
SHL EDX,CL
LEA ECX,[EDI + 0x24]
OR dword ptr [ESP + EAX*0x4 + 0x78],EDX
MOV EDX,ESI
MOV EAX,ESI
CALL 0x000439e0
MOV EAX,dword ptr [EDI + 0x18]
MOV EBX,dword ptr [EDI + 0x10]
MOV dword ptr [ESP + 0x6c],EDI
MOV ECX,dword ptr [ESP + 0x78]
MOV EDX,dword ptr [EDI + 0x1c]
MOV ESI,dword ptr [EDI + 0x14]
MOV EBP,dword ptr [ESP + 0x7c]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [EDI + 0x20]
MOV dword ptr [ESP + 0x10],EDX
MOV dword ptr [ESP + 0x20],ESI
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,EBX
MUL ECX
MOV dword ptr [ESP + 0x68],EBX
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,ESI
MOV dword ptr [ESP + 0x2c],EDX
MUL ECX
MOV EDI,dword ptr [ESP + 0x2c]
MOV ESI,EDI
XOR EDI,EDI
ADD ESI,EAX
MOV EAX,dword ptr [ESP + 0x8]
ADC EDI,EDX
MOV dword ptr [ESP + 0x30],ESI
MUL ECX
MOV dword ptr [ESP + 0x34],EDI
MOV EDI,EDX
MOV EDX,dword ptr [ESP + 0x34]
MOV ESI,EAX
MOV EAX,EDX
XOR EDX,EDX
ADD EAX,ESI
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [ESP + 0x10]
ADC EDX,EDI
MOV dword ptr [ESP + 0x3c],EDX
MUL ECX
MOV EDI,EDX
MOV EDX,dword ptr [ESP + 0x3c]
MOV ESI,EAX
MOV EAX,EDX
XOR EDX,EDX
ADD EAX,ESI
ADC EDX,EDI
MOV EBX,EAX
MOV EAX,ECX
XOR EDI,EDI
MOV ESI,EDX
MUL dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x48],EBX
MOV EBX,EDI
MOV ECX,ESI
ADD ECX,EAX
MOV EAX,dword ptr [ESP + 0x68]
ADC EBX,EDX
MOV dword ptr [ESP + 0x40],ECX
MUL EBP
MOV dword ptr [ESP + 0x44],EBX
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0x30]
MOV EBX,EDX
XOR EDX,EDX
MOV EDI,EDX
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x20]
ADD ESI,ECX
ADC EDI,EBX
MUL EBP
MOV ECX,ESI
MOV EBX,EDI
MOV dword ptr [ESP + 0x50],ECX
XOR ECX,ECX
MOV dword ptr [ESP + 0x54],EBX
MOV EDI,EDX
MOV EDX,ECX
MOV ECX,dword ptr [ESP + 0x38]
MOV ESI,EAX
MOV EAX,EBX
XOR EBX,EBX
ADD EAX,ECX
ADC EDX,EBX
ADD EAX,ESI
MOV ESI,dword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x8]
ADC EDX,EDI
XOR EDI,EDI
MOV dword ptr [ESP + 0x34],EDX
MUL EBP
MOV ECX,EDX
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x10]
ADD EDX,ESI
ADC ECX,EDI
MOV EDI,dword ptr [ESP + 0x34]
MOV ESI,EDI
XOR EDI,EDI
MOV EBX,ESI
MOV ESI,EDI
ADD EBX,EDX
ADC ESI,ECX
MUL EBP
XOR EDI,EDI
MOV dword ptr [ESP + 0x38],EBX
MOV dword ptr [ESP + 0x3c],ESI
MOV ESI,dword ptr [ESP + 0x40]
MOV ECX,EDX
MOV EDX,EAX
MOV EAX,EBP
ADD EDX,ESI
ADC ECX,EDI
MOV EDI,dword ptr [ESP + 0x3c]
MOV ESI,EDI
XOR EDI,EDI
ADD ESI,EDX
ADC EDI,ECX
MUL dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x48],ESI
MOV EBX,EDX
MOV EDX,dword ptr [ESP + 0x44]
MOV ECX,EAX
MOV EAX,EDX
XOR EDX,EDX
ADD EAX,ECX
MOV ECX,EDI
ADC EDX,EBX
XOR EBP,EBP
ADD ECX,EAX
MOV EAX,dword ptr [ESP + 0x68]
MOV EBX,EBP
MOV dword ptr [ESP + 0x40],ECX
ADC EBX,EDX
MUL dword ptr [ESP + 0x80]
MOV dword ptr [ESP + 0x44],EBX
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0x30]
MOV EBX,EDX
XOR EDX,EDX
ADD EAX,ECX
ADC EDX,EBX
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0x20]
MOV EBX,EDX
MUL dword ptr [ESP + 0x80]
MOV dword ptr [ESP + 0x58],ECX
MOV ECX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x5c],EBX
MOV ESI,EAX
MOV EAX,EBX
MOV EDI,EDX
XOR EBX,EBX
XOR EDX,EDX
ADD EAX,ECX
ADC EDX,EBX
ADD EAX,ESI
MOV ESI,dword ptr [ESP + 0x48]
ADC EDX,EDI
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x8]
XOR EDI,EDI
MOV dword ptr [ESP + 0x34],EDX
MUL dword ptr [ESP + 0x80]
MOV ECX,EDX
MOV EDX,EAX
ADD EDX,ESI
ADC ECX,EDI
MOV EDI,dword ptr [ESP + 0x34]
MOV ESI,EDI
XOR EDI,EDI
MOV EBX,ESI
MOV ESI,EDI
ADD EBX,EDX
ADC ESI,ECX
MOV dword ptr [ESP + 0x38],EBX
XOR EDI,EDI
MOV dword ptr [ESP + 0x3c],ESI
MOV EAX,dword ptr [ESP + 0x10]
MUL dword ptr [ESP + 0x80]
MOV ESI,dword ptr [ESP + 0x40]
MOV EBP,dword ptr [ESP + 0x3c]
MOV ECX,EDX
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x18]
ADD EDX,ESI
ADC ECX,EDI
MOV EDI,EBP
XOR EBP,EBP
MOV EBX,EDI
MOV ESI,EBP
ADD EBX,EDX
ADC ESI,ECX
MUL dword ptr [ESP + 0x80]
MOV dword ptr [ESP + 0x40],EBX
MOV EBP,EDX
MOV EDX,dword ptr [ESP + 0x44]
MOV EDI,EAX
MOV EAX,EDX
XOR EDX,EDX
ADD EDI,EAX
MOV EAX,dword ptr [ESP + 0x68]
ADC EBP,EDX
XOR EDX,EDX
MOV ECX,EDX
MOV EDX,ESI
ADD EDX,EDI
ADC ECX,EBP
MOV dword ptr [ESP + 0x48],EDX
MUL dword ptr [ESP + 0x84]
MOV dword ptr [ESP + 0x4c],ECX
MOV EBP,dword ptr [ESP + 0x4c]
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0x30]
MOV EBX,EDX
XOR EDX,EDX
MOV EDI,EDX
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x20]
ADD ESI,ECX
ADC EDI,EBX
MUL dword ptr [ESP + 0x84]
MOV ECX,ESI
MOV EBX,EDI
MOV dword ptr [ESP + 0x60],ECX
MOV ECX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x64],EBX
MOV ESI,EAX
MOV EAX,EBX
MOV EDI,EDX
XOR EBX,EBX
XOR EDX,EDX
ADD EAX,ECX
ADC EDX,EBX
MOV ECX,EDX
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x8]
ADD EDX,ESI
MOV ESI,dword ptr [ESP + 0x40]
ADC ECX,EDI
MOV dword ptr [ESP + 0x30],EDX
MUL dword ptr [ESP + 0x84]
XOR EDI,EDI
MOV dword ptr [ESP + 0x34],ECX
MOV ECX,EDX
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x10]
ADD EDX,ESI
ADC ECX,EDI
MOV EDI,dword ptr [ESP + 0x34]
MOV ESI,EDI
XOR EDI,EDI
MOV EBX,ESI
MOV ESI,EDI
MOV EDI,dword ptr [ESP + 0x48]
ADD EBX,EDX
ADC ESI,ECX
MUL dword ptr [ESP + 0x84]
MOV dword ptr [ESP + 0x38],EBX
XOR EBX,EBX
MOV dword ptr [ESP + 0x3c],ESI
MOV ESI,dword ptr [ESP + 0x3c]
ADD EAX,EDI
MOV EDI,EBP
ADC EDX,EBX
MOV EBX,ESI
XOR ESI,ESI
ADD EBX,EAX
ADC ESI,EDX
MOV dword ptr [ESP + 0x40],EBX
XOR EBP,EBP
MOV dword ptr [ESP + 0x44],ESI
MOV EAX,dword ptr [ESP + 0x18]
MUL dword ptr [ESP + 0x84]
MOV ESI,dword ptr [ESP + 0x30]
MOV ECX,EDX
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x68]
ADD EDX,EDI
ADC ECX,EBP
MOV EBP,dword ptr [ESP + 0x44]
MOV EDI,EBP
XOR EBP,EBP
ADD EDI,EDX
ADC EBP,ECX
MUL dword ptr [ESP + 0x88]
MOV dword ptr [ESP + 0x48],EDI
XOR EDI,EDI
MOV dword ptr [ESP + 0x4c],EBP
ADD ESI,EAX
MOV EAX,dword ptr [ESP + 0x20]
ADC EDI,EDX
MUL dword ptr [ESP + 0x88]
MOV dword ptr [ESP + 0x68],ESI
MOV ESI,EDI
XOR EDI,EDI
MOV ECX,EAX
MOV EAX,ESI
MOV ESI,dword ptr [ESP + 0x38]
MOV EBX,EDX
MOV EDX,EDI
XOR EDI,EDI
ADD EAX,ESI
ADC EDX,EDI
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x8]
ADD ESI,ECX
MOV EDI,EDX
ADC EDI,EBX
MUL dword ptr [ESP + 0x88]
MOV EBX,ESI
MOV dword ptr [ESP + 0x20],ESI
MOV ESI,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x24],EDI
XOR EDI,EDI
MOV ECX,EDX
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x10]
ADD EDX,ESI
ADC ECX,EDI
MOV EDI,dword ptr [ESP + 0x24]
MOV ESI,EDI
XOR EDI,EDI
ADD ESI,EDX
ADC EDI,ECX
MUL dword ptr [ESP + 0x88]
MOV dword ptr [ESP + 0x8],ESI
MOV EBP,ESI
MOV ESI,dword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0xc],EDI
XOR EDI,EDI
MOV ECX,EDX
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x4c]
ADD EDX,ESI
ADC ECX,EDI
MOV EDI,dword ptr [ESP + 0xc]
MOV ESI,EDI
XOR EDI,EDI
ADD ESI,EDX
MOV EDX,dword ptr [ESP + 0x18]
ADC EDI,ECX
IMUL EDX,dword ptr [ESP + 0x88]
MOV dword ptr [ESP + 0x10],ESI
ADD EAX,EDX
MOV EDX,EBX
LEA ESI,[EAX + EDI*0x1]
MOV EAX,dword ptr [ESP + 0x68]
SHL EDX,0x1e
MOV dword ptr [ESP + 0x8],ESI
SHR EAX,0x2
OR EAX,EDX
XOR EDX,EDX
MOV ESI,EAX
MOV EDI,EDX
SHL ESI,0x2
SHLD EDI,EAX,0x2
ADD ESI,EAX
ADC EDI,EDX
MOV EDX,EBP
SHR EBX,0x2
MOV dword ptr [ESP + 0x30],ESI
SHL EDX,0x1e
MOV ECX,EDI
OR EBX,EDX
XOR EDX,EDX
MOV ESI,EDX
MOV EAX,EBX
SHLD ESI,EBX,0x2
SHL EBX,0x2
ADD EAX,EBX
MOV EBX,dword ptr [ESP + 0x10]
ADC EDX,ESI
MOV ESI,ECX
XOR EDI,EDI
ADD ESI,EAX
ADC EDI,EDX
SHL EBX,0x1e
XOR EDX,EDX
MOV dword ptr [ESP + 0x18],ESI
SHR EBP,0x2
OR EBP,EBX
MOV EBX,EDX
MOV ECX,EBP
MOV EAX,EBP
SHLD EBX,EBP,0x2
SHL ECX,0x2
ADD EAX,ECX
MOV ECX,dword ptr [ESP + 0x28]
ADC EDX,EBX
XOR ESI,ESI
MOV EBX,dword ptr [ESP + 0x10]
ADD EDI,EAX
MOV EBP,ESI
MOV dword ptr [ESP + 0x20],EDI
ADC EBP,EDX
MOV EDX,dword ptr [ESP + 0x8]
SHR EBX,0x2
MOV EAX,EBX
MOV EDI,EBP
SHL EDX,0x1e
OR EAX,EDX
XOR EDX,EDX
MOV EBX,EAX
MOV ESI,EDX
SHL EBX,0x2
SHLD ESI,EAX,0x2
ADD EAX,EBX
MOV EBX,EDI
ADC EDX,ESI
XOR EBP,EBP
ADD EBX,EAX
MOV EAX,dword ptr [ESP + 0x30]
MOV ESI,EBP
MOV dword ptr [ESP + 0x10],EBX
ADC ESI,EDX
XOR EBX,EBX
XOR EDX,EDX
MOV dword ptr [ESP + 0x14],ESI
MOV ESI,EBX
MOV EBX,ECX
MOV ECX,dword ptr [ESP + 0x20]
ADD EBX,EAX
ADC ESI,EDX
XOR EDX,EDX
XOR EDI,EDI
MOV dword ptr [ESP + 0x28],EBX
MOV EAX,ESI
MOV ESI,dword ptr [ESP + 0x50]
ADD ESI,EAX
MOV EAX,dword ptr [ESP + 0x18]
ADC EDI,EDX
XOR EDX,EDX
ADD ESI,EAX
MOV EAX,dword ptr [ESP + 0x58]
ADC EDI,EDX
MOV dword ptr [ESP + 0x30],ESI
XOR EBX,EBX
MOV ESI,EDI
MOV dword ptr [ESP + 0x34],EDI
XOR EDI,EDI
MOV EDX,EDI
MOV EDI,ESI
ADD EDI,ECX
MOV EBP,EDX
MOV ECX,dword ptr [ESP + 0x60]
ADC EBP,EBX
XOR EDX,EDX
ADD EDI,EAX
MOV EAX,dword ptr [ESP + 0x10]
ADC EBP,EDX
XOR EBX,EBX
XOR EDX,EDX
ADD EAX,ECX
MOV ECX,EBP
ADC EDX,EBX
XOR EBX,EBX
ADD ECX,EAX
MOV EAX,dword ptr [ESP + 0x8]
ADC EBX,EDX
MOV dword ptr [ESP + 0x18],ECX
XOR EDX,EDX
SHR EAX,0x4
MOV dword ptr [ESP + 0x1c],EBX
XOR EBX,EBX
LEA EAX,[EAX + EAX*0x4]
LEA ECX,[EAX + EAX*0x4]
MOV EAX,dword ptr [ESP + 0x28]
ADD ECX,EAX
MOV EAX,dword ptr [ESP + 0x30]
ADC EBX,EDX
MOV dword ptr [ESP + 0x20],ECX
XOR EDX,EDX
MOV ECX,EBX
MOV dword ptr [ESP + 0x24],EBX
XOR EBX,EBX
MOV ESI,EBX
MOV EBX,ECX
ADD EBX,EAX
ADC ESI,EDX
XOR EDX,EDX
MOV dword ptr [ESP + 0x28],EBX
MOV ECX,ESI
MOV EBX,EDX
XOR EDX,EDX
MOV dword ptr [ESP + 0x2c],ESI
ADD ECX,EDI
MOV ESI,dword ptr [ESP + 0x18]
ADC EBX,EDX
XOR EDI,EDI
XOR EDX,EDX
MOV EAX,EBX
ADD EAX,ESI
MOV ESI,dword ptr [ESP + 0x20]
ADC EDX,EDI
MOV EDI,dword ptr [ESP + 0x6c]
MOV dword ptr [EDI + 0x24],ESI
MOV ESI,dword ptr [ESP + 0x28]
MOV dword ptr [EDI + 0x2c],ECX
MOV dword ptr [EDI + 0x28],ESI
MOV dword ptr [EDI + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0x68]
SHR EAX,0x2
AND EAX,0x3
AND ECX,0x3
LEA EAX,[EAX + EAX*0x4]
ADD EAX,ECX
MOV ECX,dword ptr [ESP + 0x14]
ADD EAX,ECX
MOV ECX,dword ptr [ESP + 0x1c]
ADD EAX,ECX
ADD EAX,EDX
MOV dword ptr [EDI + 0x34],EAX
MOV EAX,dword ptr [ESP + 0x8c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x000442ef
ADD ESP,0x9c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CALL 0x0006dad0
(translation_unit "void __regparm3 FUN_00043cb0(int param_1,undefined4 param_2,int param_3)\n\n{\n  uint uVar1;\n  ulonglong uVar2;\n  ulonglong uVar3;\n  ulonglong uVar4;\n  ulonglong uVar5;\n  longlong lVar6;\n  byte bVar7;\n  longlong lVar8;\n  longlong lVar9;\n  longlong lVar10;\n  longlong lVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint uVar28;\n  int in_GS_OFFSET;\n  uint local_a0;\n  uint local_84;\n  uint local_74;\n  int local_60;\n  uint local_5c;\n  uint local_54;\n  uint local_4c;\n  uint local_34 [9];\n  \n  local_34[5] = *(int *)(in_GS_OFFSET + 0x14);\n  local_34[0] = 0;\n  local_34[1] = 0;\n  local_34[2] = 0;\n  local_34[3] = 0;\n  local_34[4] = 0;\n  FUN_00043c70();\n  iVar12 = param_3 + 3;\n  if (-1 < param_3) {\n    iVar12 = param_3;\n  }\n  bVar7 = (byte)(param_3 >> 0x1f);\n  local_34[iVar12 >> 2] =\n       local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f);\n  FUN_000439e0();\n  uVar15 = *(uint *)(param_1 + 0x18);\n  uVar27 = *(uint *)(param_1 + 0x10);\n  uVar13 = *(uint *)(param_1 + 0x1c);\n  uVar1 = *(uint *)(param_1 + 0x14);\n  uVar14 = *(uint *)(param_1 + 0x20);\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20);\n  lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar9 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar10 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20);\n  lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff);\n  uVar20 = (uint)lVar6;\n  uVar25 = (uint)((ulonglong)lVar6 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar25 = (uint)uVar2;\n  lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar21 = (uint)lVar11;\n  local_60 = (int)(uVar5 >> 0x20);\n  lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff);\n  uVar15 = (uint)lVar6;\n  local_a0 = (uint)((ulonglong)lVar11 >> 0x20);\n  uVar22 = local_a0 + uVar15;\n  uVar15 = local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15);\n  uVar13 = uVar20 >> 2;\n  uVar14 = uVar13 | uVar25 << 0x1e;\n  uVar1 = uVar14 * 5;\n  uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14);\n  uVar14 = uVar25 >> 2 | uVar21 << 0x1e;\n  uVar13 = uVar14 * 5;\n  uVar23 = uVar26 + uVar13;\n  uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13);\n  uVar14 = uVar21 >> 2 | uVar22 * 0x40000000;\n  uVar13 = uVar14 * 5;\n  local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0]);\n  uVar26 = uVar25 + uVar13;\n  uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13);\n  uVar21 = uVar22 >> 2 | uVar15 * 0x40000000;\n  uVar14 = uVar21 * 5;\n  uVar16 = uVar18 + uVar14;\n  uVar17 = local_84 + uVar1;\n  uVar27 = (uint)CARRY4(local_84,uVar1);\n  local_5c = (uint)lVar8;\n  uVar13 = local_5c + uVar27;\n  uVar24 = uVar13 + uVar23;\n  local_54 = (uint)lVar9;\n  uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23);\n  uVar13 = uVar27 + uVar26;\n  local_4c = (uint)lVar10;\n  uVar28 = uVar13 + local_54;\n  uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54);\n  uVar23 = uVar16 + local_4c;\n  uVar26 = uVar19 + uVar23;\n  uVar25 = (uVar15 >> 4) * 0x19;\n  uVar27 = (uint)CARRY4(uVar25,uVar17);\n  uVar13 = (uint)CARRY4(uVar27,uVar24);\n  uVar1 = (uint)CARRY4(uVar13,uVar28);\n  *(uint *)(param_1 + 0x24) = uVar25 + uVar17;\n  *(uint *)(param_1 + 0x2c) = uVar13 + uVar28;\n  *(uint *)(param_1 + 0x28) = uVar27 + uVar24;\n  *(uint *)(param_1 + 0x30) = uVar1 + uVar26;\n  *(uint *)(param_1 + 0x34) =\n       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26);\n  if (local_34[5] == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0006dad0();\n}\n\n" (function_definition "void __regparm3 FUN_00043cb0(int param_1,undefined4 param_2,int param_3)\n\n{\n  uint uVar1;\n  ulonglong uVar2;\n  ulonglong uVar3;\n  ulonglong uVar4;\n  ulonglong uVar5;\n  longlong lVar6;\n  byte bVar7;\n  longlong lVar8;\n  longlong lVar9;\n  longlong lVar10;\n  longlong lVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint uVar28;\n  int in_GS_OFFSET;\n  uint local_a0;\n  uint local_84;\n  uint local_74;\n  int local_60;\n  uint local_5c;\n  uint local_54;\n  uint local_4c;\n  uint local_34 [9];\n  \n  local_34[5] = *(int *)(in_GS_OFFSET + 0x14);\n  local_34[0] = 0;\n  local_34[1] = 0;\n  local_34[2] = 0;\n  local_34[3] = 0;\n  local_34[4] = 0;\n  FUN_00043c70();\n  iVar12 = param_3 + 3;\n  if (-1 < param_3) {\n    iVar12 = param_3;\n  }\n  bVar7 = (byte)(param_3 >> 0x1f);\n  local_34[iVar12 >> 2] =\n       local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f);\n  FUN_000439e0();\n  uVar15 = *(uint *)(param_1 + 0x18);\n  uVar27 = *(uint *)(param_1 + 0x10);\n  uVar13 = *(uint *)(param_1 + 0x1c);\n  uVar1 = *(uint *)(param_1 + 0x14);\n  uVar14 = *(uint *)(param_1 + 0x20);\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20);\n  lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar9 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar10 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20);\n  lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff);\n  uVar20 = (uint)lVar6;\n  uVar25 = (uint)((ulonglong)lVar6 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar25 = (uint)uVar2;\n  lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar21 = (uint)lVar11;\n  local_60 = (int)(uVar5 >> 0x20);\n  lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff);\n  uVar15 = (uint)lVar6;\n  local_a0 = (uint)((ulonglong)lVar11 >> 0x20);\n  uVar22 = local_a0 + uVar15;\n  uVar15 = local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15);\n  uVar13 = uVar20 >> 2;\n  uVar14 = uVar13 | uVar25 << 0x1e;\n  uVar1 = uVar14 * 5;\n  uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14);\n  uVar14 = uVar25 >> 2 | uVar21 << 0x1e;\n  uVar13 = uVar14 * 5;\n  uVar23 = uVar26 + uVar13;\n  uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13);\n  uVar14 = uVar21 >> 2 | uVar22 * 0x40000000;\n  uVar13 = uVar14 * 5;\n  local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0]);\n  uVar26 = uVar25 + uVar13;\n  uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13);\n  uVar21 = uVar22 >> 2 | uVar15 * 0x40000000;\n  uVar14 = uVar21 * 5;\n  uVar16 = uVar18 + uVar14;\n  uVar17 = local_84 + uVar1;\n  uVar27 = (uint)CARRY4(local_84,uVar1);\n  local_5c = (uint)lVar8;\n  uVar13 = local_5c + uVar27;\n  uVar24 = uVar13 + uVar23;\n  local_54 = (uint)lVar9;\n  uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23);\n  uVar13 = uVar27 + uVar26;\n  local_4c = (uint)lVar10;\n  uVar28 = uVar13 + local_54;\n  uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54);\n  uVar23 = uVar16 + local_4c;\n  uVar26 = uVar19 + uVar23;\n  uVar25 = (uVar15 >> 4) * 0x19;\n  uVar27 = (uint)CARRY4(uVar25,uVar17);\n  uVar13 = (uint)CARRY4(uVar27,uVar24);\n  uVar1 = (uint)CARRY4(uVar13,uVar28);\n  *(uint *)(param_1 + 0x24) = uVar25 + uVar17;\n  *(uint *)(param_1 + 0x2c) = uVar13 + uVar28;\n  *(uint *)(param_1 + 0x28) = uVar27 + uVar24;\n  *(uint *)(param_1 + 0x30) = uVar1 + uVar26;\n  *(uint *)(param_1 + 0x34) =\n       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26);\n  if (local_34[5] == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0006dad0();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00043cb0(int param_1,undefined4 param_2,int param_3)" identifier (parameter_list "(int param_1,undefined4 param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  ulonglong uVar2;\n  ulonglong uVar3;\n  ulonglong uVar4;\n  ulonglong uVar5;\n  longlong lVar6;\n  byte bVar7;\n  longlong lVar8;\n  longlong lVar9;\n  longlong lVar10;\n  longlong lVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint uVar28;\n  int in_GS_OFFSET;\n  uint local_a0;\n  uint local_84;\n  uint local_74;\n  int local_60;\n  uint local_5c;\n  uint local_54;\n  uint local_4c;\n  uint local_34 [9];\n  \n  local_34[5] = *(int *)(in_GS_OFFSET + 0x14);\n  local_34[0] = 0;\n  local_34[1] = 0;\n  local_34[2] = 0;\n  local_34[3] = 0;\n  local_34[4] = 0;\n  FUN_00043c70();\n  iVar12 = param_3 + 3;\n  if (-1 < param_3) {\n    iVar12 = param_3;\n  }\n  bVar7 = (byte)(param_3 >> 0x1f);\n  local_34[iVar12 >> 2] =\n       local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f);\n  FUN_000439e0();\n  uVar15 = *(uint *)(param_1 + 0x18);\n  uVar27 = *(uint *)(param_1 + 0x10);\n  uVar13 = *(uint *)(param_1 + 0x1c);\n  uVar1 = *(uint *)(param_1 + 0x14);\n  uVar14 = *(uint *)(param_1 + 0x20);\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20);\n  lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar9 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar10 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20);\n  lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff);\n  uVar20 = (uint)lVar6;\n  uVar25 = (uint)((ulonglong)lVar6 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar25 = (uint)uVar2;\n  lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar21 = (uint)lVar11;\n  local_60 = (int)(uVar5 >> 0x20);\n  lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff);\n  uVar15 = (uint)lVar6;\n  local_a0 = (uint)((ulonglong)lVar11 >> 0x20);\n  uVar22 = local_a0 + uVar15;\n  uVar15 = local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15);\n  uVar13 = uVar20 >> 2;\n  uVar14 = uVar13 | uVar25 << 0x1e;\n  uVar1 = uVar14 * 5;\n  uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14);\n  uVar14 = uVar25 >> 2 | uVar21 << 0x1e;\n  uVar13 = uVar14 * 5;\n  uVar23 = uVar26 + uVar13;\n  uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13);\n  uVar14 = uVar21 >> 2 | uVar22 * 0x40000000;\n  uVar13 = uVar14 * 5;\n  local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0]);\n  uVar26 = uVar25 + uVar13;\n  uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13);\n  uVar21 = uVar22 >> 2 | uVar15 * 0x40000000;\n  uVar14 = uVar21 * 5;\n  uVar16 = uVar18 + uVar14;\n  uVar17 = local_84 + uVar1;\n  uVar27 = (uint)CARRY4(local_84,uVar1);\n  local_5c = (uint)lVar8;\n  uVar13 = local_5c + uVar27;\n  uVar24 = uVar13 + uVar23;\n  local_54 = (uint)lVar9;\n  uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23);\n  uVar13 = uVar27 + uVar26;\n  local_4c = (uint)lVar10;\n  uVar28 = uVar13 + local_54;\n  uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54);\n  uVar23 = uVar16 + local_4c;\n  uVar26 = uVar19 + uVar23;\n  uVar25 = (uVar15 >> 4) * 0x19;\n  uVar27 = (uint)CARRY4(uVar25,uVar17);\n  uVar13 = (uint)CARRY4(uVar27,uVar24);\n  uVar1 = (uint)CARRY4(uVar13,uVar28);\n  *(uint *)(param_1 + 0x24) = uVar25 + uVar17;\n  *(uint *)(param_1 + 0x2c) = uVar13 + uVar28;\n  *(uint *)(param_1 + 0x28) = uVar27 + uVar24;\n  *(uint *)(param_1 + 0x30) = uVar1 + uVar26;\n  *(uint *)(param_1 + 0x34) =\n       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26);\n  if (local_34[5] == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0006dad0();\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "ulonglong uVar2;" type_identifier identifier ;) (declaration "ulonglong uVar3;" type_identifier identifier ;) (declaration "ulonglong uVar4;" type_identifier identifier ;) (declaration "ulonglong uVar5;" type_identifier identifier ;) (declaration "longlong lVar6;" type_identifier identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "longlong lVar8;" type_identifier identifier ;) (declaration "longlong lVar9;" type_identifier identifier ;) (declaration "longlong lVar10;" type_identifier identifier ;) (declaration "longlong lVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_34 [9];" type_identifier (array_declarator "local_34 [9]" identifier [ number_literal ]) ;) (expression_statement "local_34[5] = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_34[5] = *(int *)(in_GS_OFFSET + 0x14)" (subscript_expression "local_34[5]" identifier [ number_literal ]) = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_34[0] = 0;" (assignment_expression "local_34[0] = 0" (subscript_expression "local_34[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_34[1] = 0;" (assignment_expression "local_34[1] = 0" (subscript_expression "local_34[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_34[2] = 0;" (assignment_expression "local_34[2] = 0" (subscript_expression "local_34[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_34[3] = 0;" (assignment_expression "local_34[3] = 0" (subscript_expression "local_34[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_34[4] = 0;" (assignment_expression "local_34[4] = 0" (subscript_expression "local_34[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00043c70();" (call_expression "FUN_00043c70()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = param_3 + 3;" (assignment_expression "iVar12 = param_3 + 3" identifier = (binary_expression "param_3 + 3" identifier + number_literal)) ;) (if_statement "if (-1 < param_3) {\n    iVar12 = param_3;\n  }" if (parenthesized_expression "(-1 < param_3)" ( (binary_expression "-1 < param_3" number_literal < identifier) )) (compound_statement "{\n    iVar12 = param_3;\n  }" { (expression_statement "iVar12 = param_3;" (assignment_expression "iVar12 = param_3" identifier = identifier) ;) })) (expression_statement "bVar7 = (byte)(param_3 >> 0x1f);" (assignment_expression "bVar7 = (byte)(param_3 >> 0x1f)" identifier = (call_expression "(byte)(param_3 >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(param_3 >> 0x1f)" ( (binary_expression "param_3 >> 0x1f" identifier >> number_literal) )))) ;) (expression_statement "local_34[iVar12 >> 2] =\n       local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f);" (assignment_expression "local_34[iVar12 >> 2] =\n       local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f)" (subscript_expression "local_34[iVar12 >> 2]" identifier [ (binary_expression "iVar12 >> 2" identifier >> number_literal) ]) = (binary_expression "local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f)" (subscript_expression "local_34[iVar12 >> 2]" identifier [ (binary_expression "iVar12 >> 2" identifier >> number_literal) ]) | (binary_expression "1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f)" number_literal << (parenthesized_expression "((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f)" ( (binary_expression "(((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f" (binary_expression "(((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b'" (parenthesized_expression "(((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6))" ( (binary_expression "((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)" (parenthesized_expression "((char)param_3 + (bVar7 >> 6) & 3)" ( (binary_expression "(char)param_3 + (bVar7 >> 6) & 3" (binary_expression "(char)param_3 + (bVar7 >> 6)" (cast_expression "(char)param_3" ( (type_descriptor "char" primitive_type) ) identifier) + (parenthesized_expression "(bVar7 >> 6)" ( (binary_expression "bVar7 >> 6" identifier >> number_literal) ))) & number_literal) )) - (parenthesized_expression "(bVar7 >> 6)" ( (binary_expression "bVar7 >> 6" identifier >> number_literal) ))) )) * (char_literal "'\b'" ' escape_sequence ')) & number_literal) ))))) ;) (expression_statement "FUN_000439e0();" (call_expression "FUN_000439e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar15 = *(uint *)(param_1 + 0x18);" (assignment_expression "uVar15 = *(uint *)(param_1 + 0x18)" identifier = (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = *(uint *)(param_1 + 0x10);" (assignment_expression "uVar27 = *(uint *)(param_1 + 0x10)" identifier = (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar1 = *(uint *)(param_1 + 0x14)" identifier = (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar14 = *(uint *)(param_1 + 0x20)" identifier = (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20);" (assignment_expression "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20)" identifier = (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20)" (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[0]" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[0]" identifier [ number_literal ]))) + (parenthesized_expression "((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20)" ( (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20" (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[0]" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[0]" identifier [ number_literal ]))) >> number_literal) )))) ;) (expression_statement "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20);" (assignment_expression "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[0]" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[0]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[0]" (cast_expression "(ulonglong)uVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[0]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar3 >> 0x20)" ( (binary_expression "uVar3 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20)" identifier = (binary_expression "(ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20)" (binary_expression "(ulonglong)local_34[0] * (ulonglong)uVar14" (cast_expression "(ulonglong)local_34[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[0]" identifier [ number_literal ])) * (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) + (parenthesized_expression "(uVar4 >> 0x20)" ( (binary_expression "uVar4 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff);" (assignment_expression "lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff)" identifier = (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff)" (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[1]" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[1]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[1]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar2 & 0xffffffff)" ( (binary_expression "uVar2 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar25 = (uint)((ulonglong)lVar8 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar8 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar8 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar3;" (assignment_expression "local_74 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);" (assignment_expression "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier = (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[1]" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[1]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[1]" identifier [ number_literal ]))) + (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier (argument_list "(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (call_expression "CARRY4(uVar25,local_74)" identifier (argument_list "(uVar25,local_74)" ( identifier , identifier ))) , (binary_expression "uVar25 + local_74" identifier + identifier) )))))) ;) (expression_statement "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);" (assignment_expression "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[1]" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[1]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[1]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar4 & 0xffffffff)" ( (binary_expression "uVar4 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[1]" (cast_expression "(ulonglong)uVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[1]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[1]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar5 & 0xffffffff)" ( (binary_expression "uVar5 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar3 >> 0x20)" ( (binary_expression "uVar3 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20)" identifier = (binary_expression "(ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20)" (binary_expression "(ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20)" (binary_expression "(ulonglong)local_34[1] * (ulonglong)uVar14" (cast_expression "(ulonglong)local_34[1]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[1]" identifier [ number_literal ])) * (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) + (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) ))) + (parenthesized_expression "(uVar4 >> 0x20)" ( (binary_expression "uVar4 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff);" (assignment_expression "lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff)" identifier = (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff)" (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[2]" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[2]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[2]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar2 & 0xffffffff)" ( (binary_expression "uVar2 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar25 = (uint)((ulonglong)lVar9 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar9 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar9 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar9 >> 0x20)" ( (binary_expression "(ulonglong)lVar9 >> 0x20" (cast_expression "(ulonglong)lVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar3;" (assignment_expression "local_74 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);" (assignment_expression "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier = (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[2]" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[2]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[2]" identifier [ number_literal ]))) + (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier (argument_list "(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (call_expression "CARRY4(uVar25,local_74)" identifier (argument_list "(uVar25,local_74)" ( identifier , identifier ))) , (binary_expression "uVar25 + local_74" identifier + identifier) )))))) ;) (expression_statement "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);" (assignment_expression "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[2]" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[2]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[2]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar4 & 0xffffffff)" ( (binary_expression "uVar4 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[2]" (cast_expression "(ulonglong)uVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[2]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[2]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar5 & 0xffffffff)" ( (binary_expression "uVar5 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar3 >> 0x20)" ( (binary_expression "uVar3 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[2]" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[2]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[2]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) ))) + (parenthesized_expression "(uVar4 >> 0x20)" ( (binary_expression "uVar4 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff);" (assignment_expression "lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff)" identifier = (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff)" (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[3]" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[3]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[3]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar2 & 0xffffffff)" ( (binary_expression "uVar2 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar25 = (uint)((ulonglong)lVar10 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar10 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar10 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar10 >> 0x20)" ( (binary_expression "(ulonglong)lVar10 >> 0x20" (cast_expression "(ulonglong)lVar10" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar3;" (assignment_expression "local_74 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);" (assignment_expression "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier = (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[3]" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[3]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[3]" identifier [ number_literal ]))) + (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier (argument_list "(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (call_expression "CARRY4(uVar25,local_74)" identifier (argument_list "(uVar25,local_74)" ( identifier , identifier ))) , (binary_expression "uVar25 + local_74" identifier + identifier) )))))) ;) (expression_statement "uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[3]" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[3]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[3]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar4 & 0xffffffff)" ( (binary_expression "uVar4 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20);" (assignment_expression "uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[3]" (cast_expression "(ulonglong)uVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[3]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[3]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar5 & 0xffffffff)" ( (binary_expression "uVar5 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar4 >> 0x20)" ( (binary_expression "uVar4 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[3]" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[3]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[3]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) ))) + (parenthesized_expression "(uVar3 >> 0x20)" ( (binary_expression "uVar3 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff);" (assignment_expression "lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff)" identifier = (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff)" (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[4]" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[4]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[4]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar2 & 0xffffffff)" ( (binary_expression "uVar2 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar20 = (uint)lVar6;" (assignment_expression "uVar20 = (uint)lVar6" identifier = (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar25 = (uint)((ulonglong)lVar6 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar6 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar6 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar6 >> 0x20)" ( (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar4;" (assignment_expression "local_74 = (uint)uVar4" identifier = (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);" (assignment_expression "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier = (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[4]" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[4]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[4]" identifier [ number_literal ]))) + (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier (argument_list "(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (call_expression "CARRY4(uVar25,local_74)" identifier (argument_list "(uVar25,local_74)" ( identifier , identifier ))) , (binary_expression "uVar25 + local_74" identifier + identifier) )))))) ;) (expression_statement "uVar25 = (uint)uVar2;" (assignment_expression "uVar25 = (uint)uVar2" identifier = (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20);" (assignment_expression "lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[4]" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[4]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[4]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar3 & 0xffffffff)" ( (binary_expression "uVar3 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar21 = (uint)lVar11;" (assignment_expression "uVar21 = (uint)lVar11" identifier = (cast_expression "(uint)lVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_60 = (int)(uVar5 >> 0x20);" (assignment_expression "local_60 = (int)(uVar5 >> 0x20)" identifier = (cast_expression "(int)(uVar5 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff);" (assignment_expression "lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff)" identifier = (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[4]" (cast_expression "(ulonglong)uVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[4]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[4]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar5 & 0xffffffff)" ( (binary_expression "uVar5 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar15 = (uint)lVar6;" (assignment_expression "uVar15 = (uint)lVar6" identifier = (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_a0 = (uint)((ulonglong)lVar11 >> 0x20);" (assignment_expression "local_a0 = (uint)((ulonglong)lVar11 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar11 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar11 >> 0x20)" ( (binary_expression "(ulonglong)lVar11 >> 0x20" (cast_expression "(ulonglong)lVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar22 = local_a0 + uVar15;" (assignment_expression "uVar22 = local_a0 + uVar15" identifier = (binary_expression "local_a0 + uVar15" identifier + identifier)) ;) (expression_statement "uVar15 = local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15);" (assignment_expression "uVar15 = local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15)" identifier = (binary_expression "local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15)" (binary_expression "local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20)" (binary_expression "local_60 + uVar14 * local_34[4]" identifier + (binary_expression "uVar14 * local_34[4]" identifier * (subscript_expression "local_34[4]" identifier [ number_literal ]))) + (cast_expression "(int)((ulonglong)lVar6 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar6 >> 0x20)" ( (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) + (cast_expression "(uint)CARRY4(local_a0,uVar15)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_a0,uVar15)" identifier (argument_list "(local_a0,uVar15)" ( identifier , identifier )))))) ;) (expression_statement "uVar13 = uVar20 >> 2;" (assignment_expression "uVar13 = uVar20 >> 2" identifier = (binary_expression "uVar20 >> 2" identifier >> number_literal)) ;) (expression_statement "uVar14 = uVar13 | uVar25 << 0x1e;" (assignment_expression "uVar14 = uVar13 | uVar25 << 0x1e" identifier = (binary_expression "uVar13 | uVar25 << 0x1e" identifier | (binary_expression "uVar25 << 0x1e" identifier << number_literal))) ;) (expression_statement "uVar1 = uVar14 * 5;" (assignment_expression "uVar1 = uVar14 * 5" identifier = (binary_expression "uVar14 * 5" identifier * number_literal)) ;) (expression_statement "uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14);" (assignment_expression "uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14)" identifier = (binary_expression "(uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14)" (parenthesized_expression "(uVar25 & 3)" ( (binary_expression "uVar25 & 3" identifier & number_literal) )) + (cast_expression "(uint)CARRY4(uVar13 * 4,uVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar13 * 4,uVar14)" identifier (argument_list "(uVar13 * 4,uVar14)" ( (binary_expression "uVar13 * 4" identifier * number_literal) , identifier )))))) ;) (expression_statement "uVar14 = uVar25 >> 2 | uVar21 << 0x1e;" (assignment_expression "uVar14 = uVar25 >> 2 | uVar21 << 0x1e" identifier = (binary_expression "uVar25 >> 2 | uVar21 << 0x1e" (binary_expression "uVar25 >> 2" identifier >> number_literal) | (binary_expression "uVar21 << 0x1e" identifier << number_literal))) ;) (expression_statement "uVar13 = uVar14 * 5;" (assignment_expression "uVar13 = uVar14 * 5" identifier = (binary_expression "uVar14 * 5" identifier * number_literal)) ;) (expression_statement "uVar23 = uVar26 + uVar13;" (assignment_expression "uVar23 = uVar26 + uVar13" identifier = (binary_expression "uVar26 + uVar13" identifier + identifier)) ;) (expression_statement "uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13);" (assignment_expression "uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13)" identifier = (binary_expression "(uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13)" (binary_expression "(uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4)" (parenthesized_expression "(uVar21 & 3)" ( (binary_expression "uVar21 & 3" identifier & number_literal) )) + (cast_expression "(uint)CARRY4(uVar14,(uVar25 >> 2) * 4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,(uVar25 >> 2) * 4)" identifier (argument_list "(uVar14,(uVar25 >> 2) * 4)" ( identifier , (binary_expression "(uVar25 >> 2) * 4" (parenthesized_expression "(uVar25 >> 2)" ( (binary_expression "uVar25 >> 2" identifier >> number_literal) )) * number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar26,uVar13)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar26,uVar13)" identifier (argument_list "(uVar26,uVar13)" ( identifier , identifier )))))) ;) (expression_statement "uVar14 = uVar21 >> 2 | uVar22 * 0x40000000;" (assignment_expression "uVar14 = uVar21 >> 2 | uVar22 * 0x40000000" identifier = (binary_expression "uVar21 >> 2 | uVar22 * 0x40000000" (binary_expression "uVar21 >> 2" identifier >> number_literal) | (binary_expression "uVar22 * 0x40000000" identifier * number_literal))) ;) (expression_statement "uVar13 = uVar14 * 5;" (assignment_expression "uVar13 = uVar14 * 5" identifier = (binary_expression "uVar14 * 5" identifier * number_literal)) ;) (expression_statement "local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0]);" (assignment_expression "local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0])" identifier = (call_expression "(uint)((ulonglong)uVar27 * (ulonglong)local_34[0])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar27 * (ulonglong)local_34[0])" ( (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[0]" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[0]" identifier [ number_literal ]))) )))) ;) (expression_statement "uVar26 = uVar25 + uVar13;" (assignment_expression "uVar26 = uVar25 + uVar13" identifier = (binary_expression "uVar25 + uVar13" identifier + identifier)) ;) (expression_statement "uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13);" (assignment_expression "uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13)" identifier = (binary_expression "(uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13)" (binary_expression "(uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4)" (parenthesized_expression "(uVar22 & 3)" ( (binary_expression "uVar22 & 3" identifier & number_literal) )) + (cast_expression "(uint)CARRY4(uVar14,(uVar21 >> 2) * 4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,(uVar21 >> 2) * 4)" identifier (argument_list "(uVar14,(uVar21 >> 2) * 4)" ( identifier , (binary_expression "(uVar21 >> 2) * 4" (parenthesized_expression "(uVar21 >> 2)" ( (binary_expression "uVar21 >> 2" identifier >> number_literal) )) * number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar25,uVar13)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar25,uVar13)" identifier (argument_list "(uVar25,uVar13)" ( identifier , identifier )))))) ;) (expression_statement "uVar21 = uVar22 >> 2 | uVar15 * 0x40000000;" (assignment_expression "uVar21 = uVar22 >> 2 | uVar15 * 0x40000000" identifier = (binary_expression "uVar22 >> 2 | uVar15 * 0x40000000" (binary_expression "uVar22 >> 2" identifier >> number_literal) | (binary_expression "uVar15 * 0x40000000" identifier * number_literal))) ;) (expression_statement "uVar14 = uVar21 * 5;" (assignment_expression "uVar14 = uVar21 * 5" identifier = (binary_expression "uVar21 * 5" identifier * number_literal)) ;) (expression_statement "uVar16 = uVar18 + uVar14;" (assignment_expression "uVar16 = uVar18 + uVar14" identifier = (binary_expression "uVar18 + uVar14" identifier + identifier)) ;) (expression_statement "uVar17 = local_84 + uVar1;" (assignment_expression "uVar17 = local_84 + uVar1" identifier = (binary_expression "local_84 + uVar1" identifier + identifier)) ;) (expression_statement "uVar27 = (uint)CARRY4(local_84,uVar1);" (assignment_expression "uVar27 = (uint)CARRY4(local_84,uVar1)" identifier = (cast_expression "(uint)CARRY4(local_84,uVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_84,uVar1)" identifier (argument_list "(local_84,uVar1)" ( identifier , identifier ))))) ;) (expression_statement "local_5c = (uint)lVar8;" (assignment_expression "local_5c = (uint)lVar8" identifier = (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar13 = local_5c + uVar27;" (assignment_expression "uVar13 = local_5c + uVar27" identifier = (binary_expression "local_5c + uVar27" identifier + identifier)) ;) (expression_statement "uVar24 = uVar13 + uVar23;" (assignment_expression "uVar24 = uVar13 + uVar23" identifier = (binary_expression "uVar13 + uVar23" identifier + identifier)) ;) (expression_statement "local_54 = (uint)lVar9;" (assignment_expression "local_54 = (uint)lVar9" identifier = (cast_expression "(uint)lVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23);" (assignment_expression "uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23)" identifier = (binary_expression "(uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23)" (cast_expression "(uint)CARRY4(local_5c,uVar27)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_5c,uVar27)" identifier (argument_list "(local_5c,uVar27)" ( identifier , identifier )))) + (cast_expression "(uint)CARRY4(uVar13,uVar23)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar13,uVar23)" identifier (argument_list "(uVar13,uVar23)" ( identifier , identifier )))))) ;) (expression_statement "uVar13 = uVar27 + uVar26;" (assignment_expression "uVar13 = uVar27 + uVar26" identifier = (binary_expression "uVar27 + uVar26" identifier + identifier)) ;) (expression_statement "local_4c = (uint)lVar10;" (assignment_expression "local_4c = (uint)lVar10" identifier = (cast_expression "(uint)lVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar28 = uVar13 + local_54;" (assignment_expression "uVar28 = uVar13 + local_54" identifier = (binary_expression "uVar13 + local_54" identifier + identifier)) ;) (expression_statement "uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54);" (assignment_expression "uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54)" identifier = (binary_expression "(uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54)" (cast_expression "(uint)CARRY4(uVar27,uVar26)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27,uVar26)" identifier (argument_list "(uVar27,uVar26)" ( identifier , identifier )))) + (cast_expression "(uint)CARRY4(uVar13,local_54)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar13,local_54)" identifier (argument_list "(uVar13,local_54)" ( identifier , identifier )))))) ;) (expression_statement "uVar23 = uVar16 + local_4c;" (assignment_expression "uVar23 = uVar16 + local_4c" identifier = (binary_expression "uVar16 + local_4c" identifier + identifier)) ;) (expression_statement "uVar26 = uVar19 + uVar23;" (assignment_expression "uVar26 = uVar19 + uVar23" identifier = (binary_expression "uVar19 + uVar23" identifier + identifier)) ;) (expression_statement "uVar25 = (uVar15 >> 4) * 0x19;" (assignment_expression "uVar25 = (uVar15 >> 4) * 0x19" identifier = (binary_expression "(uVar15 >> 4) * 0x19" (parenthesized_expression "(uVar15 >> 4)" ( (binary_expression "uVar15 >> 4" identifier >> number_literal) )) * number_literal)) ;) (expression_statement "uVar27 = (uint)CARRY4(uVar25,uVar17);" (assignment_expression "uVar27 = (uint)CARRY4(uVar25,uVar17)" identifier = (cast_expression "(uint)CARRY4(uVar25,uVar17)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar25,uVar17)" identifier (argument_list "(uVar25,uVar17)" ( identifier , identifier ))))) ;) (expression_statement "uVar13 = (uint)CARRY4(uVar27,uVar24);" (assignment_expression "uVar13 = (uint)CARRY4(uVar27,uVar24)" identifier = (cast_expression "(uint)CARRY4(uVar27,uVar24)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27,uVar24)" identifier (argument_list "(uVar27,uVar24)" ( identifier , identifier ))))) ;) (expression_statement "uVar1 = (uint)CARRY4(uVar13,uVar28);" (assignment_expression "uVar1 = (uint)CARRY4(uVar13,uVar28)" identifier = (cast_expression "(uint)CARRY4(uVar13,uVar28)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar13,uVar28)" identifier (argument_list "(uVar13,uVar28)" ( identifier , identifier ))))) ;) (expression_statement "*(uint *)(param_1 + 0x24) = uVar25 + uVar17;" (assignment_expression "*(uint *)(param_1 + 0x24) = uVar25 + uVar17" (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = (binary_expression "uVar25 + uVar17" identifier + identifier)) ;) (expression_statement "*(uint *)(param_1 + 0x2c) = uVar13 + uVar28;" (assignment_expression "*(uint *)(param_1 + 0x2c) = uVar13 + uVar28" (pointer_expression "*(uint *)(param_1 + 0x2c)" * (cast_expression "(uint *)(param_1 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = (binary_expression "uVar13 + uVar28" identifier + identifier)) ;) (expression_statement "*(uint *)(param_1 + 0x28) = uVar27 + uVar24;" (assignment_expression "*(uint *)(param_1 + 0x28) = uVar27 + uVar24" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "uVar27 + uVar24" identifier + identifier)) ;) (expression_statement "*(uint *)(param_1 + 0x30) = uVar1 + uVar26;" (assignment_expression "*(uint *)(param_1 + 0x30) = uVar1 + uVar26" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = (binary_expression "uVar1 + uVar26" identifier + identifier)) ;) (expression_statement "*(uint *)(param_1 + 0x34) =\n       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26);" (assignment_expression "*(uint *)(param_1 + 0x34) =\n       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26)" (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3)" (binary_expression "(uVar15 >> 2 & 3) * 5" (parenthesized_expression "(uVar15 >> 2 & 3)" ( (binary_expression "uVar15 >> 2 & 3" (binary_expression "uVar15 >> 2" identifier >> number_literal) & number_literal) )) * number_literal) + (parenthesized_expression "(uVar20 & 3)" ( (binary_expression "uVar20 & 3" identifier & number_literal) ))) + (parenthesized_expression "(uVar15 & 3)" ( (binary_expression "uVar15 & 3" identifier & number_literal) ))) + (cast_expression "(uint)CARRY4(uVar21,(uVar22 >> 2) * 4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar21,(uVar22 >> 2) * 4)" identifier (argument_list "(uVar21,(uVar22 >> 2) * 4)" ( identifier , (binary_expression "(uVar22 >> 2) * 4" (parenthesized_expression "(uVar22 >> 2)" ( (binary_expression "uVar22 >> 2" identifier >> number_literal) )) * number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar18,uVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar18,uVar14)" identifier (argument_list "(uVar18,uVar14)" ( identifier , identifier ))))) + (cast_expression "(uint)CARRY4(uVar16,local_4c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16,local_4c)" identifier (argument_list "(uVar16,local_4c)" ( identifier , identifier ))))) + (cast_expression "(uint)CARRY4(uVar19,uVar23)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar19,uVar23)" identifier (argument_list "(uVar19,uVar23)" ( identifier , identifier ))))) + (cast_expression "(uint)CARRY4(uVar1,uVar26)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar1,uVar26)" identifier (argument_list "(uVar1,uVar26)" ( identifier , identifier )))))) ;) (if_statement "if (local_34[5] == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_34[5] == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_34[5] == *(int *)(in_GS_OFFSET + 0x14)" (subscript_expression "local_34[5]" identifier [ number_literal ]) == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "FUN_0006dad0();" (call_expression "FUN_0006dad0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void __regparm3 poly1305_feed_chunk(poly1305 *ctx,uchar *chunk,int len)\n\n{\n  int iVar1;\n  uint uVar2;\n  ulonglong uVar3;\n  ulonglong uVar4;\n  ulonglong uVar5;\n  ulonglong uVar6;\n  longlong lVar7;\n  byte bVar8;\n  longlong lVar9;\n  longlong lVar10;\n  longlong lVar11;\n  longlong lVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint uVar28;\n  uint uVar29;\n  int in_GS_OFFSET;\n  uint local_a0;\n  uint local_84;\n  uint local_74;\n  int local_60;\n  uint local_5c;\n  uint local_54;\n  uint local_4c;\n  bigval c;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  c.w[0] = 0;\n  c.w[1] = 0;\n  c.w[2] = 0;\n  c.w[3] = 0;\n  c.w[4] = 0;\n  bigval_import_le(&c,chunk,len);\n  iVar13 = len + 3;\n  if (-1 < len) {\n    iVar13 = len;\n  }\n  bVar8 = (byte)(len >> 0x1f);\n  c.w[iVar13 >> 2] =\n       c.w[iVar13 >> 2] | 1 << ((((char)len + (bVar8 >> 6) & 3) - (bVar8 >> 6)) * '\b' & 0x1f);\n  bigval_add(&c,&c,&ctx->h);\n  uVar16 = (ctx->r).w[2];\n  uVar28 = (ctx->r).w[0];\n  uVar14 = (ctx->r).w[3];\n  uVar2 = (ctx->r).w[1];\n  uVar15 = (ctx->r).w[4];\n  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[0] + ((ulonglong)uVar28 * (ulonglong)c.w[0] >> 0x20);\n  uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[0] + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[0] + (uVar4 >> 0x20);\n  uVar6 = (ulonglong)c.w[0] * (ulonglong)uVar15 + (uVar5 >> 0x20);\n  lVar9 = (ulonglong)uVar28 * (ulonglong)c.w[1] + (uVar3 & 0xffffffff);\n  uVar26 = (uint)((ulonglong)lVar9 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);\n  uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[1] + (uVar6 & 0xffffffff) + (uVar4 >> 0x20);\n  uVar6 = (ulonglong)c.w[1] * (ulonglong)uVar15 + (uVar6 >> 0x20) + (uVar5 >> 0x20);\n  lVar10 = (ulonglong)uVar28 * (ulonglong)c.w[2] + (uVar3 & 0xffffffff);\n  uVar26 = (uint)((ulonglong)lVar10 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);\n  uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[2] + (uVar6 & 0xffffffff) + (uVar4 >> 0x20);\n  uVar6 = (ulonglong)uVar15 * (ulonglong)c.w[2] + (uVar6 >> 0x20) + (uVar5 >> 0x20);\n  lVar11 = (ulonglong)uVar28 * (ulonglong)c.w[3] + (uVar3 & 0xffffffff);\n  uVar26 = (uint)((ulonglong)lVar11 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);\n  uVar5 = (ulonglong)uVar16 * (ulonglong)c.w[3] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar4 = (ulonglong)uVar14 * (ulonglong)c.w[3] + (uVar6 & 0xffffffff) + (uVar5 >> 0x20);\n  uVar6 = (ulonglong)uVar15 * (ulonglong)c.w[3] + (uVar6 >> 0x20) + (uVar4 >> 0x20);\n  lVar7 = (ulonglong)uVar28 * (ulonglong)c.w[4] + (uVar3 & 0xffffffff);\n  uVar21 = (uint)lVar7;\n  uVar26 = (uint)((ulonglong)lVar7 >> 0x20);\n  local_74 = (uint)uVar5;\n  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);\n  uVar26 = (uint)uVar3;\n  lVar12 = (ulonglong)uVar16 * (ulonglong)c.w[4] + (uVar4 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar22 = (uint)lVar12;\n  local_60 = (int)(uVar6 >> 0x20);\n  lVar7 = (ulonglong)uVar14 * (ulonglong)c.w[4] + (uVar6 & 0xffffffff);\n  uVar16 = (uint)lVar7;\n  local_a0 = (uint)((ulonglong)lVar12 >> 0x20);\n  uVar23 = local_a0 + uVar16;\n  uVar16 = local_60 + uVar15 * c.w[4] +\n           (int)((ulonglong)lVar7 >> 0x20) + (uint)CARRY4(local_a0,uVar16);\n  uVar14 = uVar21 >> 2;\n  uVar15 = uVar14 | uVar26 << 0x1e;\n  uVar2 = uVar15 * 5;\n  uVar27 = (uVar26 & 3) + (uint)CARRY4(uVar14 * 4,uVar15);\n  uVar15 = uVar26 >> 2 | uVar22 << 0x1e;\n  uVar14 = uVar15 * 5;\n  uVar24 = uVar27 + uVar14;\n  uVar26 = (uVar22 & 3) + (uint)CARRY4(uVar15,(uVar26 >> 2) * 4) + (uint)CARRY4(uVar27,uVar14);\n  uVar15 = uVar22 >> 2 | uVar23 * 0x40000000;\n  uVar14 = uVar15 * 5;\n  local_84 = (uint)((ulonglong)uVar28 * (ulonglong)c.w[0]);\n  uVar27 = uVar26 + uVar14;\n  uVar19 = (uVar23 & 3) + (uint)CARRY4(uVar15,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar26,uVar14);\n  uVar22 = uVar23 >> 2 | uVar16 * 0x40000000;\n  uVar15 = uVar22 * 5;\n  uVar17 = uVar19 + uVar15;\n  uVar18 = local_84 + uVar2;\n  uVar28 = (uint)CARRY4(local_84,uVar2);\n  local_5c = (uint)lVar9;\n  uVar14 = local_5c + uVar28;\n  uVar25 = uVar14 + uVar24;\n  local_54 = (uint)lVar10;\n  uVar28 = (uint)CARRY4(local_5c,uVar28) + (uint)CARRY4(uVar14,uVar24);\n  uVar14 = uVar28 + uVar27;\n  local_4c = (uint)lVar11;\n  uVar29 = uVar14 + local_54;\n  uVar20 = (uint)CARRY4(uVar28,uVar27) + (uint)CARRY4(uVar14,local_54);\n  uVar24 = uVar17 + local_4c;\n  uVar27 = uVar20 + uVar24;\n  uVar26 = (uVar16 >> 4) * 0x19;\n  uVar28 = (uint)CARRY4(uVar26,uVar18);\n  uVar14 = (uint)CARRY4(uVar28,uVar25);\n  uVar2 = (uint)CARRY4(uVar14,uVar29);\n  (ctx->h).w[0] = uVar26 + uVar18;\n  (ctx->h).w[2] = uVar14 + uVar29;\n  (ctx->h).w[1] = uVar28 + uVar25;\n  (ctx->h).w[3] = uVar2 + uVar27;\n  (ctx->h).w[4] =\n       (uVar16 >> 2 & 3) * 5 + (uVar21 & 3) +\n       (uVar16 & 3) + (uint)CARRY4(uVar22,(uVar23 >> 2) * 4) + (uint)CARRY4(uVar19,uVar15) +\n       (uint)CARRY4(uVar17,local_4c) + (uint)CARRY4(uVar20,uVar24) + (uint)CARRY4(uVar2,uVar27);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" (function_definition "void __regparm3 poly1305_feed_chunk(poly1305 *ctx,uchar *chunk,int len)\n\n{\n  int iVar1;\n  uint uVar2;\n  ulonglong uVar3;\n  ulonglong uVar4;\n  ulonglong uVar5;\n  ulonglong uVar6;\n  longlong lVar7;\n  byte bVar8;\n  longlong lVar9;\n  longlong lVar10;\n  longlong lVar11;\n  longlong lVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint uVar28;\n  uint uVar29;\n  int in_GS_OFFSET;\n  uint local_a0;\n  uint local_84;\n  uint local_74;\n  int local_60;\n  uint local_5c;\n  uint local_54;\n  uint local_4c;\n  bigval c;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  c.w[0] = 0;\n  c.w[1] = 0;\n  c.w[2] = 0;\n  c.w[3] = 0;\n  c.w[4] = 0;\n  bigval_import_le(&c,chunk,len);\n  iVar13 = len + 3;\n  if (-1 < len) {\n    iVar13 = len;\n  }\n  bVar8 = (byte)(len >> 0x1f);\n  c.w[iVar13 >> 2] =\n       c.w[iVar13 >> 2] | 1 << ((((char)len + (bVar8 >> 6) & 3) - (bVar8 >> 6)) * '\b' & 0x1f);\n  bigval_add(&c,&c,&ctx->h);\n  uVar16 = (ctx->r).w[2];\n  uVar28 = (ctx->r).w[0];\n  uVar14 = (ctx->r).w[3];\n  uVar2 = (ctx->r).w[1];\n  uVar15 = (ctx->r).w[4];\n  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[0] + ((ulonglong)uVar28 * (ulonglong)c.w[0] >> 0x20);\n  uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[0] + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[0] + (uVar4 >> 0x20);\n  uVar6 = (ulonglong)c.w[0] * (ulonglong)uVar15 + (uVar5 >> 0x20);\n  lVar9 = (ulonglong)uVar28 * (ulonglong)c.w[1] + (uVar3 & 0xffffffff);\n  uVar26 = (uint)((ulonglong)lVar9 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);\n  uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[1] + (uVar6 & 0xffffffff) + (uVar4 >> 0x20);\n  uVar6 = (ulonglong)c.w[1] * (ulonglong)uVar15 + (uVar6 >> 0x20) + (uVar5 >> 0x20);\n  lVar10 = (ulonglong)uVar28 * (ulonglong)c.w[2] + (uVar3 & 0xffffffff);\n  uVar26 = (uint)((ulonglong)lVar10 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);\n  uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[2] + (uVar6 & 0xffffffff) + (uVar4 >> 0x20);\n  uVar6 = (ulonglong)uVar15 * (ulonglong)c.w[2] + (uVar6 >> 0x20) + (uVar5 >> 0x20);\n  lVar11 = (ulonglong)uVar28 * (ulonglong)c.w[3] + (uVar3 & 0xffffffff);\n  uVar26 = (uint)((ulonglong)lVar11 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);\n  uVar5 = (ulonglong)uVar16 * (ulonglong)c.w[3] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar4 = (ulonglong)uVar14 * (ulonglong)c.w[3] + (uVar6 & 0xffffffff) + (uVar5 >> 0x20);\n  uVar6 = (ulonglong)uVar15 * (ulonglong)c.w[3] + (uVar6 >> 0x20) + (uVar4 >> 0x20);\n  lVar7 = (ulonglong)uVar28 * (ulonglong)c.w[4] + (uVar3 & 0xffffffff);\n  uVar21 = (uint)lVar7;\n  uVar26 = (uint)((ulonglong)lVar7 >> 0x20);\n  local_74 = (uint)uVar5;\n  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);\n  uVar26 = (uint)uVar3;\n  lVar12 = (ulonglong)uVar16 * (ulonglong)c.w[4] + (uVar4 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar22 = (uint)lVar12;\n  local_60 = (int)(uVar6 >> 0x20);\n  lVar7 = (ulonglong)uVar14 * (ulonglong)c.w[4] + (uVar6 & 0xffffffff);\n  uVar16 = (uint)lVar7;\n  local_a0 = (uint)((ulonglong)lVar12 >> 0x20);\n  uVar23 = local_a0 + uVar16;\n  uVar16 = local_60 + uVar15 * c.w[4] +\n           (int)((ulonglong)lVar7 >> 0x20) + (uint)CARRY4(local_a0,uVar16);\n  uVar14 = uVar21 >> 2;\n  uVar15 = uVar14 | uVar26 << 0x1e;\n  uVar2 = uVar15 * 5;\n  uVar27 = (uVar26 & 3) + (uint)CARRY4(uVar14 * 4,uVar15);\n  uVar15 = uVar26 >> 2 | uVar22 << 0x1e;\n  uVar14 = uVar15 * 5;\n  uVar24 = uVar27 + uVar14;\n  uVar26 = (uVar22 & 3) + (uint)CARRY4(uVar15,(uVar26 >> 2) * 4) + (uint)CARRY4(uVar27,uVar14);\n  uVar15 = uVar22 >> 2 | uVar23 * 0x40000000;\n  uVar14 = uVar15 * 5;\n  local_84 = (uint)((ulonglong)uVar28 * (ulonglong)c.w[0]);\n  uVar27 = uVar26 + uVar14;\n  uVar19 = (uVar23 & 3) + (uint)CARRY4(uVar15,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar26,uVar14);\n  uVar22 = uVar23 >> 2 | uVar16 * 0x40000000;\n  uVar15 = uVar22 * 5;\n  uVar17 = uVar19 + uVar15;\n  uVar18 = local_84 + uVar2;\n  uVar28 = (uint)CARRY4(local_84,uVar2);\n  local_5c = (uint)lVar9;\n  uVar14 = local_5c + uVar28;\n  uVar25 = uVar14 + uVar24;\n  local_54 = (uint)lVar10;\n  uVar28 = (uint)CARRY4(local_5c,uVar28) + (uint)CARRY4(uVar14,uVar24);\n  uVar14 = uVar28 + uVar27;\n  local_4c = (uint)lVar11;\n  uVar29 = uVar14 + local_54;\n  uVar20 = (uint)CARRY4(uVar28,uVar27) + (uint)CARRY4(uVar14,local_54);\n  uVar24 = uVar17 + local_4c;\n  uVar27 = uVar20 + uVar24;\n  uVar26 = (uVar16 >> 4) * 0x19;\n  uVar28 = (uint)CARRY4(uVar26,uVar18);\n  uVar14 = (uint)CARRY4(uVar28,uVar25);\n  uVar2 = (uint)CARRY4(uVar14,uVar29);\n  (ctx->h).w[0] = uVar26 + uVar18;\n  (ctx->h).w[2] = uVar14 + uVar29;\n  (ctx->h).w[1] = uVar28 + uVar25;\n  (ctx->h).w[3] = uVar2 + uVar27;\n  (ctx->h).w[4] =\n       (uVar16 >> 2 & 3) * 5 + (uVar21 & 3) +\n       (uVar16 & 3) + (uint)CARRY4(uVar22,(uVar23 >> 2) * 4) + (uint)CARRY4(uVar19,uVar15) +\n       (uint)CARRY4(uVar17,local_4c) + (uint)CARRY4(uVar20,uVar24) + (uint)CARRY4(uVar2,uVar27);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "poly1305_feed_chunk(poly1305 *ctx,uchar *chunk,int len)" identifier (parameter_list "(poly1305 *ctx,uchar *chunk,int len)" ( (parameter_declaration "poly1305 *ctx" type_identifier (pointer_declarator "*ctx" * identifier)) , (parameter_declaration "uchar *chunk" type_identifier (pointer_declarator "*chunk" * identifier)) , (parameter_declaration "int len" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  ulonglong uVar3;\n  ulonglong uVar4;\n  ulonglong uVar5;\n  ulonglong uVar6;\n  longlong lVar7;\n  byte bVar8;\n  longlong lVar9;\n  longlong lVar10;\n  longlong lVar11;\n  longlong lVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint uVar28;\n  uint uVar29;\n  int in_GS_OFFSET;\n  uint local_a0;\n  uint local_84;\n  uint local_74;\n  int local_60;\n  uint local_5c;\n  uint local_54;\n  uint local_4c;\n  bigval c;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  c.w[0] = 0;\n  c.w[1] = 0;\n  c.w[2] = 0;\n  c.w[3] = 0;\n  c.w[4] = 0;\n  bigval_import_le(&c,chunk,len);\n  iVar13 = len + 3;\n  if (-1 < len) {\n    iVar13 = len;\n  }\n  bVar8 = (byte)(len >> 0x1f);\n  c.w[iVar13 >> 2] =\n       c.w[iVar13 >> 2] | 1 << ((((char)len + (bVar8 >> 6) & 3) - (bVar8 >> 6)) * '\b' & 0x1f);\n  bigval_add(&c,&c,&ctx->h);\n  uVar16 = (ctx->r).w[2];\n  uVar28 = (ctx->r).w[0];\n  uVar14 = (ctx->r).w[3];\n  uVar2 = (ctx->r).w[1];\n  uVar15 = (ctx->r).w[4];\n  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[0] + ((ulonglong)uVar28 * (ulonglong)c.w[0] >> 0x20);\n  uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[0] + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[0] + (uVar4 >> 0x20);\n  uVar6 = (ulonglong)c.w[0] * (ulonglong)uVar15 + (uVar5 >> 0x20);\n  lVar9 = (ulonglong)uVar28 * (ulonglong)c.w[1] + (uVar3 & 0xffffffff);\n  uVar26 = (uint)((ulonglong)lVar9 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);\n  uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[1] + (uVar6 & 0xffffffff) + (uVar4 >> 0x20);\n  uVar6 = (ulonglong)c.w[1] * (ulonglong)uVar15 + (uVar6 >> 0x20) + (uVar5 >> 0x20);\n  lVar10 = (ulonglong)uVar28 * (ulonglong)c.w[2] + (uVar3 & 0xffffffff);\n  uVar26 = (uint)((ulonglong)lVar10 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);\n  uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[2] + (uVar6 & 0xffffffff) + (uVar4 >> 0x20);\n  uVar6 = (ulonglong)uVar15 * (ulonglong)c.w[2] + (uVar6 >> 0x20) + (uVar5 >> 0x20);\n  lVar11 = (ulonglong)uVar28 * (ulonglong)c.w[3] + (uVar3 & 0xffffffff);\n  uVar26 = (uint)((ulonglong)lVar11 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);\n  uVar5 = (ulonglong)uVar16 * (ulonglong)c.w[3] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar4 = (ulonglong)uVar14 * (ulonglong)c.w[3] + (uVar6 & 0xffffffff) + (uVar5 >> 0x20);\n  uVar6 = (ulonglong)uVar15 * (ulonglong)c.w[3] + (uVar6 >> 0x20) + (uVar4 >> 0x20);\n  lVar7 = (ulonglong)uVar28 * (ulonglong)c.w[4] + (uVar3 & 0xffffffff);\n  uVar21 = (uint)lVar7;\n  uVar26 = (uint)((ulonglong)lVar7 >> 0x20);\n  local_74 = (uint)uVar5;\n  uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);\n  uVar26 = (uint)uVar3;\n  lVar12 = (ulonglong)uVar16 * (ulonglong)c.w[4] + (uVar4 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar22 = (uint)lVar12;\n  local_60 = (int)(uVar6 >> 0x20);\n  lVar7 = (ulonglong)uVar14 * (ulonglong)c.w[4] + (uVar6 & 0xffffffff);\n  uVar16 = (uint)lVar7;\n  local_a0 = (uint)((ulonglong)lVar12 >> 0x20);\n  uVar23 = local_a0 + uVar16;\n  uVar16 = local_60 + uVar15 * c.w[4] +\n           (int)((ulonglong)lVar7 >> 0x20) + (uint)CARRY4(local_a0,uVar16);\n  uVar14 = uVar21 >> 2;\n  uVar15 = uVar14 | uVar26 << 0x1e;\n  uVar2 = uVar15 * 5;\n  uVar27 = (uVar26 & 3) + (uint)CARRY4(uVar14 * 4,uVar15);\n  uVar15 = uVar26 >> 2 | uVar22 << 0x1e;\n  uVar14 = uVar15 * 5;\n  uVar24 = uVar27 + uVar14;\n  uVar26 = (uVar22 & 3) + (uint)CARRY4(uVar15,(uVar26 >> 2) * 4) + (uint)CARRY4(uVar27,uVar14);\n  uVar15 = uVar22 >> 2 | uVar23 * 0x40000000;\n  uVar14 = uVar15 * 5;\n  local_84 = (uint)((ulonglong)uVar28 * (ulonglong)c.w[0]);\n  uVar27 = uVar26 + uVar14;\n  uVar19 = (uVar23 & 3) + (uint)CARRY4(uVar15,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar26,uVar14);\n  uVar22 = uVar23 >> 2 | uVar16 * 0x40000000;\n  uVar15 = uVar22 * 5;\n  uVar17 = uVar19 + uVar15;\n  uVar18 = local_84 + uVar2;\n  uVar28 = (uint)CARRY4(local_84,uVar2);\n  local_5c = (uint)lVar9;\n  uVar14 = local_5c + uVar28;\n  uVar25 = uVar14 + uVar24;\n  local_54 = (uint)lVar10;\n  uVar28 = (uint)CARRY4(local_5c,uVar28) + (uint)CARRY4(uVar14,uVar24);\n  uVar14 = uVar28 + uVar27;\n  local_4c = (uint)lVar11;\n  uVar29 = uVar14 + local_54;\n  uVar20 = (uint)CARRY4(uVar28,uVar27) + (uint)CARRY4(uVar14,local_54);\n  uVar24 = uVar17 + local_4c;\n  uVar27 = uVar20 + uVar24;\n  uVar26 = (uVar16 >> 4) * 0x19;\n  uVar28 = (uint)CARRY4(uVar26,uVar18);\n  uVar14 = (uint)CARRY4(uVar28,uVar25);\n  uVar2 = (uint)CARRY4(uVar14,uVar29);\n  (ctx->h).w[0] = uVar26 + uVar18;\n  (ctx->h).w[2] = uVar14 + uVar29;\n  (ctx->h).w[1] = uVar28 + uVar25;\n  (ctx->h).w[3] = uVar2 + uVar27;\n  (ctx->h).w[4] =\n       (uVar16 >> 2 & 3) * 5 + (uVar21 & 3) +\n       (uVar16 & 3) + (uint)CARRY4(uVar22,(uVar23 >> 2) * 4) + (uint)CARRY4(uVar19,uVar15) +\n       (uint)CARRY4(uVar17,local_4c) + (uint)CARRY4(uVar20,uVar24) + (uint)CARRY4(uVar2,uVar27);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "ulonglong uVar3;" type_identifier identifier ;) (declaration "ulonglong uVar4;" type_identifier identifier ;) (declaration "ulonglong uVar5;" type_identifier identifier ;) (declaration "ulonglong uVar6;" type_identifier identifier ;) (declaration "longlong lVar7;" type_identifier identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "longlong lVar9;" type_identifier identifier ;) (declaration "longlong lVar10;" type_identifier identifier ;) (declaration "longlong lVar11;" type_identifier identifier ;) (declaration "longlong lVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "bigval c;" type_identifier identifier ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "c.w[0] = 0;" (assignment_expression "c.w[0] = 0" (subscript_expression "c.w[0]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "c.w[1] = 0;" (assignment_expression "c.w[1] = 0" (subscript_expression "c.w[1]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "c.w[2] = 0;" (assignment_expression "c.w[2] = 0" (subscript_expression "c.w[2]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "c.w[3] = 0;" (assignment_expression "c.w[3] = 0" (subscript_expression "c.w[3]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "c.w[4] = 0;" (assignment_expression "c.w[4] = 0" (subscript_expression "c.w[4]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "bigval_import_le(&c,chunk,len);" (call_expression "bigval_import_le(&c,chunk,len)" identifier (argument_list "(&c,chunk,len)" ( (pointer_expression "&c" & identifier) , identifier , identifier ))) ;) (expression_statement "iVar13 = len + 3;" (assignment_expression "iVar13 = len + 3" identifier = (binary_expression "len + 3" identifier + number_literal)) ;) (if_statement "if (-1 < len) {\n    iVar13 = len;\n  }" if (parenthesized_expression "(-1 < len)" ( (binary_expression "-1 < len" number_literal < identifier) )) (compound_statement "{\n    iVar13 = len;\n  }" { (expression_statement "iVar13 = len;" (assignment_expression "iVar13 = len" identifier = identifier) ;) })) (expression_statement "bVar8 = (byte)(len >> 0x1f);" (assignment_expression "bVar8 = (byte)(len >> 0x1f)" identifier = (call_expression "(byte)(len >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(len >> 0x1f)" ( (binary_expression "len >> 0x1f" identifier >> number_literal) )))) ;) (expression_statement "c.w[iVar13 >> 2] =\n       c.w[iVar13 >> 2] | 1 << ((((char)len + (bVar8 >> 6) & 3) - (bVar8 >> 6)) * '\b' & 0x1f);" (assignment_expression "c.w[iVar13 >> 2] =\n       c.w[iVar13 >> 2] | 1 << ((((char)len + (bVar8 >> 6) & 3) - (bVar8 >> 6)) * '\b' & 0x1f)" (subscript_expression "c.w[iVar13 >> 2]" (field_expression "c.w" identifier . field_identifier) [ (binary_expression "iVar13 >> 2" identifier >> number_literal) ]) = (binary_expression "c.w[iVar13 >> 2] | 1 << ((((char)len + (bVar8 >> 6) & 3) - (bVar8 >> 6)) * '\b' & 0x1f)" (subscript_expression "c.w[iVar13 >> 2]" (field_expression "c.w" identifier . field_identifier) [ (binary_expression "iVar13 >> 2" identifier >> number_literal) ]) | (binary_expression "1 << ((((char)len + (bVar8 >> 6) & 3) - (bVar8 >> 6)) * '\b' & 0x1f)" number_literal << (parenthesized_expression "((((char)len + (bVar8 >> 6) & 3) - (bVar8 >> 6)) * '\b' & 0x1f)" ( (binary_expression "(((char)len + (bVar8 >> 6) & 3) - (bVar8 >> 6)) * '\b' & 0x1f" (binary_expression "(((char)len + (bVar8 >> 6) & 3) - (bVar8 >> 6)) * '\b'" (parenthesized_expression "(((char)len + (bVar8 >> 6) & 3) - (bVar8 >> 6))" ( (binary_expression "((char)len + (bVar8 >> 6) & 3) - (bVar8 >> 6)" (parenthesized_expression "((char)len + (bVar8 >> 6) & 3)" ( (binary_expression "(char)len + (bVar8 >> 6) & 3" (binary_expression "(char)len + (bVar8 >> 6)" (cast_expression "(char)len" ( (type_descriptor "char" primitive_type) ) identifier) + (parenthesized_expression "(bVar8 >> 6)" ( (binary_expression "bVar8 >> 6" identifier >> number_literal) ))) & number_literal) )) - (parenthesized_expression "(bVar8 >> 6)" ( (binary_expression "bVar8 >> 6" identifier >> number_literal) ))) )) * (char_literal "'\b'" ' escape_sequence ')) & number_literal) ))))) ;) (expression_statement "bigval_add(&c,&c,&ctx->h);" (call_expression "bigval_add(&c,&c,&ctx->h)" identifier (argument_list "(&c,&c,&ctx->h)" ( (pointer_expression "&c" & identifier) , (pointer_expression "&c" & identifier) , (pointer_expression "&ctx->h" & (field_expression "ctx->h" identifier -> field_identifier)) ))) ;) (expression_statement "uVar16 = (ctx->r).w[2];" (assignment_expression "uVar16 = (ctx->r).w[2]" identifier = (subscript_expression "(ctx->r).w[2]" (field_expression "(ctx->r).w" (parenthesized_expression "(ctx->r)" ( (field_expression "ctx->r" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "uVar28 = (ctx->r).w[0];" (assignment_expression "uVar28 = (ctx->r).w[0]" identifier = (subscript_expression "(ctx->r).w[0]" (field_expression "(ctx->r).w" (parenthesized_expression "(ctx->r)" ( (field_expression "ctx->r" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "uVar14 = (ctx->r).w[3];" (assignment_expression "uVar14 = (ctx->r).w[3]" identifier = (subscript_expression "(ctx->r).w[3]" (field_expression "(ctx->r).w" (parenthesized_expression "(ctx->r)" ( (field_expression "ctx->r" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "uVar2 = (ctx->r).w[1];" (assignment_expression "uVar2 = (ctx->r).w[1]" identifier = (subscript_expression "(ctx->r).w[1]" (field_expression "(ctx->r).w" (parenthesized_expression "(ctx->r)" ( (field_expression "ctx->r" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "uVar15 = (ctx->r).w[4];" (assignment_expression "uVar15 = (ctx->r).w[4]" identifier = (subscript_expression "(ctx->r).w[4]" (field_expression "(ctx->r).w" (parenthesized_expression "(ctx->r)" ( (field_expression "ctx->r" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[0] + ((ulonglong)uVar28 * (ulonglong)c.w[0] >> 0x20);" (assignment_expression "uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[0] + ((ulonglong)uVar28 * (ulonglong)c.w[0] >> 0x20)" identifier = (binary_expression "(ulonglong)uVar2 * (ulonglong)c.w[0] + ((ulonglong)uVar28 * (ulonglong)c.w[0] >> 0x20)" (binary_expression "(ulonglong)uVar2 * (ulonglong)c.w[0]" (cast_expression "(ulonglong)uVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[0]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "((ulonglong)uVar28 * (ulonglong)c.w[0] >> 0x20)" ( (binary_expression "(ulonglong)uVar28 * (ulonglong)c.w[0] >> 0x20" (binary_expression "(ulonglong)uVar28 * (ulonglong)c.w[0]" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[0]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) >> number_literal) )))) ;) (expression_statement "uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[0] + (uVar3 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[0] + (uVar3 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar16 * (ulonglong)c.w[0] + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar16 * (ulonglong)c.w[0]" (cast_expression "(ulonglong)uVar16" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[0]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar3 >> 0x20)" ( (binary_expression "uVar3 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[0] + (uVar4 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[0] + (uVar4 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar14 * (ulonglong)c.w[0] + (uVar4 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)c.w[0]" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[0]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar4 >> 0x20)" ( (binary_expression "uVar4 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar6 = (ulonglong)c.w[0] * (ulonglong)uVar15 + (uVar5 >> 0x20);" (assignment_expression "uVar6 = (ulonglong)c.w[0] * (ulonglong)uVar15 + (uVar5 >> 0x20)" identifier = (binary_expression "(ulonglong)c.w[0] * (ulonglong)uVar15 + (uVar5 >> 0x20)" (binary_expression "(ulonglong)c.w[0] * (ulonglong)uVar15" (cast_expression "(ulonglong)c.w[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[0]" (field_expression "c.w" identifier . field_identifier) [ number_literal ])) * (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) + (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "lVar9 = (ulonglong)uVar28 * (ulonglong)c.w[1] + (uVar3 & 0xffffffff);" (assignment_expression "lVar9 = (ulonglong)uVar28 * (ulonglong)c.w[1] + (uVar3 & 0xffffffff)" identifier = (binary_expression "(ulonglong)uVar28 * (ulonglong)c.w[1] + (uVar3 & 0xffffffff)" (binary_expression "(ulonglong)uVar28 * (ulonglong)c.w[1]" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[1]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[1]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar3 & 0xffffffff)" ( (binary_expression "uVar3 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar26 = (uint)((ulonglong)lVar9 >> 0x20);" (assignment_expression "uVar26 = (uint)((ulonglong)lVar9 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar9 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar9 >> 0x20)" ( (binary_expression "(ulonglong)lVar9 >> 0x20" (cast_expression "(ulonglong)lVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar4;" (assignment_expression "local_74 = (uint)uVar4" identifier = (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);" (assignment_expression "uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" identifier = (binary_expression "(ulonglong)uVar2 * (ulonglong)c.w[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" (binary_expression "(ulonglong)uVar2 * (ulonglong)c.w[1]" (cast_expression "(ulonglong)uVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[1]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[1]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" identifier (argument_list "(CARRY4(uVar26,local_74),uVar26 + local_74)" ( (call_expression "CARRY4(uVar26,local_74)" identifier (argument_list "(uVar26,local_74)" ( identifier , identifier ))) , (binary_expression "uVar26 + local_74" identifier + identifier) )))))) ;) (expression_statement "uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar16 * (ulonglong)c.w[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar16 * (ulonglong)c.w[1] + (uVar5 & 0xffffffff)" (binary_expression "(ulonglong)uVar16 * (ulonglong)c.w[1]" (cast_expression "(ulonglong)uVar16" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[1]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[1]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar5 & 0xffffffff)" ( (binary_expression "uVar5 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar3 >> 0x20)" ( (binary_expression "uVar3 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[1] + (uVar6 & 0xffffffff) + (uVar4 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[1] + (uVar6 & 0xffffffff) + (uVar4 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar14 * (ulonglong)c.w[1] + (uVar6 & 0xffffffff) + (uVar4 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)c.w[1] + (uVar6 & 0xffffffff)" (binary_expression "(ulonglong)uVar14 * (ulonglong)c.w[1]" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[1]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[1]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar6 & 0xffffffff)" ( (binary_expression "uVar6 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar4 >> 0x20)" ( (binary_expression "uVar4 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar6 = (ulonglong)c.w[1] * (ulonglong)uVar15 + (uVar6 >> 0x20) + (uVar5 >> 0x20);" (assignment_expression "uVar6 = (ulonglong)c.w[1] * (ulonglong)uVar15 + (uVar6 >> 0x20) + (uVar5 >> 0x20)" identifier = (binary_expression "(ulonglong)c.w[1] * (ulonglong)uVar15 + (uVar6 >> 0x20) + (uVar5 >> 0x20)" (binary_expression "(ulonglong)c.w[1] * (ulonglong)uVar15 + (uVar6 >> 0x20)" (binary_expression "(ulonglong)c.w[1] * (ulonglong)uVar15" (cast_expression "(ulonglong)c.w[1]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[1]" (field_expression "c.w" identifier . field_identifier) [ number_literal ])) * (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) + (parenthesized_expression "(uVar6 >> 0x20)" ( (binary_expression "uVar6 >> 0x20" identifier >> number_literal) ))) + (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "lVar10 = (ulonglong)uVar28 * (ulonglong)c.w[2] + (uVar3 & 0xffffffff);" (assignment_expression "lVar10 = (ulonglong)uVar28 * (ulonglong)c.w[2] + (uVar3 & 0xffffffff)" identifier = (binary_expression "(ulonglong)uVar28 * (ulonglong)c.w[2] + (uVar3 & 0xffffffff)" (binary_expression "(ulonglong)uVar28 * (ulonglong)c.w[2]" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[2]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[2]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar3 & 0xffffffff)" ( (binary_expression "uVar3 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar26 = (uint)((ulonglong)lVar10 >> 0x20);" (assignment_expression "uVar26 = (uint)((ulonglong)lVar10 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar10 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar10 >> 0x20)" ( (binary_expression "(ulonglong)lVar10 >> 0x20" (cast_expression "(ulonglong)lVar10" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar4;" (assignment_expression "local_74 = (uint)uVar4" identifier = (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);" (assignment_expression "uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" identifier = (binary_expression "(ulonglong)uVar2 * (ulonglong)c.w[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" (binary_expression "(ulonglong)uVar2 * (ulonglong)c.w[2]" (cast_expression "(ulonglong)uVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[2]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[2]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" identifier (argument_list "(CARRY4(uVar26,local_74),uVar26 + local_74)" ( (call_expression "CARRY4(uVar26,local_74)" identifier (argument_list "(uVar26,local_74)" ( identifier , identifier ))) , (binary_expression "uVar26 + local_74" identifier + identifier) )))))) ;) (expression_statement "uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar16 * (ulonglong)c.w[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar16 * (ulonglong)c.w[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar16 * (ulonglong)c.w[2] + (uVar5 & 0xffffffff)" (binary_expression "(ulonglong)uVar16 * (ulonglong)c.w[2]" (cast_expression "(ulonglong)uVar16" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[2]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[2]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar5 & 0xffffffff)" ( (binary_expression "uVar5 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar3 >> 0x20)" ( (binary_expression "uVar3 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[2] + (uVar6 & 0xffffffff) + (uVar4 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)uVar14 * (ulonglong)c.w[2] + (uVar6 & 0xffffffff) + (uVar4 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar14 * (ulonglong)c.w[2] + (uVar6 & 0xffffffff) + (uVar4 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)c.w[2] + (uVar6 & 0xffffffff)" (binary_expression "(ulonglong)uVar14 * (ulonglong)c.w[2]" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[2]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[2]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar6 & 0xffffffff)" ( (binary_expression "uVar6 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar4 >> 0x20)" ( (binary_expression "uVar4 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar6 = (ulonglong)uVar15 * (ulonglong)c.w[2] + (uVar6 >> 0x20) + (uVar5 >> 0x20);" (assignment_expression "uVar6 = (ulonglong)uVar15 * (ulonglong)c.w[2] + (uVar6 >> 0x20) + (uVar5 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar15 * (ulonglong)c.w[2] + (uVar6 >> 0x20) + (uVar5 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)c.w[2] + (uVar6 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)c.w[2]" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[2]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[2]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar6 >> 0x20)" ( (binary_expression "uVar6 >> 0x20" identifier >> number_literal) ))) + (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "lVar11 = (ulonglong)uVar28 * (ulonglong)c.w[3] + (uVar3 & 0xffffffff);" (assignment_expression "lVar11 = (ulonglong)uVar28 * (ulonglong)c.w[3] + (uVar3 & 0xffffffff)" identifier = (binary_expression "(ulonglong)uVar28 * (ulonglong)c.w[3] + (uVar3 & 0xffffffff)" (binary_expression "(ulonglong)uVar28 * (ulonglong)c.w[3]" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[3]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[3]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar3 & 0xffffffff)" ( (binary_expression "uVar3 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar26 = (uint)((ulonglong)lVar11 >> 0x20);" (assignment_expression "uVar26 = (uint)((ulonglong)lVar11 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar11 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar11 >> 0x20)" ( (binary_expression "(ulonglong)lVar11 >> 0x20" (cast_expression "(ulonglong)lVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar4;" (assignment_expression "local_74 = (uint)uVar4" identifier = (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);" (assignment_expression "uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" identifier = (binary_expression "(ulonglong)uVar2 * (ulonglong)c.w[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" (binary_expression "(ulonglong)uVar2 * (ulonglong)c.w[3]" (cast_expression "(ulonglong)uVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[3]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[3]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" identifier (argument_list "(CARRY4(uVar26,local_74),uVar26 + local_74)" ( (call_expression "CARRY4(uVar26,local_74)" identifier (argument_list "(uVar26,local_74)" ( identifier , identifier ))) , (binary_expression "uVar26 + local_74" identifier + identifier) )))))) ;) (expression_statement "uVar5 = (ulonglong)uVar16 * (ulonglong)c.w[3] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)uVar16 * (ulonglong)c.w[3] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar16 * (ulonglong)c.w[3] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar16 * (ulonglong)c.w[3] + (uVar5 & 0xffffffff)" (binary_expression "(ulonglong)uVar16 * (ulonglong)c.w[3]" (cast_expression "(ulonglong)uVar16" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[3]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[3]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar5 & 0xffffffff)" ( (binary_expression "uVar5 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar3 >> 0x20)" ( (binary_expression "uVar3 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar4 = (ulonglong)uVar14 * (ulonglong)c.w[3] + (uVar6 & 0xffffffff) + (uVar5 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar14 * (ulonglong)c.w[3] + (uVar6 & 0xffffffff) + (uVar5 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar14 * (ulonglong)c.w[3] + (uVar6 & 0xffffffff) + (uVar5 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)c.w[3] + (uVar6 & 0xffffffff)" (binary_expression "(ulonglong)uVar14 * (ulonglong)c.w[3]" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[3]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[3]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar6 & 0xffffffff)" ( (binary_expression "uVar6 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar6 = (ulonglong)uVar15 * (ulonglong)c.w[3] + (uVar6 >> 0x20) + (uVar4 >> 0x20);" (assignment_expression "uVar6 = (ulonglong)uVar15 * (ulonglong)c.w[3] + (uVar6 >> 0x20) + (uVar4 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar15 * (ulonglong)c.w[3] + (uVar6 >> 0x20) + (uVar4 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)c.w[3] + (uVar6 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)c.w[3]" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[3]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[3]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar6 >> 0x20)" ( (binary_expression "uVar6 >> 0x20" identifier >> number_literal) ))) + (parenthesized_expression "(uVar4 >> 0x20)" ( (binary_expression "uVar4 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "lVar7 = (ulonglong)uVar28 * (ulonglong)c.w[4] + (uVar3 & 0xffffffff);" (assignment_expression "lVar7 = (ulonglong)uVar28 * (ulonglong)c.w[4] + (uVar3 & 0xffffffff)" identifier = (binary_expression "(ulonglong)uVar28 * (ulonglong)c.w[4] + (uVar3 & 0xffffffff)" (binary_expression "(ulonglong)uVar28 * (ulonglong)c.w[4]" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[4]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[4]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar3 & 0xffffffff)" ( (binary_expression "uVar3 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar21 = (uint)lVar7;" (assignment_expression "uVar21 = (uint)lVar7" identifier = (cast_expression "(uint)lVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar26 = (uint)((ulonglong)lVar7 >> 0x20);" (assignment_expression "uVar26 = (uint)((ulonglong)lVar7 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar7 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar7 >> 0x20)" ( (binary_expression "(ulonglong)lVar7 >> 0x20" (cast_expression "(ulonglong)lVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar5;" (assignment_expression "local_74 = (uint)uVar5" identifier = (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74);" (assignment_expression "uVar3 = (ulonglong)uVar2 * (ulonglong)c.w[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" identifier = (binary_expression "(ulonglong)uVar2 * (ulonglong)c.w[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" (binary_expression "(ulonglong)uVar2 * (ulonglong)c.w[4]" (cast_expression "(ulonglong)uVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[4]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[4]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(CARRY4(uVar26,local_74),uVar26 + local_74)" identifier (argument_list "(CARRY4(uVar26,local_74),uVar26 + local_74)" ( (call_expression "CARRY4(uVar26,local_74)" identifier (argument_list "(uVar26,local_74)" ( identifier , identifier ))) , (binary_expression "uVar26 + local_74" identifier + identifier) )))))) ;) (expression_statement "uVar26 = (uint)uVar3;" (assignment_expression "uVar26 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar12 = (ulonglong)uVar16 * (ulonglong)c.w[4] + (uVar4 & 0xffffffff) + (uVar3 >> 0x20);" (assignment_expression "lVar12 = (ulonglong)uVar16 * (ulonglong)c.w[4] + (uVar4 & 0xffffffff) + (uVar3 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar16 * (ulonglong)c.w[4] + (uVar4 & 0xffffffff) + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar16 * (ulonglong)c.w[4] + (uVar4 & 0xffffffff)" (binary_expression "(ulonglong)uVar16 * (ulonglong)c.w[4]" (cast_expression "(ulonglong)uVar16" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[4]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[4]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar4 & 0xffffffff)" ( (binary_expression "uVar4 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar3 >> 0x20)" ( (binary_expression "uVar3 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar22 = (uint)lVar12;" (assignment_expression "uVar22 = (uint)lVar12" identifier = (cast_expression "(uint)lVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_60 = (int)(uVar6 >> 0x20);" (assignment_expression "local_60 = (int)(uVar6 >> 0x20)" identifier = (cast_expression "(int)(uVar6 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 >> 0x20)" ( (binary_expression "uVar6 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "lVar7 = (ulonglong)uVar14 * (ulonglong)c.w[4] + (uVar6 & 0xffffffff);" (assignment_expression "lVar7 = (ulonglong)uVar14 * (ulonglong)c.w[4] + (uVar6 & 0xffffffff)" identifier = (binary_expression "(ulonglong)uVar14 * (ulonglong)c.w[4] + (uVar6 & 0xffffffff)" (binary_expression "(ulonglong)uVar14 * (ulonglong)c.w[4]" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[4]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[4]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (parenthesized_expression "(uVar6 & 0xffffffff)" ( (binary_expression "uVar6 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar16 = (uint)lVar7;" (assignment_expression "uVar16 = (uint)lVar7" identifier = (cast_expression "(uint)lVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_a0 = (uint)((ulonglong)lVar12 >> 0x20);" (assignment_expression "local_a0 = (uint)((ulonglong)lVar12 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar12 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar12 >> 0x20)" ( (binary_expression "(ulonglong)lVar12 >> 0x20" (cast_expression "(ulonglong)lVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar23 = local_a0 + uVar16;" (assignment_expression "uVar23 = local_a0 + uVar16" identifier = (binary_expression "local_a0 + uVar16" identifier + identifier)) ;) (expression_statement "uVar16 = local_60 + uVar15 * c.w[4] +\n           (int)((ulonglong)lVar7 >> 0x20) + (uint)CARRY4(local_a0,uVar16);" (assignment_expression "uVar16 = local_60 + uVar15 * c.w[4] +\n           (int)((ulonglong)lVar7 >> 0x20) + (uint)CARRY4(local_a0,uVar16)" identifier = (binary_expression "local_60 + uVar15 * c.w[4] +\n           (int)((ulonglong)lVar7 >> 0x20) + (uint)CARRY4(local_a0,uVar16)" (binary_expression "local_60 + uVar15 * c.w[4] +\n           (int)((ulonglong)lVar7 >> 0x20)" (binary_expression "local_60 + uVar15 * c.w[4]" identifier + (binary_expression "uVar15 * c.w[4]" identifier * (subscript_expression "c.w[4]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) + (cast_expression "(int)((ulonglong)lVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar7 >> 0x20)" ( (binary_expression "(ulonglong)lVar7 >> 0x20" (cast_expression "(ulonglong)lVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) + (cast_expression "(uint)CARRY4(local_a0,uVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_a0,uVar16)" identifier (argument_list "(local_a0,uVar16)" ( identifier , identifier )))))) ;) (expression_statement "uVar14 = uVar21 >> 2;" (assignment_expression "uVar14 = uVar21 >> 2" identifier = (binary_expression "uVar21 >> 2" identifier >> number_literal)) ;) (expression_statement "uVar15 = uVar14 | uVar26 << 0x1e;" (assignment_expression "uVar15 = uVar14 | uVar26 << 0x1e" identifier = (binary_expression "uVar14 | uVar26 << 0x1e" identifier | (binary_expression "uVar26 << 0x1e" identifier << number_literal))) ;) (expression_statement "uVar2 = uVar15 * 5;" (assignment_expression "uVar2 = uVar15 * 5" identifier = (binary_expression "uVar15 * 5" identifier * number_literal)) ;) (expression_statement "uVar27 = (uVar26 & 3) + (uint)CARRY4(uVar14 * 4,uVar15);" (assignment_expression "uVar27 = (uVar26 & 3) + (uint)CARRY4(uVar14 * 4,uVar15)" identifier = (binary_expression "(uVar26 & 3) + (uint)CARRY4(uVar14 * 4,uVar15)" (parenthesized_expression "(uVar26 & 3)" ( (binary_expression "uVar26 & 3" identifier & number_literal) )) + (cast_expression "(uint)CARRY4(uVar14 * 4,uVar15)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14 * 4,uVar15)" identifier (argument_list "(uVar14 * 4,uVar15)" ( (binary_expression "uVar14 * 4" identifier * number_literal) , identifier )))))) ;) (expression_statement "uVar15 = uVar26 >> 2 | uVar22 << 0x1e;" (assignment_expression "uVar15 = uVar26 >> 2 | uVar22 << 0x1e" identifier = (binary_expression "uVar26 >> 2 | uVar22 << 0x1e" (binary_expression "uVar26 >> 2" identifier >> number_literal) | (binary_expression "uVar22 << 0x1e" identifier << number_literal))) ;) (expression_statement "uVar14 = uVar15 * 5;" (assignment_expression "uVar14 = uVar15 * 5" identifier = (binary_expression "uVar15 * 5" identifier * number_literal)) ;) (expression_statement "uVar24 = uVar27 + uVar14;" (assignment_expression "uVar24 = uVar27 + uVar14" identifier = (binary_expression "uVar27 + uVar14" identifier + identifier)) ;) (expression_statement "uVar26 = (uVar22 & 3) + (uint)CARRY4(uVar15,(uVar26 >> 2) * 4) + (uint)CARRY4(uVar27,uVar14);" (assignment_expression "uVar26 = (uVar22 & 3) + (uint)CARRY4(uVar15,(uVar26 >> 2) * 4) + (uint)CARRY4(uVar27,uVar14)" identifier = (binary_expression "(uVar22 & 3) + (uint)CARRY4(uVar15,(uVar26 >> 2) * 4) + (uint)CARRY4(uVar27,uVar14)" (binary_expression "(uVar22 & 3) + (uint)CARRY4(uVar15,(uVar26 >> 2) * 4)" (parenthesized_expression "(uVar22 & 3)" ( (binary_expression "uVar22 & 3" identifier & number_literal) )) + (cast_expression "(uint)CARRY4(uVar15,(uVar26 >> 2) * 4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar15,(uVar26 >> 2) * 4)" identifier (argument_list "(uVar15,(uVar26 >> 2) * 4)" ( identifier , (binary_expression "(uVar26 >> 2) * 4" (parenthesized_expression "(uVar26 >> 2)" ( (binary_expression "uVar26 >> 2" identifier >> number_literal) )) * number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar27,uVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27,uVar14)" identifier (argument_list "(uVar27,uVar14)" ( identifier , identifier )))))) ;) (expression_statement "uVar15 = uVar22 >> 2 | uVar23 * 0x40000000;" (assignment_expression "uVar15 = uVar22 >> 2 | uVar23 * 0x40000000" identifier = (binary_expression "uVar22 >> 2 | uVar23 * 0x40000000" (binary_expression "uVar22 >> 2" identifier >> number_literal) | (binary_expression "uVar23 * 0x40000000" identifier * number_literal))) ;) (expression_statement "uVar14 = uVar15 * 5;" (assignment_expression "uVar14 = uVar15 * 5" identifier = (binary_expression "uVar15 * 5" identifier * number_literal)) ;) (expression_statement "local_84 = (uint)((ulonglong)uVar28 * (ulonglong)c.w[0]);" (assignment_expression "local_84 = (uint)((ulonglong)uVar28 * (ulonglong)c.w[0])" identifier = (call_expression "(uint)((ulonglong)uVar28 * (ulonglong)c.w[0])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar28 * (ulonglong)c.w[0])" ( (binary_expression "(ulonglong)uVar28 * (ulonglong)c.w[0]" (cast_expression "(ulonglong)uVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)c.w[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "c.w[0]" (field_expression "c.w" identifier . field_identifier) [ number_literal ]))) )))) ;) (expression_statement "uVar27 = uVar26 + uVar14;" (assignment_expression "uVar27 = uVar26 + uVar14" identifier = (binary_expression "uVar26 + uVar14" identifier + identifier)) ;) (expression_statement "uVar19 = (uVar23 & 3) + (uint)CARRY4(uVar15,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar26,uVar14);" (assignment_expression "uVar19 = (uVar23 & 3) + (uint)CARRY4(uVar15,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar26,uVar14)" identifier = (binary_expression "(uVar23 & 3) + (uint)CARRY4(uVar15,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar26,uVar14)" (binary_expression "(uVar23 & 3) + (uint)CARRY4(uVar15,(uVar22 >> 2) * 4)" (parenthesized_expression "(uVar23 & 3)" ( (binary_expression "uVar23 & 3" identifier & number_literal) )) + (cast_expression "(uint)CARRY4(uVar15,(uVar22 >> 2) * 4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar15,(uVar22 >> 2) * 4)" identifier (argument_list "(uVar15,(uVar22 >> 2) * 4)" ( identifier , (binary_expression "(uVar22 >> 2) * 4" (parenthesized_expression "(uVar22 >> 2)" ( (binary_expression "uVar22 >> 2" identifier >> number_literal) )) * number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar26,uVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar26,uVar14)" identifier (argument_list "(uVar26,uVar14)" ( identifier , identifier )))))) ;) (expression_statement "uVar22 = uVar23 >> 2 | uVar16 * 0x40000000;" (assignment_expression "uVar22 = uVar23 >> 2 | uVar16 * 0x40000000" identifier = (binary_expression "uVar23 >> 2 | uVar16 * 0x40000000" (binary_expression "uVar23 >> 2" identifier >> number_literal) | (binary_expression "uVar16 * 0x40000000" identifier * number_literal))) ;) (expression_statement "uVar15 = uVar22 * 5;" (assignment_expression "uVar15 = uVar22 * 5" identifier = (binary_expression "uVar22 * 5" identifier * number_literal)) ;) (expression_statement "uVar17 = uVar19 + uVar15;" (assignment_expression "uVar17 = uVar19 + uVar15" identifier = (binary_expression "uVar19 + uVar15" identifier + identifier)) ;) (expression_statement "uVar18 = local_84 + uVar2;" (assignment_expression "uVar18 = local_84 + uVar2" identifier = (binary_expression "local_84 + uVar2" identifier + identifier)) ;) (expression_statement "uVar28 = (uint)CARRY4(local_84,uVar2);" (assignment_expression "uVar28 = (uint)CARRY4(local_84,uVar2)" identifier = (cast_expression "(uint)CARRY4(local_84,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_84,uVar2)" identifier (argument_list "(local_84,uVar2)" ( identifier , identifier ))))) ;) (expression_statement "local_5c = (uint)lVar9;" (assignment_expression "local_5c = (uint)lVar9" identifier = (cast_expression "(uint)lVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar14 = local_5c + uVar28;" (assignment_expression "uVar14 = local_5c + uVar28" identifier = (binary_expression "local_5c + uVar28" identifier + identifier)) ;) (expression_statement "uVar25 = uVar14 + uVar24;" (assignment_expression "uVar25 = uVar14 + uVar24" identifier = (binary_expression "uVar14 + uVar24" identifier + identifier)) ;) (expression_statement "local_54 = (uint)lVar10;" (assignment_expression "local_54 = (uint)lVar10" identifier = (cast_expression "(uint)lVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar28 = (uint)CARRY4(local_5c,uVar28) + (uint)CARRY4(uVar14,uVar24);" (assignment_expression "uVar28 = (uint)CARRY4(local_5c,uVar28) + (uint)CARRY4(uVar14,uVar24)" identifier = (binary_expression "(uint)CARRY4(local_5c,uVar28) + (uint)CARRY4(uVar14,uVar24)" (cast_expression "(uint)CARRY4(local_5c,uVar28)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_5c,uVar28)" identifier (argument_list "(local_5c,uVar28)" ( identifier , identifier )))) + (cast_expression "(uint)CARRY4(uVar14,uVar24)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,uVar24)" identifier (argument_list "(uVar14,uVar24)" ( identifier , identifier )))))) ;) (expression_statement "uVar14 = uVar28 + uVar27;" (assignment_expression "uVar14 = uVar28 + uVar27" identifier = (binary_expression "uVar28 + uVar27" identifier + identifier)) ;) (expression_statement "local_4c = (uint)lVar11;" (assignment_expression "local_4c = (uint)lVar11" identifier = (cast_expression "(uint)lVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar29 = uVar14 + local_54;" (assignment_expression "uVar29 = uVar14 + local_54" identifier = (binary_expression "uVar14 + local_54" identifier + identifier)) ;) (expression_statement "uVar20 = (uint)CARRY4(uVar28,uVar27) + (uint)CARRY4(uVar14,local_54);" (assignment_expression "uVar20 = (uint)CARRY4(uVar28,uVar27) + (uint)CARRY4(uVar14,local_54)" identifier = (binary_expression "(uint)CARRY4(uVar28,uVar27) + (uint)CARRY4(uVar14,local_54)" (cast_expression "(uint)CARRY4(uVar28,uVar27)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar28,uVar27)" identifier (argument_list "(uVar28,uVar27)" ( identifier , identifier )))) + (cast_expression "(uint)CARRY4(uVar14,local_54)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,local_54)" identifier (argument_list "(uVar14,local_54)" ( identifier , identifier )))))) ;) (expression_statement "uVar24 = uVar17 + local_4c;" (assignment_expression "uVar24 = uVar17 + local_4c" identifier = (binary_expression "uVar17 + local_4c" identifier + identifier)) ;) (expression_statement "uVar27 = uVar20 + uVar24;" (assignment_expression "uVar27 = uVar20 + uVar24" identifier = (binary_expression "uVar20 + uVar24" identifier + identifier)) ;) (expression_statement "uVar26 = (uVar16 >> 4) * 0x19;" (assignment_expression "uVar26 = (uVar16 >> 4) * 0x19" identifier = (binary_expression "(uVar16 >> 4) * 0x19" (parenthesized_expression "(uVar16 >> 4)" ( (binary_expression "uVar16 >> 4" identifier >> number_literal) )) * number_literal)) ;) (expression_statement "uVar28 = (uint)CARRY4(uVar26,uVar18);" (assignment_expression "uVar28 = (uint)CARRY4(uVar26,uVar18)" identifier = (cast_expression "(uint)CARRY4(uVar26,uVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar26,uVar18)" identifier (argument_list "(uVar26,uVar18)" ( identifier , identifier ))))) ;) (expression_statement "uVar14 = (uint)CARRY4(uVar28,uVar25);" (assignment_expression "uVar14 = (uint)CARRY4(uVar28,uVar25)" identifier = (cast_expression "(uint)CARRY4(uVar28,uVar25)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar28,uVar25)" identifier (argument_list "(uVar28,uVar25)" ( identifier , identifier ))))) ;) (expression_statement "uVar2 = (uint)CARRY4(uVar14,uVar29);" (assignment_expression "uVar2 = (uint)CARRY4(uVar14,uVar29)" identifier = (cast_expression "(uint)CARRY4(uVar14,uVar29)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,uVar29)" identifier (argument_list "(uVar14,uVar29)" ( identifier , identifier ))))) ;) (expression_statement "(ctx->h).w[0] = uVar26 + uVar18;" (assignment_expression "(ctx->h).w[0] = uVar26 + uVar18" (subscript_expression "(ctx->h).w[0]" (field_expression "(ctx->h).w" (parenthesized_expression "(ctx->h)" ( (field_expression "ctx->h" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (binary_expression "uVar26 + uVar18" identifier + identifier)) ;) (expression_statement "(ctx->h).w[2] = uVar14 + uVar29;" (assignment_expression "(ctx->h).w[2] = uVar14 + uVar29" (subscript_expression "(ctx->h).w[2]" (field_expression "(ctx->h).w" (parenthesized_expression "(ctx->h)" ( (field_expression "ctx->h" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (binary_expression "uVar14 + uVar29" identifier + identifier)) ;) (expression_statement "(ctx->h).w[1] = uVar28 + uVar25;" (assignment_expression "(ctx->h).w[1] = uVar28 + uVar25" (subscript_expression "(ctx->h).w[1]" (field_expression "(ctx->h).w" (parenthesized_expression "(ctx->h)" ( (field_expression "ctx->h" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (binary_expression "uVar28 + uVar25" identifier + identifier)) ;) (expression_statement "(ctx->h).w[3] = uVar2 + uVar27;" (assignment_expression "(ctx->h).w[3] = uVar2 + uVar27" (subscript_expression "(ctx->h).w[3]" (field_expression "(ctx->h).w" (parenthesized_expression "(ctx->h)" ( (field_expression "ctx->h" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (binary_expression "uVar2 + uVar27" identifier + identifier)) ;) (expression_statement "(ctx->h).w[4] =\n       (uVar16 >> 2 & 3) * 5 + (uVar21 & 3) +\n       (uVar16 & 3) + (uint)CARRY4(uVar22,(uVar23 >> 2) * 4) + (uint)CARRY4(uVar19,uVar15) +\n       (uint)CARRY4(uVar17,local_4c) + (uint)CARRY4(uVar20,uVar24) + (uint)CARRY4(uVar2,uVar27);" (assignment_expression "(ctx->h).w[4] =\n       (uVar16 >> 2 & 3) * 5 + (uVar21 & 3) +\n       (uVar16 & 3) + (uint)CARRY4(uVar22,(uVar23 >> 2) * 4) + (uint)CARRY4(uVar19,uVar15) +\n       (uint)CARRY4(uVar17,local_4c) + (uint)CARRY4(uVar20,uVar24) + (uint)CARRY4(uVar2,uVar27)" (subscript_expression "(ctx->h).w[4]" (field_expression "(ctx->h).w" (parenthesized_expression "(ctx->h)" ( (field_expression "ctx->h" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (binary_expression "(uVar16 >> 2 & 3) * 5 + (uVar21 & 3) +\n       (uVar16 & 3) + (uint)CARRY4(uVar22,(uVar23 >> 2) * 4) + (uint)CARRY4(uVar19,uVar15) +\n       (uint)CARRY4(uVar17,local_4c) + (uint)CARRY4(uVar20,uVar24) + (uint)CARRY4(uVar2,uVar27)" (binary_expression "(uVar16 >> 2 & 3) * 5 + (uVar21 & 3) +\n       (uVar16 & 3) + (uint)CARRY4(uVar22,(uVar23 >> 2) * 4) + (uint)CARRY4(uVar19,uVar15) +\n       (uint)CARRY4(uVar17,local_4c) + (uint)CARRY4(uVar20,uVar24)" (binary_expression "(uVar16 >> 2 & 3) * 5 + (uVar21 & 3) +\n       (uVar16 & 3) + (uint)CARRY4(uVar22,(uVar23 >> 2) * 4) + (uint)CARRY4(uVar19,uVar15) +\n       (uint)CARRY4(uVar17,local_4c)" (binary_expression "(uVar16 >> 2 & 3) * 5 + (uVar21 & 3) +\n       (uVar16 & 3) + (uint)CARRY4(uVar22,(uVar23 >> 2) * 4) + (uint)CARRY4(uVar19,uVar15)" (binary_expression "(uVar16 >> 2 & 3) * 5 + (uVar21 & 3) +\n       (uVar16 & 3) + (uint)CARRY4(uVar22,(uVar23 >> 2) * 4)" (binary_expression "(uVar16 >> 2 & 3) * 5 + (uVar21 & 3) +\n       (uVar16 & 3)" (binary_expression "(uVar16 >> 2 & 3) * 5 + (uVar21 & 3)" (binary_expression "(uVar16 >> 2 & 3) * 5" (parenthesized_expression "(uVar16 >> 2 & 3)" ( (binary_expression "uVar16 >> 2 & 3" (binary_expression "uVar16 >> 2" identifier >> number_literal) & number_literal) )) * number_literal) + (parenthesized_expression "(uVar21 & 3)" ( (binary_expression "uVar21 & 3" identifier & number_literal) ))) + (parenthesized_expression "(uVar16 & 3)" ( (binary_expression "uVar16 & 3" identifier & number_literal) ))) + (cast_expression "(uint)CARRY4(uVar22,(uVar23 >> 2) * 4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar22,(uVar23 >> 2) * 4)" identifier (argument_list "(uVar22,(uVar23 >> 2) * 4)" ( identifier , (binary_expression "(uVar23 >> 2) * 4" (parenthesized_expression "(uVar23 >> 2)" ( (binary_expression "uVar23 >> 2" identifier >> number_literal) )) * number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar19,uVar15)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar19,uVar15)" identifier (argument_list "(uVar19,uVar15)" ( identifier , identifier ))))) + (cast_expression "(uint)CARRY4(uVar17,local_4c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar17,local_4c)" identifier (argument_list "(uVar17,local_4c)" ( identifier , identifier ))))) + (cast_expression "(uint)CARRY4(uVar20,uVar24)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar20,uVar24)" identifier (argument_list "(uVar20,uVar24)" ( identifier , identifier ))))) + (cast_expression "(uint)CARRY4(uVar2,uVar27)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar2,uVar27)" identifier (argument_list "(uVar2,uVar27)" ( identifier , identifier )))))) ;) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(iVar1 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void __regparm3 FUN_00043cb0(int param_1,undefined4 param_2,int param_3)\n\n{\n  uint uVar1;\n  ulonglong uVar2;\n  ulonglong uVar3;\n  ulonglong uVar4;\n  ulonglong uVar5;\n  longlong lVar6;\n  byte bVar7;\n  longlong lVar8;\n  longlong lVar9;\n  longlong lVar10;\n  longlong lVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint uVar28;\n  int in_GS_OFFSET;\n  uint local_a0;\n  uint local_84;\n  uint local_74;\n  int local_60;\n  uint local_5c;\n  uint local_54;\n  uint local_4c;\n  uint local_34 [9];\n  \n  local_34[5] = *(int *)(in_GS_OFFSET + 0x14);\n  local_34[0] = 0;\n  local_34[1] = 0;\n  local_34[2] = 0;\n  local_34[3] = 0;\n  local_34[4] = 0;\n  FUN_00043c70();\n  iVar12 = param_3 + 3;\n  if (-1 < param_3) {\n    iVar12 = param_3;\n  }\n  bVar7 = (byte)(param_3 >> 0x1f);\n  local_34[iVar12 >> 2] =\n       local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f);\n  FUN_000439e0();\n  uVar15 = *(uint *)(param_1 + 0x18);\n  uVar27 = *(uint *)(param_1 + 0x10);\n  uVar13 = *(uint *)(param_1 + 0x1c);\n  uVar1 = *(uint *)(param_1 + 0x14);\n  uVar14 = *(uint *)(param_1 + 0x20);\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20);\n  lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar9 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar10 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20);\n  lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff);\n  uVar20 = (uint)lVar6;\n  uVar25 = (uint)((ulonglong)lVar6 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar25 = (uint)uVar2;\n  lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar21 = (uint)lVar11;\n  local_60 = (int)(uVar5 >> 0x20);\n  lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff);\n  uVar15 = (uint)lVar6;\n  local_a0 = (uint)((ulonglong)lVar11 >> 0x20);\n  uVar22 = local_a0 + uVar15;\n  uVar15 = local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15);\n  uVar13 = uVar20 >> 2;\n  uVar14 = uVar13 | uVar25 << 0x1e;\n  uVar1 = uVar14 * 5;\n  uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14);\n  uVar14 = uVar25 >> 2 | uVar21 << 0x1e;\n  uVar13 = uVar14 * 5;\n  uVar23 = uVar26 + uVar13;\n  uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13);\n  uVar14 = uVar21 >> 2 | uVar22 * 0x40000000;\n  uVar13 = uVar14 * 5;\n  local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0]);\n  uVar26 = uVar25 + uVar13;\n  uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13);\n  uVar21 = uVar22 >> 2 | uVar15 * 0x40000000;\n  uVar14 = uVar21 * 5;\n  uVar16 = uVar18 + uVar14;\n  uVar17 = local_84 + uVar1;\n  uVar27 = (uint)CARRY4(local_84,uVar1);\n  local_5c = (uint)lVar8;\n  uVar13 = local_5c + uVar27;\n  uVar24 = uVar13 + uVar23;\n  local_54 = (uint)lVar9;\n  uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23);\n  uVar13 = uVar27 + uVar26;\n  local_4c = (uint)lVar10;\n  uVar28 = uVar13 + local_54;\n  uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54);\n  uVar23 = uVar16 + local_4c;\n  uVar26 = uVar19 + uVar23;\n  uVar25 = (uVar15 >> 4) * 0x19;\n  uVar27 = (uint)CARRY4(uVar25,uVar17);\n  uVar13 = (uint)CARRY4(uVar27,uVar24);\n  uVar1 = (uint)CARRY4(uVar13,uVar28);\n  *(uint *)(param_1 + 0x24) = uVar25 + uVar17;\n  *(uint *)(param_1 + 0x2c) = uVar13 + uVar28;\n  *(uint *)(param_1 + 0x28) = uVar27 + uVar24;\n  *(uint *)(param_1 + 0x30) = uVar1 + uVar26;\n  *(uint *)(param_1 + 0x34) =\n       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26);\n  if (local_34[5] == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0006dad0();\n}\n\n" (function_definition "void __regparm3 FUN_00043cb0(int param_1,undefined4 param_2,int param_3)\n\n{\n  uint uVar1;\n  ulonglong uVar2;\n  ulonglong uVar3;\n  ulonglong uVar4;\n  ulonglong uVar5;\n  longlong lVar6;\n  byte bVar7;\n  longlong lVar8;\n  longlong lVar9;\n  longlong lVar10;\n  longlong lVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint uVar28;\n  int in_GS_OFFSET;\n  uint local_a0;\n  uint local_84;\n  uint local_74;\n  int local_60;\n  uint local_5c;\n  uint local_54;\n  uint local_4c;\n  uint local_34 [9];\n  \n  local_34[5] = *(int *)(in_GS_OFFSET + 0x14);\n  local_34[0] = 0;\n  local_34[1] = 0;\n  local_34[2] = 0;\n  local_34[3] = 0;\n  local_34[4] = 0;\n  FUN_00043c70();\n  iVar12 = param_3 + 3;\n  if (-1 < param_3) {\n    iVar12 = param_3;\n  }\n  bVar7 = (byte)(param_3 >> 0x1f);\n  local_34[iVar12 >> 2] =\n       local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f);\n  FUN_000439e0();\n  uVar15 = *(uint *)(param_1 + 0x18);\n  uVar27 = *(uint *)(param_1 + 0x10);\n  uVar13 = *(uint *)(param_1 + 0x1c);\n  uVar1 = *(uint *)(param_1 + 0x14);\n  uVar14 = *(uint *)(param_1 + 0x20);\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20);\n  lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar9 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar10 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20);\n  lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff);\n  uVar20 = (uint)lVar6;\n  uVar25 = (uint)((ulonglong)lVar6 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar25 = (uint)uVar2;\n  lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar21 = (uint)lVar11;\n  local_60 = (int)(uVar5 >> 0x20);\n  lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff);\n  uVar15 = (uint)lVar6;\n  local_a0 = (uint)((ulonglong)lVar11 >> 0x20);\n  uVar22 = local_a0 + uVar15;\n  uVar15 = local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15);\n  uVar13 = uVar20 >> 2;\n  uVar14 = uVar13 | uVar25 << 0x1e;\n  uVar1 = uVar14 * 5;\n  uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14);\n  uVar14 = uVar25 >> 2 | uVar21 << 0x1e;\n  uVar13 = uVar14 * 5;\n  uVar23 = uVar26 + uVar13;\n  uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13);\n  uVar14 = uVar21 >> 2 | uVar22 * 0x40000000;\n  uVar13 = uVar14 * 5;\n  local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0]);\n  uVar26 = uVar25 + uVar13;\n  uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13);\n  uVar21 = uVar22 >> 2 | uVar15 * 0x40000000;\n  uVar14 = uVar21 * 5;\n  uVar16 = uVar18 + uVar14;\n  uVar17 = local_84 + uVar1;\n  uVar27 = (uint)CARRY4(local_84,uVar1);\n  local_5c = (uint)lVar8;\n  uVar13 = local_5c + uVar27;\n  uVar24 = uVar13 + uVar23;\n  local_54 = (uint)lVar9;\n  uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23);\n  uVar13 = uVar27 + uVar26;\n  local_4c = (uint)lVar10;\n  uVar28 = uVar13 + local_54;\n  uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54);\n  uVar23 = uVar16 + local_4c;\n  uVar26 = uVar19 + uVar23;\n  uVar25 = (uVar15 >> 4) * 0x19;\n  uVar27 = (uint)CARRY4(uVar25,uVar17);\n  uVar13 = (uint)CARRY4(uVar27,uVar24);\n  uVar1 = (uint)CARRY4(uVar13,uVar28);\n  *(uint *)(param_1 + 0x24) = uVar25 + uVar17;\n  *(uint *)(param_1 + 0x2c) = uVar13 + uVar28;\n  *(uint *)(param_1 + 0x28) = uVar27 + uVar24;\n  *(uint *)(param_1 + 0x30) = uVar1 + uVar26;\n  *(uint *)(param_1 + 0x34) =\n       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26);\n  if (local_34[5] == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0006dad0();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00043cb0(int param_1,undefined4 param_2,int param_3)" identifier (parameter_list "(int param_1,undefined4 param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  ulonglong uVar2;\n  ulonglong uVar3;\n  ulonglong uVar4;\n  ulonglong uVar5;\n  longlong lVar6;\n  byte bVar7;\n  longlong lVar8;\n  longlong lVar9;\n  longlong lVar10;\n  longlong lVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint uVar28;\n  int in_GS_OFFSET;\n  uint local_a0;\n  uint local_84;\n  uint local_74;\n  int local_60;\n  uint local_5c;\n  uint local_54;\n  uint local_4c;\n  uint local_34 [9];\n  \n  local_34[5] = *(int *)(in_GS_OFFSET + 0x14);\n  local_34[0] = 0;\n  local_34[1] = 0;\n  local_34[2] = 0;\n  local_34[3] = 0;\n  local_34[4] = 0;\n  FUN_00043c70();\n  iVar12 = param_3 + 3;\n  if (-1 < param_3) {\n    iVar12 = param_3;\n  }\n  bVar7 = (byte)(param_3 >> 0x1f);\n  local_34[iVar12 >> 2] =\n       local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f);\n  FUN_000439e0();\n  uVar15 = *(uint *)(param_1 + 0x18);\n  uVar27 = *(uint *)(param_1 + 0x10);\n  uVar13 = *(uint *)(param_1 + 0x1c);\n  uVar1 = *(uint *)(param_1 + 0x14);\n  uVar14 = *(uint *)(param_1 + 0x20);\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20);\n  lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar9 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar10 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20);\n  lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff);\n  uVar20 = (uint)lVar6;\n  uVar25 = (uint)((ulonglong)lVar6 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar25 = (uint)uVar2;\n  lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar21 = (uint)lVar11;\n  local_60 = (int)(uVar5 >> 0x20);\n  lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff);\n  uVar15 = (uint)lVar6;\n  local_a0 = (uint)((ulonglong)lVar11 >> 0x20);\n  uVar22 = local_a0 + uVar15;\n  uVar15 = local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15);\n  uVar13 = uVar20 >> 2;\n  uVar14 = uVar13 | uVar25 << 0x1e;\n  uVar1 = uVar14 * 5;\n  uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14);\n  uVar14 = uVar25 >> 2 | uVar21 << 0x1e;\n  uVar13 = uVar14 * 5;\n  uVar23 = uVar26 + uVar13;\n  uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13);\n  uVar14 = uVar21 >> 2 | uVar22 * 0x40000000;\n  uVar13 = uVar14 * 5;\n  local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0]);\n  uVar26 = uVar25 + uVar13;\n  uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13);\n  uVar21 = uVar22 >> 2 | uVar15 * 0x40000000;\n  uVar14 = uVar21 * 5;\n  uVar16 = uVar18 + uVar14;\n  uVar17 = local_84 + uVar1;\n  uVar27 = (uint)CARRY4(local_84,uVar1);\n  local_5c = (uint)lVar8;\n  uVar13 = local_5c + uVar27;\n  uVar24 = uVar13 + uVar23;\n  local_54 = (uint)lVar9;\n  uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23);\n  uVar13 = uVar27 + uVar26;\n  local_4c = (uint)lVar10;\n  uVar28 = uVar13 + local_54;\n  uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54);\n  uVar23 = uVar16 + local_4c;\n  uVar26 = uVar19 + uVar23;\n  uVar25 = (uVar15 >> 4) * 0x19;\n  uVar27 = (uint)CARRY4(uVar25,uVar17);\n  uVar13 = (uint)CARRY4(uVar27,uVar24);\n  uVar1 = (uint)CARRY4(uVar13,uVar28);\n  *(uint *)(param_1 + 0x24) = uVar25 + uVar17;\n  *(uint *)(param_1 + 0x2c) = uVar13 + uVar28;\n  *(uint *)(param_1 + 0x28) = uVar27 + uVar24;\n  *(uint *)(param_1 + 0x30) = uVar1 + uVar26;\n  *(uint *)(param_1 + 0x34) =\n       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26);\n  if (local_34[5] == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0006dad0();\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "ulonglong uVar2;" type_identifier identifier ;) (declaration "ulonglong uVar3;" type_identifier identifier ;) (declaration "ulonglong uVar4;" type_identifier identifier ;) (declaration "ulonglong uVar5;" type_identifier identifier ;) (declaration "longlong lVar6;" type_identifier identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "longlong lVar8;" type_identifier identifier ;) (declaration "longlong lVar9;" type_identifier identifier ;) (declaration "longlong lVar10;" type_identifier identifier ;) (declaration "longlong lVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_34 [9];" type_identifier (array_declarator "local_34 [9]" identifier [ number_literal ]) ;) (expression_statement "local_34[5] = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_34[5] = *(int *)(in_GS_OFFSET + 0x14)" (subscript_expression "local_34[5]" identifier [ number_literal ]) = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_34[0] = 0;" (assignment_expression "local_34[0] = 0" (subscript_expression "local_34[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_34[1] = 0;" (assignment_expression "local_34[1] = 0" (subscript_expression "local_34[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_34[2] = 0;" (assignment_expression "local_34[2] = 0" (subscript_expression "local_34[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_34[3] = 0;" (assignment_expression "local_34[3] = 0" (subscript_expression "local_34[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_34[4] = 0;" (assignment_expression "local_34[4] = 0" (subscript_expression "local_34[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00043c70();" (call_expression "FUN_00043c70()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = param_3 + 3;" (assignment_expression "iVar12 = param_3 + 3" identifier = (binary_expression "param_3 + 3" identifier + number_literal)) ;) (if_statement "if (-1 < param_3) {\n    iVar12 = param_3;\n  }" if (parenthesized_expression "(-1 < param_3)" ( (binary_expression "-1 < param_3" number_literal < identifier) )) (compound_statement "{\n    iVar12 = param_3;\n  }" { (expression_statement "iVar12 = param_3;" (assignment_expression "iVar12 = param_3" identifier = identifier) ;) })) (expression_statement "bVar7 = (byte)(param_3 >> 0x1f);" (assignment_expression "bVar7 = (byte)(param_3 >> 0x1f)" identifier = (call_expression "(byte)(param_3 >> 0x1f)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(param_3 >> 0x1f)" ( (binary_expression "param_3 >> 0x1f" identifier >> number_literal) )))) ;) (expression_statement "local_34[iVar12 >> 2] =\n       local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f);" (assignment_expression "local_34[iVar12 >> 2] =\n       local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f)" (subscript_expression "local_34[iVar12 >> 2]" identifier [ (binary_expression "iVar12 >> 2" identifier >> number_literal) ]) = (binary_expression "local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f)" (subscript_expression "local_34[iVar12 >> 2]" identifier [ (binary_expression "iVar12 >> 2" identifier >> number_literal) ]) | (binary_expression "1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f)" number_literal << (parenthesized_expression "((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f)" ( (binary_expression "(((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f" (binary_expression "(((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b'" (parenthesized_expression "(((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6))" ( (binary_expression "((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)" (parenthesized_expression "((char)param_3 + (bVar7 >> 6) & 3)" ( (binary_expression "(char)param_3 + (bVar7 >> 6) & 3" (binary_expression "(char)param_3 + (bVar7 >> 6)" (cast_expression "(char)param_3" ( (type_descriptor "char" primitive_type) ) identifier) + (parenthesized_expression "(bVar7 >> 6)" ( (binary_expression "bVar7 >> 6" identifier >> number_literal) ))) & number_literal) )) - (parenthesized_expression "(bVar7 >> 6)" ( (binary_expression "bVar7 >> 6" identifier >> number_literal) ))) )) * (char_literal "'\b'" ' escape_sequence ')) & number_literal) ))))) ;) (expression_statement "FUN_000439e0();" (call_expression "FUN_000439e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar15 = *(uint *)(param_1 + 0x18);" (assignment_expression "uVar15 = *(uint *)(param_1 + 0x18)" identifier = (pointer_expression "*(uint *)(param_1 + 0x18)" * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar27 = *(uint *)(param_1 + 0x10);" (assignment_expression "uVar27 = *(uint *)(param_1 + 0x10)" identifier = (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar1 = *(uint *)(param_1 + 0x14)" identifier = (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar14 = *(uint *)(param_1 + 0x20)" identifier = (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20);" (assignment_expression "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20)" identifier = (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20)" (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[0]" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[0]" identifier [ number_literal ]))) + (parenthesized_expression "((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20)" ( (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20" (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[0]" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[0]" identifier [ number_literal ]))) >> number_literal) )))) ;) (expression_statement "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20);" (assignment_expression "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[0]" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[0]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[0]" (cast_expression "(ulonglong)uVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[0]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar3 >> 0x20)" ( (binary_expression "uVar3 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20)" identifier = (binary_expression "(ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20)" (binary_expression "(ulonglong)local_34[0] * (ulonglong)uVar14" (cast_expression "(ulonglong)local_34[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[0]" identifier [ number_literal ])) * (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) + (parenthesized_expression "(uVar4 >> 0x20)" ( (binary_expression "uVar4 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff);" (assignment_expression "lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff)" identifier = (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff)" (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[1]" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[1]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[1]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar2 & 0xffffffff)" ( (binary_expression "uVar2 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar25 = (uint)((ulonglong)lVar8 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar8 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar8 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar3;" (assignment_expression "local_74 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);" (assignment_expression "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier = (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[1]" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[1]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[1]" identifier [ number_literal ]))) + (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier (argument_list "(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (call_expression "CARRY4(uVar25,local_74)" identifier (argument_list "(uVar25,local_74)" ( identifier , identifier ))) , (binary_expression "uVar25 + local_74" identifier + identifier) )))))) ;) (expression_statement "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);" (assignment_expression "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[1]" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[1]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[1]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar4 & 0xffffffff)" ( (binary_expression "uVar4 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[1]" (cast_expression "(ulonglong)uVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[1]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[1]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar5 & 0xffffffff)" ( (binary_expression "uVar5 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar3 >> 0x20)" ( (binary_expression "uVar3 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20)" identifier = (binary_expression "(ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20)" (binary_expression "(ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20)" (binary_expression "(ulonglong)local_34[1] * (ulonglong)uVar14" (cast_expression "(ulonglong)local_34[1]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[1]" identifier [ number_literal ])) * (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) + (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) ))) + (parenthesized_expression "(uVar4 >> 0x20)" ( (binary_expression "uVar4 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff);" (assignment_expression "lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff)" identifier = (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff)" (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[2]" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[2]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[2]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar2 & 0xffffffff)" ( (binary_expression "uVar2 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar25 = (uint)((ulonglong)lVar9 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar9 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar9 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar9 >> 0x20)" ( (binary_expression "(ulonglong)lVar9 >> 0x20" (cast_expression "(ulonglong)lVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar3;" (assignment_expression "local_74 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);" (assignment_expression "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier = (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[2]" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[2]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[2]" identifier [ number_literal ]))) + (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier (argument_list "(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (call_expression "CARRY4(uVar25,local_74)" identifier (argument_list "(uVar25,local_74)" ( identifier , identifier ))) , (binary_expression "uVar25 + local_74" identifier + identifier) )))))) ;) (expression_statement "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);" (assignment_expression "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[2]" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[2]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[2]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar4 & 0xffffffff)" ( (binary_expression "uVar4 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[2]" (cast_expression "(ulonglong)uVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[2]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[2]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar5 & 0xffffffff)" ( (binary_expression "uVar5 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar3 >> 0x20)" ( (binary_expression "uVar3 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[2]" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[2]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[2]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) ))) + (parenthesized_expression "(uVar4 >> 0x20)" ( (binary_expression "uVar4 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff);" (assignment_expression "lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff)" identifier = (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff)" (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[3]" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[3]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[3]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar2 & 0xffffffff)" ( (binary_expression "uVar2 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar25 = (uint)((ulonglong)lVar10 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar10 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar10 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar10 >> 0x20)" ( (binary_expression "(ulonglong)lVar10 >> 0x20" (cast_expression "(ulonglong)lVar10" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar3;" (assignment_expression "local_74 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);" (assignment_expression "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier = (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[3]" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[3]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[3]" identifier [ number_literal ]))) + (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier (argument_list "(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (call_expression "CARRY4(uVar25,local_74)" identifier (argument_list "(uVar25,local_74)" ( identifier , identifier ))) , (binary_expression "uVar25 + local_74" identifier + identifier) )))))) ;) (expression_statement "uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[3]" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[3]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[3]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar4 & 0xffffffff)" ( (binary_expression "uVar4 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20);" (assignment_expression "uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[3]" (cast_expression "(ulonglong)uVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[3]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[3]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar5 & 0xffffffff)" ( (binary_expression "uVar5 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar4 >> 0x20)" ( (binary_expression "uVar4 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[3]" (cast_expression "(ulonglong)uVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[3]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[3]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) ))) + (parenthesized_expression "(uVar3 >> 0x20)" ( (binary_expression "uVar3 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff);" (assignment_expression "lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff)" identifier = (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff)" (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[4]" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[4]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[4]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar2 & 0xffffffff)" ( (binary_expression "uVar2 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar20 = (uint)lVar6;" (assignment_expression "uVar20 = (uint)lVar6" identifier = (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar25 = (uint)((ulonglong)lVar6 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar6 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar6 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar6 >> 0x20)" ( (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar4;" (assignment_expression "local_74 = (uint)uVar4" identifier = (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);" (assignment_expression "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier = (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[4]" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[4]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[4]" identifier [ number_literal ]))) + (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" identifier (argument_list "(CARRY4(uVar25,local_74),uVar25 + local_74)" ( (call_expression "CARRY4(uVar25,local_74)" identifier (argument_list "(uVar25,local_74)" ( identifier , identifier ))) , (binary_expression "uVar25 + local_74" identifier + identifier) )))))) ;) (expression_statement "uVar25 = (uint)uVar2;" (assignment_expression "uVar25 = (uint)uVar2" identifier = (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20);" (assignment_expression "lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20)" identifier = (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[4]" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[4]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[4]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar3 & 0xffffffff)" ( (binary_expression "uVar3 & 0xffffffff" identifier & number_literal) ))) + (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar21 = (uint)lVar11;" (assignment_expression "uVar21 = (uint)lVar11" identifier = (cast_expression "(uint)lVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_60 = (int)(uVar5 >> 0x20);" (assignment_expression "local_60 = (int)(uVar5 >> 0x20)" identifier = (cast_expression "(int)(uVar5 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar5 >> 0x20)" ( (binary_expression "uVar5 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff);" (assignment_expression "lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff)" identifier = (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[4]" (cast_expression "(ulonglong)uVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[4]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[4]" identifier [ number_literal ]))) + (parenthesized_expression "(uVar5 & 0xffffffff)" ( (binary_expression "uVar5 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "uVar15 = (uint)lVar6;" (assignment_expression "uVar15 = (uint)lVar6" identifier = (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_a0 = (uint)((ulonglong)lVar11 >> 0x20);" (assignment_expression "local_a0 = (uint)((ulonglong)lVar11 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar11 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar11 >> 0x20)" ( (binary_expression "(ulonglong)lVar11 >> 0x20" (cast_expression "(ulonglong)lVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar22 = local_a0 + uVar15;" (assignment_expression "uVar22 = local_a0 + uVar15" identifier = (binary_expression "local_a0 + uVar15" identifier + identifier)) ;) (expression_statement "uVar15 = local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15);" (assignment_expression "uVar15 = local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15)" identifier = (binary_expression "local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15)" (binary_expression "local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20)" (binary_expression "local_60 + uVar14 * local_34[4]" identifier + (binary_expression "uVar14 * local_34[4]" identifier * (subscript_expression "local_34[4]" identifier [ number_literal ]))) + (cast_expression "(int)((ulonglong)lVar6 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar6 >> 0x20)" ( (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) + (cast_expression "(uint)CARRY4(local_a0,uVar15)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_a0,uVar15)" identifier (argument_list "(local_a0,uVar15)" ( identifier , identifier )))))) ;) (expression_statement "uVar13 = uVar20 >> 2;" (assignment_expression "uVar13 = uVar20 >> 2" identifier = (binary_expression "uVar20 >> 2" identifier >> number_literal)) ;) (expression_statement "uVar14 = uVar13 | uVar25 << 0x1e;" (assignment_expression "uVar14 = uVar13 | uVar25 << 0x1e" identifier = (binary_expression "uVar13 | uVar25 << 0x1e" identifier | (binary_expression "uVar25 << 0x1e" identifier << number_literal))) ;) (expression_statement "uVar1 = uVar14 * 5;" (assignment_expression "uVar1 = uVar14 * 5" identifier = (binary_expression "uVar14 * 5" identifier * number_literal)) ;) (expression_statement "uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14);" (assignment_expression "uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14)" identifier = (binary_expression "(uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14)" (parenthesized_expression "(uVar25 & 3)" ( (binary_expression "uVar25 & 3" identifier & number_literal) )) + (cast_expression "(uint)CARRY4(uVar13 * 4,uVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar13 * 4,uVar14)" identifier (argument_list "(uVar13 * 4,uVar14)" ( (binary_expression "uVar13 * 4" identifier * number_literal) , identifier )))))) ;) (expression_statement "uVar14 = uVar25 >> 2 | uVar21 << 0x1e;" (assignment_expression "uVar14 = uVar25 >> 2 | uVar21 << 0x1e" identifier = (binary_expression "uVar25 >> 2 | uVar21 << 0x1e" (binary_expression "uVar25 >> 2" identifier >> number_literal) | (binary_expression "uVar21 << 0x1e" identifier << number_literal))) ;) (expression_statement "uVar13 = uVar14 * 5;" (assignment_expression "uVar13 = uVar14 * 5" identifier = (binary_expression "uVar14 * 5" identifier * number_literal)) ;) (expression_statement "uVar23 = uVar26 + uVar13;" (assignment_expression "uVar23 = uVar26 + uVar13" identifier = (binary_expression "uVar26 + uVar13" identifier + identifier)) ;) (expression_statement "uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13);" (assignment_expression "uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13)" identifier = (binary_expression "(uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13)" (binary_expression "(uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4)" (parenthesized_expression "(uVar21 & 3)" ( (binary_expression "uVar21 & 3" identifier & number_literal) )) + (cast_expression "(uint)CARRY4(uVar14,(uVar25 >> 2) * 4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,(uVar25 >> 2) * 4)" identifier (argument_list "(uVar14,(uVar25 >> 2) * 4)" ( identifier , (binary_expression "(uVar25 >> 2) * 4" (parenthesized_expression "(uVar25 >> 2)" ( (binary_expression "uVar25 >> 2" identifier >> number_literal) )) * number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar26,uVar13)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar26,uVar13)" identifier (argument_list "(uVar26,uVar13)" ( identifier , identifier )))))) ;) (expression_statement "uVar14 = uVar21 >> 2 | uVar22 * 0x40000000;" (assignment_expression "uVar14 = uVar21 >> 2 | uVar22 * 0x40000000" identifier = (binary_expression "uVar21 >> 2 | uVar22 * 0x40000000" (binary_expression "uVar21 >> 2" identifier >> number_literal) | (binary_expression "uVar22 * 0x40000000" identifier * number_literal))) ;) (expression_statement "uVar13 = uVar14 * 5;" (assignment_expression "uVar13 = uVar14 * 5" identifier = (binary_expression "uVar14 * 5" identifier * number_literal)) ;) (expression_statement "local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0]);" (assignment_expression "local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0])" identifier = (call_expression "(uint)((ulonglong)uVar27 * (ulonglong)local_34[0])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar27 * (ulonglong)local_34[0])" ( (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[0]" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * (cast_expression "(ulonglong)local_34[0]" ( (type_descriptor "ulonglong" type_identifier) ) (subscript_expression "local_34[0]" identifier [ number_literal ]))) )))) ;) (expression_statement "uVar26 = uVar25 + uVar13;" (assignment_expression "uVar26 = uVar25 + uVar13" identifier = (binary_expression "uVar25 + uVar13" identifier + identifier)) ;) (expression_statement "uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13);" (assignment_expression "uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13)" identifier = (binary_expression "(uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13)" (binary_expression "(uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4)" (parenthesized_expression "(uVar22 & 3)" ( (binary_expression "uVar22 & 3" identifier & number_literal) )) + (cast_expression "(uint)CARRY4(uVar14,(uVar21 >> 2) * 4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar14,(uVar21 >> 2) * 4)" identifier (argument_list "(uVar14,(uVar21 >> 2) * 4)" ( identifier , (binary_expression "(uVar21 >> 2) * 4" (parenthesized_expression "(uVar21 >> 2)" ( (binary_expression "uVar21 >> 2" identifier >> number_literal) )) * number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar25,uVar13)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar25,uVar13)" identifier (argument_list "(uVar25,uVar13)" ( identifier , identifier )))))) ;) (expression_statement "uVar21 = uVar22 >> 2 | uVar15 * 0x40000000;" (assignment_expression "uVar21 = uVar22 >> 2 | uVar15 * 0x40000000" identifier = (binary_expression "uVar22 >> 2 | uVar15 * 0x40000000" (binary_expression "uVar22 >> 2" identifier >> number_literal) | (binary_expression "uVar15 * 0x40000000" identifier * number_literal))) ;) (expression_statement "uVar14 = uVar21 * 5;" (assignment_expression "uVar14 = uVar21 * 5" identifier = (binary_expression "uVar21 * 5" identifier * number_literal)) ;) (expression_statement "uVar16 = uVar18 + uVar14;" (assignment_expression "uVar16 = uVar18 + uVar14" identifier = (binary_expression "uVar18 + uVar14" identifier + identifier)) ;) (expression_statement "uVar17 = local_84 + uVar1;" (assignment_expression "uVar17 = local_84 + uVar1" identifier = (binary_expression "local_84 + uVar1" identifier + identifier)) ;) (expression_statement "uVar27 = (uint)CARRY4(local_84,uVar1);" (assignment_expression "uVar27 = (uint)CARRY4(local_84,uVar1)" identifier = (cast_expression "(uint)CARRY4(local_84,uVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_84,uVar1)" identifier (argument_list "(local_84,uVar1)" ( identifier , identifier ))))) ;) (expression_statement "local_5c = (uint)lVar8;" (assignment_expression "local_5c = (uint)lVar8" identifier = (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar13 = local_5c + uVar27;" (assignment_expression "uVar13 = local_5c + uVar27" identifier = (binary_expression "local_5c + uVar27" identifier + identifier)) ;) (expression_statement "uVar24 = uVar13 + uVar23;" (assignment_expression "uVar24 = uVar13 + uVar23" identifier = (binary_expression "uVar13 + uVar23" identifier + identifier)) ;) (expression_statement "local_54 = (uint)lVar9;" (assignment_expression "local_54 = (uint)lVar9" identifier = (cast_expression "(uint)lVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23);" (assignment_expression "uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23)" identifier = (binary_expression "(uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23)" (cast_expression "(uint)CARRY4(local_5c,uVar27)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_5c,uVar27)" identifier (argument_list "(local_5c,uVar27)" ( identifier , identifier )))) + (cast_expression "(uint)CARRY4(uVar13,uVar23)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar13,uVar23)" identifier (argument_list "(uVar13,uVar23)" ( identifier , identifier )))))) ;) (expression_statement "uVar13 = uVar27 + uVar26;" (assignment_expression "uVar13 = uVar27 + uVar26" identifier = (binary_expression "uVar27 + uVar26" identifier + identifier)) ;) (expression_statement "local_4c = (uint)lVar10;" (assignment_expression "local_4c = (uint)lVar10" identifier = (cast_expression "(uint)lVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar28 = uVar13 + local_54;" (assignment_expression "uVar28 = uVar13 + local_54" identifier = (binary_expression "uVar13 + local_54" identifier + identifier)) ;) (expression_statement "uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54);" (assignment_expression "uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54)" identifier = (binary_expression "(uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54)" (cast_expression "(uint)CARRY4(uVar27,uVar26)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27,uVar26)" identifier (argument_list "(uVar27,uVar26)" ( identifier , identifier )))) + (cast_expression "(uint)CARRY4(uVar13,local_54)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar13,local_54)" identifier (argument_list "(uVar13,local_54)" ( identifier , identifier )))))) ;) (expression_statement "uVar23 = uVar16 + local_4c;" (assignment_expression "uVar23 = uVar16 + local_4c" identifier = (binary_expression "uVar16 + local_4c" identifier + identifier)) ;) (expression_statement "uVar26 = uVar19 + uVar23;" (assignment_expression "uVar26 = uVar19 + uVar23" identifier = (binary_expression "uVar19 + uVar23" identifier + identifier)) ;) (expression_statement "uVar25 = (uVar15 >> 4) * 0x19;" (assignment_expression "uVar25 = (uVar15 >> 4) * 0x19" identifier = (binary_expression "(uVar15 >> 4) * 0x19" (parenthesized_expression "(uVar15 >> 4)" ( (binary_expression "uVar15 >> 4" identifier >> number_literal) )) * number_literal)) ;) (expression_statement "uVar27 = (uint)CARRY4(uVar25,uVar17);" (assignment_expression "uVar27 = (uint)CARRY4(uVar25,uVar17)" identifier = (cast_expression "(uint)CARRY4(uVar25,uVar17)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar25,uVar17)" identifier (argument_list "(uVar25,uVar17)" ( identifier , identifier ))))) ;) (expression_statement "uVar13 = (uint)CARRY4(uVar27,uVar24);" (assignment_expression "uVar13 = (uint)CARRY4(uVar27,uVar24)" identifier = (cast_expression "(uint)CARRY4(uVar27,uVar24)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27,uVar24)" identifier (argument_list "(uVar27,uVar24)" ( identifier , identifier ))))) ;) (expression_statement "uVar1 = (uint)CARRY4(uVar13,uVar28);" (assignment_expression "uVar1 = (uint)CARRY4(uVar13,uVar28)" identifier = (cast_expression "(uint)CARRY4(uVar13,uVar28)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar13,uVar28)" identifier (argument_list "(uVar13,uVar28)" ( identifier , identifier ))))) ;) (expression_statement "*(uint *)(param_1 + 0x24) = uVar25 + uVar17;" (assignment_expression "*(uint *)(param_1 + 0x24) = uVar25 + uVar17" (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = (binary_expression "uVar25 + uVar17" identifier + identifier)) ;) (expression_statement "*(uint *)(param_1 + 0x2c) = uVar13 + uVar28;" (assignment_expression "*(uint *)(param_1 + 0x2c) = uVar13 + uVar28" (pointer_expression "*(uint *)(param_1 + 0x2c)" * (cast_expression "(uint *)(param_1 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) = (binary_expression "uVar13 + uVar28" identifier + identifier)) ;) (expression_statement "*(uint *)(param_1 + 0x28) = uVar27 + uVar24;" (assignment_expression "*(uint *)(param_1 + 0x28) = uVar27 + uVar24" (pointer_expression "*(uint *)(param_1 + 0x28)" * (cast_expression "(uint *)(param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "uVar27 + uVar24" identifier + identifier)) ;) (expression_statement "*(uint *)(param_1 + 0x30) = uVar1 + uVar26;" (assignment_expression "*(uint *)(param_1 + 0x30) = uVar1 + uVar26" (pointer_expression "*(uint *)(param_1 + 0x30)" * (cast_expression "(uint *)(param_1 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = (binary_expression "uVar1 + uVar26" identifier + identifier)) ;) (expression_statement "*(uint *)(param_1 + 0x34) =\n       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26);" (assignment_expression "*(uint *)(param_1 + 0x34) =\n       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26)" (pointer_expression "*(uint *)(param_1 + 0x34)" * (cast_expression "(uint *)(param_1 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3)" (binary_expression "(uVar15 >> 2 & 3) * 5" (parenthesized_expression "(uVar15 >> 2 & 3)" ( (binary_expression "uVar15 >> 2 & 3" (binary_expression "uVar15 >> 2" identifier >> number_literal) & number_literal) )) * number_literal) + (parenthesized_expression "(uVar20 & 3)" ( (binary_expression "uVar20 & 3" identifier & number_literal) ))) + (parenthesized_expression "(uVar15 & 3)" ( (binary_expression "uVar15 & 3" identifier & number_literal) ))) + (cast_expression "(uint)CARRY4(uVar21,(uVar22 >> 2) * 4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar21,(uVar22 >> 2) * 4)" identifier (argument_list "(uVar21,(uVar22 >> 2) * 4)" ( identifier , (binary_expression "(uVar22 >> 2) * 4" (parenthesized_expression "(uVar22 >> 2)" ( (binary_expression "uVar22 >> 2" identifier >> number_literal) )) * number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar18,uVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar18,uVar14)" identifier (argument_list "(uVar18,uVar14)" ( identifier , identifier ))))) + (cast_expression "(uint)CARRY4(uVar16,local_4c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16,local_4c)" identifier (argument_list "(uVar16,local_4c)" ( identifier , identifier ))))) + (cast_expression "(uint)CARRY4(uVar19,uVar23)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar19,uVar23)" identifier (argument_list "(uVar19,uVar23)" ( identifier , identifier ))))) + (cast_expression "(uint)CARRY4(uVar1,uVar26)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar1,uVar26)" identifier (argument_list "(uVar1,uVar26)" ( identifier , identifier )))))) ;) (if_statement "if (local_34[5] == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_34[5] == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_34[5] == *(int *)(in_GS_OFFSET + 0x14)" (subscript_expression "local_34[5]" identifier [ number_literal ]) == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0006dad0();" (call_expression "FUN_0006dad0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE 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 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT >> LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT >> LIT) ]) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) & LIT) )) - (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) )) * (char_literal ' escape_sequence ')) & LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( IDENT , IDENT ))) , (binary_expression IDENT + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( IDENT , IDENT ))) , (binary_expression IDENT + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( IDENT , IDENT ))) , (binary_expression IDENT + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( IDENT , IDENT ))) , (binary_expression IDENT + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT + (binary_expression IDENT * (subscript_expression IDENT [ LIT ]))) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) & LIT) )) * LIT) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void __regparm3 FUN_00043cb0(int param_1,undefined4 param_2,int param_3)\n\n{\n  uint uVar1;\n  ulonglong uVar2;\n  ulonglong uVar3;\n  ulonglong uVar4;\n  ulonglong uVar5;\n  longlong lVar6;\n  byte bVar7;\n  longlong lVar8;\n  longlong lVar9;\n  longlong lVar10;\n  longlong lVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint uVar28;\n  int in_GS_OFFSET;\n  uint local_a0;\n  uint local_84;\n  uint local_74;\n  int local_60;\n  uint local_5c;\n  uint local_54;\n  uint local_4c;\n  uint local_34 [9];\n  \n  local_34[5] = *(int *)(in_GS_OFFSET + 0x14);\n  local_34[0] = 0;\n  local_34[1] = 0;\n  local_34[2] = 0;\n  local_34[3] = 0;\n  local_34[4] = 0;\n  FUN_00043c70();\n  iVar12 = param_3 + 3;\n  if (-1 < param_3) {\n    iVar12 = param_3;\n  }\n  bVar7 = (byte)(param_3 >> 0x1f);\n  local_34[iVar12 >> 2] =\n       local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f);\n  FUN_000439e0();\n  uVar15 = *(uint *)(param_1 + 0x18);\n  uVar27 = *(uint *)(param_1 + 0x10);\n  uVar13 = *(uint *)(param_1 + 0x1c);\n  uVar1 = *(uint *)(param_1 + 0x14);\n  uVar14 = *(uint *)(param_1 + 0x20);\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20);\n  lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar9 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar10 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20);\n  lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff);\n  uVar20 = (uint)lVar6;\n  uVar25 = (uint)((ulonglong)lVar6 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar25 = (uint)uVar2;\n  lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar21 = (uint)lVar11;\n  local_60 = (int)(uVar5 >> 0x20);\n  lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff);\n  uVar15 = (uint)lVar6;\n  local_a0 = (uint)((ulonglong)lVar11 >> 0x20);\n  uVar22 = local_a0 + uVar15;\n  uVar15 = local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15);\n  uVar13 = uVar20 >> 2;\n  uVar14 = uVar13 | uVar25 << 0x1e;\n  uVar1 = uVar14 * 5;\n  uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14);\n  uVar14 = uVar25 >> 2 | uVar21 << 0x1e;\n  uVar13 = uVar14 * 5;\n  uVar23 = uVar26 + uVar13;\n  uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13);\n  uVar14 = uVar21 >> 2 | uVar22 * 0x40000000;\n  uVar13 = uVar14 * 5;\n  local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0]);\n  uVar26 = uVar25 + uVar13;\n  uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13);\n  uVar21 = uVar22 >> 2 | uVar15 * 0x40000000;\n  uVar14 = uVar21 * 5;\n  uVar16 = uVar18 + uVar14;\n  uVar17 = local_84 + uVar1;\n  uVar27 = (uint)CARRY4(local_84,uVar1);\n  local_5c = (uint)lVar8;\n  uVar13 = local_5c + uVar27;\n  uVar24 = uVar13 + uVar23;\n  local_54 = (uint)lVar9;\n  uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23);\n  uVar13 = uVar27 + uVar26;\n  local_4c = (uint)lVar10;\n  uVar28 = uVar13 + local_54;\n  uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54);\n  uVar23 = uVar16 + local_4c;\n  uVar26 = uVar19 + uVar23;\n  uVar25 = (uVar15 >> 4) * 0x19;\n  uVar27 = (uint)CARRY4(uVar25,uVar17);\n  uVar13 = (uint)CARRY4(uVar27,uVar24);\n  uVar1 = (uint)CARRY4(uVar13,uVar28);\n  *(uint *)(param_1 + 0x24) = uVar25 + uVar17;\n  *(uint *)(param_1 + 0x2c) = uVar13 + uVar28;\n  *(uint *)(param_1 + 0x28) = uVar27 + uVar24;\n  *(uint *)(param_1 + 0x30) = uVar1 + uVar26;\n  *(uint *)(param_1 + 0x34) =\n       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26);\n  if (local_34[5] == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0006dad0();\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00043cb0(int param_1,undefined4 param_2,int param_3)" (identifier "FUN_00043cb0") (parameter_list "(int param_1,undefined4 param_2,int param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  uint uVar1;\n  ulonglong uVar2;\n  ulonglong uVar3;\n  ulonglong uVar4;\n  ulonglong uVar5;\n  longlong lVar6;\n  byte bVar7;\n  longlong lVar8;\n  longlong lVar9;\n  longlong lVar10;\n  longlong lVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint uVar28;\n  int in_GS_OFFSET;\n  uint local_a0;\n  uint local_84;\n  uint local_74;\n  int local_60;\n  uint local_5c;\n  uint local_54;\n  uint local_4c;\n  uint local_34 [9];\n  \n  local_34[5] = *(int *)(in_GS_OFFSET + 0x14);\n  local_34[0] = 0;\n  local_34[1] = 0;\n  local_34[2] = 0;\n  local_34[3] = 0;\n  local_34[4] = 0;\n  FUN_00043c70();\n  iVar12 = param_3 + 3;\n  if (-1 < param_3) {\n    iVar12 = param_3;\n  }\n  bVar7 = (byte)(param_3 >> 0x1f);\n  local_34[iVar12 >> 2] =\n       local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f);\n  FUN_000439e0();\n  uVar15 = *(uint *)(param_1 + 0x18);\n  uVar27 = *(uint *)(param_1 + 0x10);\n  uVar13 = *(uint *)(param_1 + 0x1c);\n  uVar1 = *(uint *)(param_1 + 0x14);\n  uVar14 = *(uint *)(param_1 + 0x20);\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20);\n  lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar9 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20);\n  lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff);\n  uVar25 = (uint)((ulonglong)lVar10 >> 0x20);\n  local_74 = (uint)uVar3;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20);\n  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20);\n  lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff);\n  uVar20 = (uint)lVar6;\n  uVar25 = (uint)((ulonglong)lVar6 >> 0x20);\n  local_74 = (uint)uVar4;\n  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);\n  uVar25 = (uint)uVar2;\n  lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20);\n  uVar21 = (uint)lVar11;\n  local_60 = (int)(uVar5 >> 0x20);\n  lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff);\n  uVar15 = (uint)lVar6;\n  local_a0 = (uint)((ulonglong)lVar11 >> 0x20);\n  uVar22 = local_a0 + uVar15;\n  uVar15 = local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15);\n  uVar13 = uVar20 >> 2;\n  uVar14 = uVar13 | uVar25 << 0x1e;\n  uVar1 = uVar14 * 5;\n  uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14);\n  uVar14 = uVar25 >> 2 | uVar21 << 0x1e;\n  uVar13 = uVar14 * 5;\n  uVar23 = uVar26 + uVar13;\n  uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13);\n  uVar14 = uVar21 >> 2 | uVar22 * 0x40000000;\n  uVar13 = uVar14 * 5;\n  local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0]);\n  uVar26 = uVar25 + uVar13;\n  uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13);\n  uVar21 = uVar22 >> 2 | uVar15 * 0x40000000;\n  uVar14 = uVar21 * 5;\n  uVar16 = uVar18 + uVar14;\n  uVar17 = local_84 + uVar1;\n  uVar27 = (uint)CARRY4(local_84,uVar1);\n  local_5c = (uint)lVar8;\n  uVar13 = local_5c + uVar27;\n  uVar24 = uVar13 + uVar23;\n  local_54 = (uint)lVar9;\n  uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23);\n  uVar13 = uVar27 + uVar26;\n  local_4c = (uint)lVar10;\n  uVar28 = uVar13 + local_54;\n  uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54);\n  uVar23 = uVar16 + local_4c;\n  uVar26 = uVar19 + uVar23;\n  uVar25 = (uVar15 >> 4) * 0x19;\n  uVar27 = (uint)CARRY4(uVar25,uVar17);\n  uVar13 = (uint)CARRY4(uVar27,uVar24);\n  uVar1 = (uint)CARRY4(uVar13,uVar28);\n  *(uint *)(param_1 + 0x24) = uVar25 + uVar17;\n  *(uint *)(param_1 + 0x2c) = uVar13 + uVar28;\n  *(uint *)(param_1 + 0x28) = uVar27 + uVar24;\n  *(uint *)(param_1 + 0x30) = uVar1 + uVar26;\n  *(uint *)(param_1 + 0x34) =\n       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26);\n  if (local_34[5] == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0006dad0();\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "ulonglong uVar2;" (type_identifier "ulonglong") (identifier "uVar2") (; ";")) (declaration "ulonglong uVar3;" (type_identifier "ulonglong") (identifier "uVar3") (; ";")) (declaration "ulonglong uVar4;" (type_identifier "ulonglong") (identifier "uVar4") (; ";")) (declaration "ulonglong uVar5;" (type_identifier "ulonglong") (identifier "uVar5") (; ";")) (declaration "longlong lVar6;" (type_identifier "longlong") (identifier "lVar6") (; ";")) (declaration "byte bVar7;" (type_identifier "byte") (identifier "bVar7") (; ";")) (declaration "longlong lVar8;" (type_identifier "longlong") (identifier "lVar8") (; ";")) (declaration "longlong lVar9;" (type_identifier "longlong") (identifier "lVar9") (; ";")) (declaration "longlong lVar10;" (type_identifier "longlong") (identifier "lVar10") (; ";")) (declaration "longlong lVar11;" (type_identifier "longlong") (identifier "lVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (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 uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "uint uVar24;" (type_identifier "uint") (identifier "uVar24") (; ";")) (declaration "uint uVar25;" (type_identifier "uint") (identifier "uVar25") (; ";")) (declaration "uint uVar26;" (type_identifier "uint") (identifier "uVar26") (; ";")) (declaration "uint uVar27;" (type_identifier "uint") (identifier "uVar27") (; ";")) (declaration "uint uVar28;" (type_identifier "uint") (identifier "uVar28") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "uint local_a0;" (type_identifier "uint") (identifier "local_a0") (; ";")) (declaration "uint local_84;" (type_identifier "uint") (identifier "local_84") (; ";")) (declaration "uint local_74;" (type_identifier "uint") (identifier "local_74") (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "uint local_5c;" (type_identifier "uint") (identifier "local_5c") (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "uint local_4c;" (type_identifier "uint") (identifier "local_4c") (; ";")) (declaration "uint local_34 [9];" (type_identifier "uint") (array_declarator "local_34 [9]" (identifier "local_34") ([ "[") (number_literal "9") (] "]")) (; ";")) (expression_statement "local_34[5] = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_34[5] = *(int *)(in_GS_OFFSET + 0x14)" (subscript_expression "local_34[5]" (identifier "local_34") ([ "[") (number_literal "5") (] "]")) (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_34[0] = 0;" (assignment_expression "local_34[0] = 0" (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34[1] = 0;" (assignment_expression "local_34[1] = 0" (subscript_expression "local_34[1]" (identifier "local_34") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34[2] = 0;" (assignment_expression "local_34[2] = 0" (subscript_expression "local_34[2]" (identifier "local_34") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34[3] = 0;" (assignment_expression "local_34[3] = 0" (subscript_expression "local_34[3]" (identifier "local_34") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34[4] = 0;" (assignment_expression "local_34[4] = 0" (subscript_expression "local_34[4]" (identifier "local_34") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00043c70();" (call_expression "FUN_00043c70()" (identifier "FUN_00043c70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = param_3 + 3;" (assignment_expression "iVar12 = param_3 + 3" (identifier "iVar12") (= "=") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (-1 < param_3) {\n    iVar12 = param_3;\n  }" (if "if") (parenthesized_expression "(-1 < param_3)" (( "(") (binary_expression "-1 < param_3" (number_literal "-1") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n    iVar12 = param_3;\n  }" ({ "{") (expression_statement "iVar12 = param_3;" (assignment_expression "iVar12 = param_3" (identifier "iVar12") (= "=") (identifier "param_3")) (; ";")) (} "}"))) (expression_statement "bVar7 = (byte)(param_3 >> 0x1f);" (assignment_expression "bVar7 = (byte)(param_3 >> 0x1f)" (identifier "bVar7") (= "=") (call_expression "(byte)(param_3 >> 0x1f)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(param_3 >> 0x1f)" (( "(") (binary_expression "param_3 >> 0x1f" (identifier "param_3") (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "local_34[iVar12 >> 2] =\n       local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f);" (assignment_expression "local_34[iVar12 >> 2] =\n       local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f)" (subscript_expression "local_34[iVar12 >> 2]" (identifier "local_34") ([ "[") (binary_expression "iVar12 >> 2" (identifier "iVar12") (>> ">>") (number_literal "2")) (] "]")) (= "=") (binary_expression "local_34[iVar12 >> 2] |\n       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f)" (subscript_expression "local_34[iVar12 >> 2]" (identifier "local_34") ([ "[") (binary_expression "iVar12 >> 2" (identifier "iVar12") (>> ">>") (number_literal "2")) (] "]")) (| "|") (binary_expression "1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f)" (( "(") (binary_expression "(((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f" (binary_expression "(((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b'" (parenthesized_expression "(((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6))" (( "(") (binary_expression "((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)" (parenthesized_expression "((char)param_3 + (bVar7 >> 6) & 3)" (( "(") (binary_expression "(char)param_3 + (bVar7 >> 6) & 3" (binary_expression "(char)param_3 + (bVar7 >> 6)" (cast_expression "(char)param_3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_3")) (+ "+") (parenthesized_expression "(bVar7 >> 6)" (( "(") (binary_expression "bVar7 >> 6" (identifier "bVar7") (>> ">>") (number_literal "6")) () ")"))) (& "&") (number_literal "3")) () ")")) (- "-") (parenthesized_expression "(bVar7 >> 6)" (( "(") (binary_expression "bVar7 >> 6" (identifier "bVar7") (>> ">>") (number_literal "6")) () ")"))) () ")")) (* "*") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (expression_statement "FUN_000439e0();" (call_expression "FUN_000439e0()" (identifier "FUN_000439e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar15 = *(uint *)(param_1 + 0x18);" (assignment_expression "uVar15 = *(uint *)(param_1 + 0x18)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(param_1 + 0x18)" (* "*") (cast_expression "(uint *)(param_1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar27 = *(uint *)(param_1 + 0x10);" (assignment_expression "uVar27 = *(uint *)(param_1 + 0x10)" (identifier "uVar27") (= "=") (pointer_expression "*(uint *)(param_1 + 0x10)" (* "*") (cast_expression "(uint *)(param_1 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar13 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar13 = *(uint *)(param_1 + 0x1c)" (identifier "uVar13") (= "=") (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar1 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar1 = *(uint *)(param_1 + 0x14)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(param_1 + 0x14)" (* "*") (cast_expression "(uint *)(param_1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar14 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar14 = *(uint *)(param_1 + 0x20)" (identifier "uVar14") (= "=") (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20);" (assignment_expression "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20)" (identifier "uVar2") (= "=") (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[0] +\n          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20)" (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[0]" (cast_expression "(ulonglong)uVar1" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar1")) (* "*") (cast_expression "(ulonglong)local_34[0]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")))) (+ "+") (parenthesized_expression "((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20" (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[0]" (cast_expression "(ulonglong)uVar27" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar27")) (* "*") (cast_expression "(ulonglong)local_34[0]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20);" (assignment_expression "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20)" (identifier "uVar3") (= "=") (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[0]" (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15")) (* "*") (cast_expression "(ulonglong)local_34[0]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")))) (+ "+") (parenthesized_expression "(uVar2 >> 0x20)" (( "(") (binary_expression "uVar2 >> 0x20" (identifier "uVar2") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20)" (identifier "uVar4") (= "=") (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[0]" (cast_expression "(ulonglong)uVar13" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar13")) (* "*") (cast_expression "(ulonglong)local_34[0]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")))) (+ "+") (parenthesized_expression "(uVar3 >> 0x20)" (( "(") (binary_expression "uVar3 >> 0x20" (identifier "uVar3") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20)" (identifier "uVar5") (= "=") (binary_expression "(ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20)" (binary_expression "(ulonglong)local_34[0] * (ulonglong)uVar14" (cast_expression "(ulonglong)local_34[0]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]"))) (* "*") (cast_expression "(ulonglong)uVar14" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar14"))) (+ "+") (parenthesized_expression "(uVar4 >> 0x20)" (( "(") (binary_expression "uVar4 >> 0x20" (identifier "uVar4") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff);" (assignment_expression "lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff)" (identifier "lVar8") (= "=") (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff)" (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[1]" (cast_expression "(ulonglong)uVar27" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar27")) (* "*") (cast_expression "(ulonglong)local_34[1]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[1]" (identifier "local_34") ([ "[") (number_literal "1") (] "]")))) (+ "+") (parenthesized_expression "(uVar2 & 0xffffffff)" (( "(") (binary_expression "uVar2 & 0xffffffff" (identifier "uVar2") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (expression_statement "uVar25 = (uint)((ulonglong)lVar8 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar8 >> 0x20)" (identifier "uVar25") (= "=") (call_expression "(uint)((ulonglong)lVar8 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar8 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar8")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_74 = (uint)uVar3;" (assignment_expression "local_74 = (uint)uVar3" (identifier "local_74") (= "=") (cast_expression "(uint)uVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar3"))) (; ";")) (expression_statement "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);" (assignment_expression "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (identifier "uVar2") (= "=") (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[1] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[1]" (cast_expression "(ulonglong)uVar1" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar1")) (* "*") (cast_expression "(ulonglong)local_34[1]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[1]" (identifier "local_34") ([ "[") (number_literal "1") (] "]")))) (+ "+") (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (identifier "CONCAT14") (argument_list "(CARRY4(uVar25,local_74),uVar25 + local_74)" (( "(") (call_expression "CARRY4(uVar25,local_74)" (identifier "CARRY4") (argument_list "(uVar25,local_74)" (( "(") (identifier "uVar25") (, ",") (identifier "local_74") () ")"))) (, ",") (binary_expression "uVar25 + local_74" (identifier "uVar25") (+ "+") (identifier "local_74")) () ")")))))) (; ";")) (expression_statement "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);" (assignment_expression "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" (identifier "uVar3") (= "=") (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[1]" (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15")) (* "*") (cast_expression "(ulonglong)local_34[1]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[1]" (identifier "local_34") ([ "[") (number_literal "1") (] "]")))) (+ "+") (parenthesized_expression "(uVar4 & 0xffffffff)" (( "(") (binary_expression "uVar4 & 0xffffffff" (identifier "uVar4") (& "&") (number_literal "0xffffffff")) () ")"))) (+ "+") (parenthesized_expression "(uVar2 >> 0x20)" (( "(") (binary_expression "uVar2 >> 0x20" (identifier "uVar2") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" (identifier "uVar4") (= "=") (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[1]" (cast_expression "(ulonglong)uVar13" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar13")) (* "*") (cast_expression "(ulonglong)local_34[1]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[1]" (identifier "local_34") ([ "[") (number_literal "1") (] "]")))) (+ "+") (parenthesized_expression "(uVar5 & 0xffffffff)" (( "(") (binary_expression "uVar5 & 0xffffffff" (identifier "uVar5") (& "&") (number_literal "0xffffffff")) () ")"))) (+ "+") (parenthesized_expression "(uVar3 >> 0x20)" (( "(") (binary_expression "uVar3 >> 0x20" (identifier "uVar3") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20)" (identifier "uVar5") (= "=") (binary_expression "(ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20)" (binary_expression "(ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20)" (binary_expression "(ulonglong)local_34[1] * (ulonglong)uVar14" (cast_expression "(ulonglong)local_34[1]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[1]" (identifier "local_34") ([ "[") (number_literal "1") (] "]"))) (* "*") (cast_expression "(ulonglong)uVar14" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar14"))) (+ "+") (parenthesized_expression "(uVar5 >> 0x20)" (( "(") (binary_expression "uVar5 >> 0x20" (identifier "uVar5") (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (parenthesized_expression "(uVar4 >> 0x20)" (( "(") (binary_expression "uVar4 >> 0x20" (identifier "uVar4") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff);" (assignment_expression "lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff)" (identifier "lVar9") (= "=") (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff)" (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[2]" (cast_expression "(ulonglong)uVar27" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar27")) (* "*") (cast_expression "(ulonglong)local_34[2]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[2]" (identifier "local_34") ([ "[") (number_literal "2") (] "]")))) (+ "+") (parenthesized_expression "(uVar2 & 0xffffffff)" (( "(") (binary_expression "uVar2 & 0xffffffff" (identifier "uVar2") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (expression_statement "uVar25 = (uint)((ulonglong)lVar9 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar9 >> 0x20)" (identifier "uVar25") (= "=") (call_expression "(uint)((ulonglong)lVar9 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar9 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar9 >> 0x20" (cast_expression "(ulonglong)lVar9" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar9")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_74 = (uint)uVar3;" (assignment_expression "local_74 = (uint)uVar3" (identifier "local_74") (= "=") (cast_expression "(uint)uVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar3"))) (; ";")) (expression_statement "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);" (assignment_expression "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (identifier "uVar2") (= "=") (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[2] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[2]" (cast_expression "(ulonglong)uVar1" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar1")) (* "*") (cast_expression "(ulonglong)local_34[2]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[2]" (identifier "local_34") ([ "[") (number_literal "2") (] "]")))) (+ "+") (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (identifier "CONCAT14") (argument_list "(CARRY4(uVar25,local_74),uVar25 + local_74)" (( "(") (call_expression "CARRY4(uVar25,local_74)" (identifier "CARRY4") (argument_list "(uVar25,local_74)" (( "(") (identifier "uVar25") (, ",") (identifier "local_74") () ")"))) (, ",") (binary_expression "uVar25 + local_74" (identifier "uVar25") (+ "+") (identifier "local_74")) () ")")))))) (; ";")) (expression_statement "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);" (assignment_expression "uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" (identifier "uVar3") (= "=") (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[2]" (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15")) (* "*") (cast_expression "(ulonglong)local_34[2]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[2]" (identifier "local_34") ([ "[") (number_literal "2") (] "]")))) (+ "+") (parenthesized_expression "(uVar4 & 0xffffffff)" (( "(") (binary_expression "uVar4 & 0xffffffff" (identifier "uVar4") (& "&") (number_literal "0xffffffff")) () ")"))) (+ "+") (parenthesized_expression "(uVar2 >> 0x20)" (( "(") (binary_expression "uVar2 >> 0x20" (identifier "uVar2") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" (identifier "uVar4") (= "=") (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[2]" (cast_expression "(ulonglong)uVar13" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar13")) (* "*") (cast_expression "(ulonglong)local_34[2]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[2]" (identifier "local_34") ([ "[") (number_literal "2") (] "]")))) (+ "+") (parenthesized_expression "(uVar5 & 0xffffffff)" (( "(") (binary_expression "uVar5 & 0xffffffff" (identifier "uVar5") (& "&") (number_literal "0xffffffff")) () ")"))) (+ "+") (parenthesized_expression "(uVar3 >> 0x20)" (( "(") (binary_expression "uVar3 >> 0x20" (identifier "uVar3") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20)" (identifier "uVar5") (= "=") (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[2]" (cast_expression "(ulonglong)uVar14" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar14")) (* "*") (cast_expression "(ulonglong)local_34[2]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[2]" (identifier "local_34") ([ "[") (number_literal "2") (] "]")))) (+ "+") (parenthesized_expression "(uVar5 >> 0x20)" (( "(") (binary_expression "uVar5 >> 0x20" (identifier "uVar5") (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (parenthesized_expression "(uVar4 >> 0x20)" (( "(") (binary_expression "uVar4 >> 0x20" (identifier "uVar4") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff);" (assignment_expression "lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff)" (identifier "lVar10") (= "=") (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff)" (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[3]" (cast_expression "(ulonglong)uVar27" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar27")) (* "*") (cast_expression "(ulonglong)local_34[3]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[3]" (identifier "local_34") ([ "[") (number_literal "3") (] "]")))) (+ "+") (parenthesized_expression "(uVar2 & 0xffffffff)" (( "(") (binary_expression "uVar2 & 0xffffffff" (identifier "uVar2") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (expression_statement "uVar25 = (uint)((ulonglong)lVar10 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar10 >> 0x20)" (identifier "uVar25") (= "=") (call_expression "(uint)((ulonglong)lVar10 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar10 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar10 >> 0x20" (cast_expression "(ulonglong)lVar10" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar10")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_74 = (uint)uVar3;" (assignment_expression "local_74 = (uint)uVar3" (identifier "local_74") (= "=") (cast_expression "(uint)uVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar3"))) (; ";")) (expression_statement "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);" (assignment_expression "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (identifier "uVar2") (= "=") (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[3] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[3]" (cast_expression "(ulonglong)uVar1" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar1")) (* "*") (cast_expression "(ulonglong)local_34[3]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[3]" (identifier "local_34") ([ "[") (number_literal "3") (] "]")))) (+ "+") (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (identifier "CONCAT14") (argument_list "(CARRY4(uVar25,local_74),uVar25 + local_74)" (( "(") (call_expression "CARRY4(uVar25,local_74)" (identifier "CARRY4") (argument_list "(uVar25,local_74)" (( "(") (identifier "uVar25") (, ",") (identifier "local_74") () ")"))) (, ",") (binary_expression "uVar25 + local_74" (identifier "uVar25") (+ "+") (identifier "local_74")) () ")")))))) (; ";")) (expression_statement "uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);" (assignment_expression "uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" (identifier "uVar4") (= "=") (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[3]" (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15")) (* "*") (cast_expression "(ulonglong)local_34[3]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[3]" (identifier "local_34") ([ "[") (number_literal "3") (] "]")))) (+ "+") (parenthesized_expression "(uVar4 & 0xffffffff)" (( "(") (binary_expression "uVar4 & 0xffffffff" (identifier "uVar4") (& "&") (number_literal "0xffffffff")) () ")"))) (+ "+") (parenthesized_expression "(uVar2 >> 0x20)" (( "(") (binary_expression "uVar2 >> 0x20" (identifier "uVar2") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20);" (assignment_expression "uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20)" (identifier "uVar3") (= "=") (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[3]" (cast_expression "(ulonglong)uVar13" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar13")) (* "*") (cast_expression "(ulonglong)local_34[3]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[3]" (identifier "local_34") ([ "[") (number_literal "3") (] "]")))) (+ "+") (parenthesized_expression "(uVar5 & 0xffffffff)" (( "(") (binary_expression "uVar5 & 0xffffffff" (identifier "uVar5") (& "&") (number_literal "0xffffffff")) () ")"))) (+ "+") (parenthesized_expression "(uVar4 >> 0x20)" (( "(") (binary_expression "uVar4 >> 0x20" (identifier "uVar4") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20);" (assignment_expression "uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20)" (identifier "uVar5") (= "=") (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20)" (binary_expression "(ulonglong)uVar14 * (ulonglong)local_34[3]" (cast_expression "(ulonglong)uVar14" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar14")) (* "*") (cast_expression "(ulonglong)local_34[3]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[3]" (identifier "local_34") ([ "[") (number_literal "3") (] "]")))) (+ "+") (parenthesized_expression "(uVar5 >> 0x20)" (( "(") (binary_expression "uVar5 >> 0x20" (identifier "uVar5") (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (parenthesized_expression "(uVar3 >> 0x20)" (( "(") (binary_expression "uVar3 >> 0x20" (identifier "uVar3") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff);" (assignment_expression "lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff)" (identifier "lVar6") (= "=") (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff)" (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[4]" (cast_expression "(ulonglong)uVar27" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar27")) (* "*") (cast_expression "(ulonglong)local_34[4]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[4]" (identifier "local_34") ([ "[") (number_literal "4") (] "]")))) (+ "+") (parenthesized_expression "(uVar2 & 0xffffffff)" (( "(") (binary_expression "uVar2 & 0xffffffff" (identifier "uVar2") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (expression_statement "uVar20 = (uint)lVar6;" (assignment_expression "uVar20 = (uint)lVar6" (identifier "uVar20") (= "=") (cast_expression "(uint)lVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar6"))) (; ";")) (expression_statement "uVar25 = (uint)((ulonglong)lVar6 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar6 >> 0x20)" (identifier "uVar25") (= "=") (call_expression "(uint)((ulonglong)lVar6 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar6 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar6")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_74 = (uint)uVar4;" (assignment_expression "local_74 = (uint)uVar4" (identifier "local_74") (= "=") (cast_expression "(uint)uVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar4"))) (; ";")) (expression_statement "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);" (assignment_expression "uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (identifier "uVar2") (= "=") (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[4] +\n          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (binary_expression "(ulonglong)uVar1 * (ulonglong)local_34[4]" (cast_expression "(ulonglong)uVar1" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar1")) (* "*") (cast_expression "(ulonglong)local_34[4]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[4]" (identifier "local_34") ([ "[") (number_literal "4") (] "]")))) (+ "+") (cast_expression "(ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74)" (identifier "CONCAT14") (argument_list "(CARRY4(uVar25,local_74),uVar25 + local_74)" (( "(") (call_expression "CARRY4(uVar25,local_74)" (identifier "CARRY4") (argument_list "(uVar25,local_74)" (( "(") (identifier "uVar25") (, ",") (identifier "local_74") () ")"))) (, ",") (binary_expression "uVar25 + local_74" (identifier "uVar25") (+ "+") (identifier "local_74")) () ")")))))) (; ";")) (expression_statement "uVar25 = (uint)uVar2;" (assignment_expression "uVar25 = (uint)uVar2" (identifier "uVar25") (= "=") (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2"))) (; ";")) (expression_statement "lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20);" (assignment_expression "lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20)" (identifier "lVar11") (= "=") (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff)" (binary_expression "(ulonglong)uVar15 * (ulonglong)local_34[4]" (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15")) (* "*") (cast_expression "(ulonglong)local_34[4]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[4]" (identifier "local_34") ([ "[") (number_literal "4") (] "]")))) (+ "+") (parenthesized_expression "(uVar3 & 0xffffffff)" (( "(") (binary_expression "uVar3 & 0xffffffff" (identifier "uVar3") (& "&") (number_literal "0xffffffff")) () ")"))) (+ "+") (parenthesized_expression "(uVar2 >> 0x20)" (( "(") (binary_expression "uVar2 >> 0x20" (identifier "uVar2") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar21 = (uint)lVar11;" (assignment_expression "uVar21 = (uint)lVar11" (identifier "uVar21") (= "=") (cast_expression "(uint)lVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar11"))) (; ";")) (expression_statement "local_60 = (int)(uVar5 >> 0x20);" (assignment_expression "local_60 = (int)(uVar5 >> 0x20)" (identifier "local_60") (= "=") (cast_expression "(int)(uVar5 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar5 >> 0x20)" (( "(") (binary_expression "uVar5 >> 0x20" (identifier "uVar5") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff);" (assignment_expression "lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff)" (identifier "lVar6") (= "=") (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff)" (binary_expression "(ulonglong)uVar13 * (ulonglong)local_34[4]" (cast_expression "(ulonglong)uVar13" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar13")) (* "*") (cast_expression "(ulonglong)local_34[4]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[4]" (identifier "local_34") ([ "[") (number_literal "4") (] "]")))) (+ "+") (parenthesized_expression "(uVar5 & 0xffffffff)" (( "(") (binary_expression "uVar5 & 0xffffffff" (identifier "uVar5") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (expression_statement "uVar15 = (uint)lVar6;" (assignment_expression "uVar15 = (uint)lVar6" (identifier "uVar15") (= "=") (cast_expression "(uint)lVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar6"))) (; ";")) (expression_statement "local_a0 = (uint)((ulonglong)lVar11 >> 0x20);" (assignment_expression "local_a0 = (uint)((ulonglong)lVar11 >> 0x20)" (identifier "local_a0") (= "=") (call_expression "(uint)((ulonglong)lVar11 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar11 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar11 >> 0x20" (cast_expression "(ulonglong)lVar11" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar11")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar22 = local_a0 + uVar15;" (assignment_expression "uVar22 = local_a0 + uVar15" (identifier "uVar22") (= "=") (binary_expression "local_a0 + uVar15" (identifier "local_a0") (+ "+") (identifier "uVar15"))) (; ";")) (expression_statement "uVar15 = local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15);" (assignment_expression "uVar15 = local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15)" (identifier "uVar15") (= "=") (binary_expression "local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15)" (binary_expression "local_60 + uVar14 * local_34[4] +\n           (int)((ulonglong)lVar6 >> 0x20)" (binary_expression "local_60 + uVar14 * local_34[4]" (identifier "local_60") (+ "+") (binary_expression "uVar14 * local_34[4]" (identifier "uVar14") (* "*") (subscript_expression "local_34[4]" (identifier "local_34") ([ "[") (number_literal "4") (] "]")))) (+ "+") (cast_expression "(int)((ulonglong)lVar6 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar6 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar6")) (>> ">>") (number_literal "0x20")) () ")")))) (+ "+") (cast_expression "(uint)CARRY4(local_a0,uVar15)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(local_a0,uVar15)" (identifier "CARRY4") (argument_list "(local_a0,uVar15)" (( "(") (identifier "local_a0") (, ",") (identifier "uVar15") () ")")))))) (; ";")) (expression_statement "uVar13 = uVar20 >> 2;" (assignment_expression "uVar13 = uVar20 >> 2" (identifier "uVar13") (= "=") (binary_expression "uVar20 >> 2" (identifier "uVar20") (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "uVar14 = uVar13 | uVar25 << 0x1e;" (assignment_expression "uVar14 = uVar13 | uVar25 << 0x1e" (identifier "uVar14") (= "=") (binary_expression "uVar13 | uVar25 << 0x1e" (identifier "uVar13") (| "|") (binary_expression "uVar25 << 0x1e" (identifier "uVar25") (<< "<<") (number_literal "0x1e")))) (; ";")) (expression_statement "uVar1 = uVar14 * 5;" (assignment_expression "uVar1 = uVar14 * 5" (identifier "uVar1") (= "=") (binary_expression "uVar14 * 5" (identifier "uVar14") (* "*") (number_literal "5"))) (; ";")) (expression_statement "uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14);" (assignment_expression "uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14)" (identifier "uVar26") (= "=") (binary_expression "(uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14)" (parenthesized_expression "(uVar25 & 3)" (( "(") (binary_expression "uVar25 & 3" (identifier "uVar25") (& "&") (number_literal "3")) () ")")) (+ "+") (cast_expression "(uint)CARRY4(uVar13 * 4,uVar14)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar13 * 4,uVar14)" (identifier "CARRY4") (argument_list "(uVar13 * 4,uVar14)" (( "(") (binary_expression "uVar13 * 4" (identifier "uVar13") (* "*") (number_literal "4")) (, ",") (identifier "uVar14") () ")")))))) (; ";")) (expression_statement "uVar14 = uVar25 >> 2 | uVar21 << 0x1e;" (assignment_expression "uVar14 = uVar25 >> 2 | uVar21 << 0x1e" (identifier "uVar14") (= "=") (binary_expression "uVar25 >> 2 | uVar21 << 0x1e" (binary_expression "uVar25 >> 2" (identifier "uVar25") (>> ">>") (number_literal "2")) (| "|") (binary_expression "uVar21 << 0x1e" (identifier "uVar21") (<< "<<") (number_literal "0x1e")))) (; ";")) (expression_statement "uVar13 = uVar14 * 5;" (assignment_expression "uVar13 = uVar14 * 5" (identifier "uVar13") (= "=") (binary_expression "uVar14 * 5" (identifier "uVar14") (* "*") (number_literal "5"))) (; ";")) (expression_statement "uVar23 = uVar26 + uVar13;" (assignment_expression "uVar23 = uVar26 + uVar13" (identifier "uVar23") (= "=") (binary_expression "uVar26 + uVar13" (identifier "uVar26") (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13);" (assignment_expression "uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13)" (identifier "uVar25") (= "=") (binary_expression "(uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13)" (binary_expression "(uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4)" (parenthesized_expression "(uVar21 & 3)" (( "(") (binary_expression "uVar21 & 3" (identifier "uVar21") (& "&") (number_literal "3")) () ")")) (+ "+") (cast_expression "(uint)CARRY4(uVar14,(uVar25 >> 2) * 4)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar14,(uVar25 >> 2) * 4)" (identifier "CARRY4") (argument_list "(uVar14,(uVar25 >> 2) * 4)" (( "(") (identifier "uVar14") (, ",") (binary_expression "(uVar25 >> 2) * 4" (parenthesized_expression "(uVar25 >> 2)" (( "(") (binary_expression "uVar25 >> 2" (identifier "uVar25") (>> ">>") (number_literal "2")) () ")")) (* "*") (number_literal "4")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar26,uVar13)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar26,uVar13)" (identifier "CARRY4") (argument_list "(uVar26,uVar13)" (( "(") (identifier "uVar26") (, ",") (identifier "uVar13") () ")")))))) (; ";")) (expression_statement "uVar14 = uVar21 >> 2 | uVar22 * 0x40000000;" (assignment_expression "uVar14 = uVar21 >> 2 | uVar22 * 0x40000000" (identifier "uVar14") (= "=") (binary_expression "uVar21 >> 2 | uVar22 * 0x40000000" (binary_expression "uVar21 >> 2" (identifier "uVar21") (>> ">>") (number_literal "2")) (| "|") (binary_expression "uVar22 * 0x40000000" (identifier "uVar22") (* "*") (number_literal "0x40000000")))) (; ";")) (expression_statement "uVar13 = uVar14 * 5;" (assignment_expression "uVar13 = uVar14 * 5" (identifier "uVar13") (= "=") (binary_expression "uVar14 * 5" (identifier "uVar14") (* "*") (number_literal "5"))) (; ";")) (expression_statement "local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0]);" (assignment_expression "local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0])" (identifier "local_84") (= "=") (call_expression "(uint)((ulonglong)uVar27 * (ulonglong)local_34[0])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar27 * (ulonglong)local_34[0])" (( "(") (binary_expression "(ulonglong)uVar27 * (ulonglong)local_34[0]" (cast_expression "(ulonglong)uVar27" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar27")) (* "*") (cast_expression "(ulonglong)local_34[0]" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (subscript_expression "local_34[0]" (identifier "local_34") ([ "[") (number_literal "0") (] "]")))) () ")")))) (; ";")) (expression_statement "uVar26 = uVar25 + uVar13;" (assignment_expression "uVar26 = uVar25 + uVar13" (identifier "uVar26") (= "=") (binary_expression "uVar25 + uVar13" (identifier "uVar25") (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13);" (assignment_expression "uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13)" (identifier "uVar18") (= "=") (binary_expression "(uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13)" (binary_expression "(uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4)" (parenthesized_expression "(uVar22 & 3)" (( "(") (binary_expression "uVar22 & 3" (identifier "uVar22") (& "&") (number_literal "3")) () ")")) (+ "+") (cast_expression "(uint)CARRY4(uVar14,(uVar21 >> 2) * 4)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar14,(uVar21 >> 2) * 4)" (identifier "CARRY4") (argument_list "(uVar14,(uVar21 >> 2) * 4)" (( "(") (identifier "uVar14") (, ",") (binary_expression "(uVar21 >> 2) * 4" (parenthesized_expression "(uVar21 >> 2)" (( "(") (binary_expression "uVar21 >> 2" (identifier "uVar21") (>> ">>") (number_literal "2")) () ")")) (* "*") (number_literal "4")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar25,uVar13)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar25,uVar13)" (identifier "CARRY4") (argument_list "(uVar25,uVar13)" (( "(") (identifier "uVar25") (, ",") (identifier "uVar13") () ")")))))) (; ";")) (expression_statement "uVar21 = uVar22 >> 2 | uVar15 * 0x40000000;" (assignment_expression "uVar21 = uVar22 >> 2 | uVar15 * 0x40000000" (identifier "uVar21") (= "=") (binary_expression "uVar22 >> 2 | uVar15 * 0x40000000" (binary_expression "uVar22 >> 2" (identifier "uVar22") (>> ">>") (number_literal "2")) (| "|") (binary_expression "uVar15 * 0x40000000" (identifier "uVar15") (* "*") (number_literal "0x40000000")))) (; ";")) (expression_statement "uVar14 = uVar21 * 5;" (assignment_expression "uVar14 = uVar21 * 5" (identifier "uVar14") (= "=") (binary_expression "uVar21 * 5" (identifier "uVar21") (* "*") (number_literal "5"))) (; ";")) (expression_statement "uVar16 = uVar18 + uVar14;" (assignment_expression "uVar16 = uVar18 + uVar14" (identifier "uVar16") (= "=") (binary_expression "uVar18 + uVar14" (identifier "uVar18") (+ "+") (identifier "uVar14"))) (; ";")) (expression_statement "uVar17 = local_84 + uVar1;" (assignment_expression "uVar17 = local_84 + uVar1" (identifier "uVar17") (= "=") (binary_expression "local_84 + uVar1" (identifier "local_84") (+ "+") (identifier "uVar1"))) (; ";")) (expression_statement "uVar27 = (uint)CARRY4(local_84,uVar1);" (assignment_expression "uVar27 = (uint)CARRY4(local_84,uVar1)" (identifier "uVar27") (= "=") (cast_expression "(uint)CARRY4(local_84,uVar1)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(local_84,uVar1)" (identifier "CARRY4") (argument_list "(local_84,uVar1)" (( "(") (identifier "local_84") (, ",") (identifier "uVar1") () ")"))))) (; ";")) (expression_statement "local_5c = (uint)lVar8;" (assignment_expression "local_5c = (uint)lVar8" (identifier "local_5c") (= "=") (cast_expression "(uint)lVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar8"))) (; ";")) (expression_statement "uVar13 = local_5c + uVar27;" (assignment_expression "uVar13 = local_5c + uVar27" (identifier "uVar13") (= "=") (binary_expression "local_5c + uVar27" (identifier "local_5c") (+ "+") (identifier "uVar27"))) (; ";")) (expression_statement "uVar24 = uVar13 + uVar23;" (assignment_expression "uVar24 = uVar13 + uVar23" (identifier "uVar24") (= "=") (binary_expression "uVar13 + uVar23" (identifier "uVar13") (+ "+") (identifier "uVar23"))) (; ";")) (expression_statement "local_54 = (uint)lVar9;" (assignment_expression "local_54 = (uint)lVar9" (identifier "local_54") (= "=") (cast_expression "(uint)lVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar9"))) (; ";")) (expression_statement "uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23);" (assignment_expression "uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23)" (identifier "uVar27") (= "=") (binary_expression "(uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23)" (cast_expression "(uint)CARRY4(local_5c,uVar27)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(local_5c,uVar27)" (identifier "CARRY4") (argument_list "(local_5c,uVar27)" (( "(") (identifier "local_5c") (, ",") (identifier "uVar27") () ")")))) (+ "+") (cast_expression "(uint)CARRY4(uVar13,uVar23)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar13,uVar23)" (identifier "CARRY4") (argument_list "(uVar13,uVar23)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar23") () ")")))))) (; ";")) (expression_statement "uVar13 = uVar27 + uVar26;" (assignment_expression "uVar13 = uVar27 + uVar26" (identifier "uVar13") (= "=") (binary_expression "uVar27 + uVar26" (identifier "uVar27") (+ "+") (identifier "uVar26"))) (; ";")) (expression_statement "local_4c = (uint)lVar10;" (assignment_expression "local_4c = (uint)lVar10" (identifier "local_4c") (= "=") (cast_expression "(uint)lVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar10"))) (; ";")) (expression_statement "uVar28 = uVar13 + local_54;" (assignment_expression "uVar28 = uVar13 + local_54" (identifier "uVar28") (= "=") (binary_expression "uVar13 + local_54" (identifier "uVar13") (+ "+") (identifier "local_54"))) (; ";")) (expression_statement "uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54);" (assignment_expression "uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54)" (identifier "uVar19") (= "=") (binary_expression "(uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54)" (cast_expression "(uint)CARRY4(uVar27,uVar26)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar27,uVar26)" (identifier "CARRY4") (argument_list "(uVar27,uVar26)" (( "(") (identifier "uVar27") (, ",") (identifier "uVar26") () ")")))) (+ "+") (cast_expression "(uint)CARRY4(uVar13,local_54)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar13,local_54)" (identifier "CARRY4") (argument_list "(uVar13,local_54)" (( "(") (identifier "uVar13") (, ",") (identifier "local_54") () ")")))))) (; ";")) (expression_statement "uVar23 = uVar16 + local_4c;" (assignment_expression "uVar23 = uVar16 + local_4c" (identifier "uVar23") (= "=") (binary_expression "uVar16 + local_4c" (identifier "uVar16") (+ "+") (identifier "local_4c"))) (; ";")) (expression_statement "uVar26 = uVar19 + uVar23;" (assignment_expression "uVar26 = uVar19 + uVar23" (identifier "uVar26") (= "=") (binary_expression "uVar19 + uVar23" (identifier "uVar19") (+ "+") (identifier "uVar23"))) (; ";")) (expression_statement "uVar25 = (uVar15 >> 4) * 0x19;" (assignment_expression "uVar25 = (uVar15 >> 4) * 0x19" (identifier "uVar25") (= "=") (binary_expression "(uVar15 >> 4) * 0x19" (parenthesized_expression "(uVar15 >> 4)" (( "(") (binary_expression "uVar15 >> 4" (identifier "uVar15") (>> ">>") (number_literal "4")) () ")")) (* "*") (number_literal "0x19"))) (; ";")) (expression_statement "uVar27 = (uint)CARRY4(uVar25,uVar17);" (assignment_expression "uVar27 = (uint)CARRY4(uVar25,uVar17)" (identifier "uVar27") (= "=") (cast_expression "(uint)CARRY4(uVar25,uVar17)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar25,uVar17)" (identifier "CARRY4") (argument_list "(uVar25,uVar17)" (( "(") (identifier "uVar25") (, ",") (identifier "uVar17") () ")"))))) (; ";")) (expression_statement "uVar13 = (uint)CARRY4(uVar27,uVar24);" (assignment_expression "uVar13 = (uint)CARRY4(uVar27,uVar24)" (identifier "uVar13") (= "=") (cast_expression "(uint)CARRY4(uVar27,uVar24)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar27,uVar24)" (identifier "CARRY4") (argument_list "(uVar27,uVar24)" (( "(") (identifier "uVar27") (, ",") (identifier "uVar24") () ")"))))) (; ";")) (expression_statement "uVar1 = (uint)CARRY4(uVar13,uVar28);" (assignment_expression "uVar1 = (uint)CARRY4(uVar13,uVar28)" (identifier "uVar1") (= "=") (cast_expression "(uint)CARRY4(uVar13,uVar28)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar13,uVar28)" (identifier "CARRY4") (argument_list "(uVar13,uVar28)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar28") () ")"))))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x24) = uVar25 + uVar17;" (assignment_expression "*(uint *)(param_1 + 0x24) = uVar25 + uVar17" (pointer_expression "*(uint *)(param_1 + 0x24)" (* "*") (cast_expression "(uint *)(param_1 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (binary_expression "uVar25 + uVar17" (identifier "uVar25") (+ "+") (identifier "uVar17"))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x2c) = uVar13 + uVar28;" (assignment_expression "*(uint *)(param_1 + 0x2c) = uVar13 + uVar28" (pointer_expression "*(uint *)(param_1 + 0x2c)" (* "*") (cast_expression "(uint *)(param_1 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "uVar13 + uVar28" (identifier "uVar13") (+ "+") (identifier "uVar28"))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x28) = uVar27 + uVar24;" (assignment_expression "*(uint *)(param_1 + 0x28) = uVar27 + uVar24" (pointer_expression "*(uint *)(param_1 + 0x28)" (* "*") (cast_expression "(uint *)(param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "uVar27 + uVar24" (identifier "uVar27") (+ "+") (identifier "uVar24"))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x30) = uVar1 + uVar26;" (assignment_expression "*(uint *)(param_1 + 0x30) = uVar1 + uVar26" (pointer_expression "*(uint *)(param_1 + 0x30)" (* "*") (cast_expression "(uint *)(param_1 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (binary_expression "uVar1 + uVar26" (identifier "uVar1") (+ "+") (identifier "uVar26"))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x34) =\n       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26);" (assignment_expression "*(uint *)(param_1 + 0x34) =\n       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26)" (pointer_expression "*(uint *)(param_1 + 0x34)" (* "*") (cast_expression "(uint *)(param_1 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +\n       (uint)CARRY4(uVar16,local_4c)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +\n       (uVar15 & 3)" (binary_expression "(uVar15 >> 2 & 3) * 5 + (uVar20 & 3)" (binary_expression "(uVar15 >> 2 & 3) * 5" (parenthesized_expression "(uVar15 >> 2 & 3)" (( "(") (binary_expression "uVar15 >> 2 & 3" (binary_expression "uVar15 >> 2" (identifier "uVar15") (>> ">>") (number_literal "2")) (& "&") (number_literal "3")) () ")")) (* "*") (number_literal "5")) (+ "+") (parenthesized_expression "(uVar20 & 3)" (( "(") (binary_expression "uVar20 & 3" (identifier "uVar20") (& "&") (number_literal "3")) () ")"))) (+ "+") (parenthesized_expression "(uVar15 & 3)" (( "(") (binary_expression "uVar15 & 3" (identifier "uVar15") (& "&") (number_literal "3")) () ")"))) (+ "+") (cast_expression "(uint)CARRY4(uVar21,(uVar22 >> 2) * 4)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar21,(uVar22 >> 2) * 4)" (identifier "CARRY4") (argument_list "(uVar21,(uVar22 >> 2) * 4)" (( "(") (identifier "uVar21") (, ",") (binary_expression "(uVar22 >> 2) * 4" (parenthesized_expression "(uVar22 >> 2)" (( "(") (binary_expression "uVar22 >> 2" (identifier "uVar22") (>> ">>") (number_literal "2")) () ")")) (* "*") (number_literal "4")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar18,uVar14)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar18,uVar14)" (identifier "CARRY4") (argument_list "(uVar18,uVar14)" (( "(") (identifier "uVar18") (, ",") (identifier "uVar14") () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar16,local_4c)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar16,local_4c)" (identifier "CARRY4") (argument_list "(uVar16,local_4c)" (( "(") (identifier "uVar16") (, ",") (identifier "local_4c") () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar19,uVar23)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar19,uVar23)" (identifier "CARRY4") (argument_list "(uVar19,uVar23)" (( "(") (identifier "uVar19") (, ",") (identifier "uVar23") () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar1,uVar26)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar1,uVar26)" (identifier "CARRY4") (argument_list "(uVar1,uVar26)" (( "(") (identifier "uVar1") (, ",") (identifier "uVar26") () ")")))))) (; ";")) (if_statement "if (local_34[5] == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_34[5] == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_34[5] == *(int *)(in_GS_OFFSET + 0x14)" (subscript_expression "local_34[5]" (identifier "local_34") ([ "[") (number_literal "5") (] "]")) (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0006dad0();" (call_expression "FUN_0006dad0()" (identifier "FUN_0006dad0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

void __regparm3 function_1(type_1 *ctx,type_2 *chunk,int var_3)

{
  int var_37;
  type_3 var_26;
  type_4 var_7;
  type_4 var_8;
  type_4 var_9;
  type_4 var_14;
  type_5 lVar7;
  type_6 var_5;
  type_5 lVar9;
  type_5 lVar10;
  type_5 lVar11;
  type_5 lVar12;
  int var_4;
  type_3 var_20;
  type_3 var_18;
  type_3 var_16;
  type_3 var_31;
  type_3 var_34;
  type_3 var_24;
  type_3 var_33;
  type_3 var_19;
  type_3 var_21;
  type_3 var_23;
  type_3 var_29;
  type_3 var_36;
  type_3 var_12;
  type_3 var_22;
  type_3 var_28;
  type_3 var_35;
  int var_1;
  type_3 var_15;
  type_3 var_25;
  type_3 var_13;
  int var_17;
  type_3 var_27;
  type_3 var_30;
  type_3 var_32;
  type_7 c;
  
  var_37 = *(int *)(var_1 + 0x14);
  c.w[0] = 0;
  c.w[1] = 0;
  c.w[2] = 0;
  c.w[3] = 0;
  c.w[4] = 0;
  var_2(&c,chunk,var_3);
  var_4 = var_3 + 3;
  if (-1 < var_3) {
    var_4 = var_3;
  }
  var_5 = (type_6)(var_3 >> 0x1f);
  c.w[var_4 >> 2] =
       c.w[var_4 >> 2] | 1 << ((((char)var_3 + (var_5 >> 6) & 3) - (var_5 >> 6)) * '\b' & 0x1f);
  var_6(&c,&c,&ctx->h);
  var_16 = (ctx->r).w[2];
  var_28 = (ctx->r).w[0];
  var_20 = (ctx->r).w[3];
  var_26 = (ctx->r).w[1];
  var_18 = (ctx->r).w[4];
  var_7 = (type_4)var_26 * (type_4)c.w[0] + ((type_4)var_28 * (type_4)c.w[0] >> 0x20);
  var_8 = (type_4)var_16 * (type_4)c.w[0] + (var_7 >> 0x20);
  var_9 = (type_4)var_20 * (type_4)c.w[0] + (var_8 >> 0x20);
  var_14 = (type_4)c.w[0] * (type_4)var_18 + (var_9 >> 0x20);
  lVar9 = (type_4)var_28 * (type_4)c.w[1] + (var_7 & 0xffffffff);
  var_12 = (type_3)((type_4)lVar9 >> 0x20);
  var_13 = (type_3)var_8;
  var_7 = (type_4)var_26 * (type_4)c.w[1] +
          (type_4)var_10(var_11(var_12,var_13),var_12 + var_13);
  var_8 = (type_4)var_16 * (type_4)c.w[1] + (var_9 & 0xffffffff) + (var_7 >> 0x20);
  var_9 = (type_4)var_20 * (type_4)c.w[1] + (var_14 & 0xffffffff) + (var_8 >> 0x20);
  var_14 = (type_4)c.w[1] * (type_4)var_18 + (var_14 >> 0x20) + (var_9 >> 0x20);
  lVar10 = (type_4)var_28 * (type_4)c.w[2] + (var_7 & 0xffffffff);
  var_12 = (type_3)((type_4)lVar10 >> 0x20);
  var_13 = (type_3)var_8;
  var_7 = (type_4)var_26 * (type_4)c.w[2] +
          (type_4)var_10(var_11(var_12,var_13),var_12 + var_13);
  var_8 = (type_4)var_16 * (type_4)c.w[2] + (var_9 & 0xffffffff) + (var_7 >> 0x20);
  var_9 = (type_4)var_20 * (type_4)c.w[2] + (var_14 & 0xffffffff) + (var_8 >> 0x20);
  var_14 = (type_4)var_18 * (type_4)c.w[2] + (var_14 >> 0x20) + (var_9 >> 0x20);
  lVar11 = (type_4)var_28 * (type_4)c.w[3] + (var_7 & 0xffffffff);
  var_12 = (type_3)((type_4)lVar11 >> 0x20);
  var_13 = (type_3)var_8;
  var_7 = (type_4)var_26 * (type_4)c.w[3] +
          (type_4)var_10(var_11(var_12,var_13),var_12 + var_13);
  var_9 = (type_4)var_16 * (type_4)c.w[3] + (var_9 & 0xffffffff) + (var_7 >> 0x20);
  var_8 = (type_4)var_20 * (type_4)c.w[3] + (var_14 & 0xffffffff) + (var_9 >> 0x20);
  var_14 = (type_4)var_18 * (type_4)c.w[3] + (var_14 >> 0x20) + (var_8 >> 0x20);
  lVar7 = (type_4)var_28 * (type_4)c.w[4] + (var_7 & 0xffffffff);
  var_19 = (type_3)lVar7;
  var_12 = (type_3)((type_4)lVar7 >> 0x20);
  var_13 = (type_3)var_9;
  var_7 = (type_4)var_26 * (type_4)c.w[4] +
          (type_4)var_10(var_11(var_12,var_13),var_12 + var_13);
  var_12 = (type_3)var_7;
  lVar12 = (type_4)var_16 * (type_4)c.w[4] + (var_8 & 0xffffffff) + (var_7 >> 0x20);
  var_21 = (type_3)lVar12;
  var_17 = (int)(var_14 >> 0x20);
  lVar7 = (type_4)var_20 * (type_4)c.w[4] + (var_14 & 0xffffffff);
  var_16 = (type_3)lVar7;
  var_15 = (type_3)((type_4)lVar12 >> 0x20);
  var_23 = var_15 + var_16;
  var_16 = var_17 + var_18 * c.w[4] +
           (int)((type_4)lVar7 >> 0x20) + (type_3)var_11(var_15,var_16);
  var_20 = var_19 >> 2;
  var_18 = var_20 | var_12 << 0x1e;
  var_26 = var_18 * 5;
  var_22 = (var_12 & 3) + (type_3)var_11(var_20 * 4,var_18);
  var_18 = var_12 >> 2 | var_21 << 0x1e;
  var_20 = var_18 * 5;
  var_29 = var_22 + var_20;
  var_12 = (var_21 & 3) + (type_3)var_11(var_18,(var_12 >> 2) * 4) + (type_3)var_11(var_22,var_20);
  var_18 = var_21 >> 2 | var_23 * 0x40000000;
  var_20 = var_18 * 5;
  var_25 = (type_3)((type_4)var_28 * (type_4)c.w[0]);
  var_22 = var_12 + var_20;
  var_24 = (var_23 & 3) + (type_3)var_11(var_18,(var_21 >> 2) * 4) + (type_3)var_11(var_12,var_20);
  var_21 = var_23 >> 2 | var_16 * 0x40000000;
  var_18 = var_21 * 5;
  var_31 = var_24 + var_18;
  var_34 = var_25 + var_26;
  var_28 = (type_3)var_11(var_25,var_26);
  var_27 = (type_3)lVar9;
  var_20 = var_27 + var_28;
  var_36 = var_20 + var_29;
  var_30 = (type_3)lVar10;
  var_28 = (type_3)var_11(var_27,var_28) + (type_3)var_11(var_20,var_29);
  var_20 = var_28 + var_22;
  var_32 = (type_3)lVar11;
  var_35 = var_20 + var_30;
  var_33 = (type_3)var_11(var_28,var_22) + (type_3)var_11(var_20,var_30);
  var_29 = var_31 + var_32;
  var_22 = var_33 + var_29;
  var_12 = (var_16 >> 4) * 0x19;
  var_28 = (type_3)var_11(var_12,var_34);
  var_20 = (type_3)var_11(var_28,var_36);
  var_26 = (type_3)var_11(var_20,var_35);
  (ctx->h).w[0] = var_12 + var_34;
  (ctx->h).w[2] = var_20 + var_35;
  (ctx->h).w[1] = var_28 + var_36;
  (ctx->h).w[3] = var_26 + var_22;
  (ctx->h).w[4] =
       (var_16 >> 2 & 3) * 5 + (var_19 & 3) +
       (var_16 & 3) + (type_3)var_11(var_21,(var_23 >> 2) * 4) + (type_3)var_11(var_24,var_18) +
       (type_3)var_11(var_31,var_32) + (type_3)var_11(var_33,var_29) + (type_3)var_11(var_26,var_22);
  if (var_37 == *(int *)(var_1 + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_38();
}


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

void __regparm3 MASKED(int param_1,undefined4 param_2,int param_3)

{
  uint uVar1;
  ulonglong uVar2;
  ulonglong uVar3;
  ulonglong uVar4;
  ulonglong uVar5;
  longlong lVar6;
  byte bVar7;
  longlong lVar8;
  longlong lVar9;
  longlong lVar10;
  longlong lVar11;
  int iVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint uVar28;
  int in_GS_OFFSET;
  uint local_a0;
  uint local_84;
  uint local_74;
  int local_60;
  uint local_5c;
  uint local_54;
  uint local_4c;
  uint local_34 [9];
  
  local_34[5] = *(int *)(in_GS_OFFSET + 0x14);
  local_34[0] = 0;
  local_34[1] = 0;
  local_34[2] = 0;
  local_34[3] = 0;
  local_34[4] = 0;
  FUN_00043c70();
  iVar12 = param_3 + 3;
  if (-1 < param_3) {
    iVar12 = param_3;
  }
  bVar7 = (byte)(param_3 >> 0x1f);
  local_34[iVar12 >> 2] =
       local_34[iVar12 >> 2] |
       1 << ((((char)param_3 + (bVar7 >> 6) & 3) - (bVar7 >> 6)) * '\b' & 0x1f);
  FUN_000439e0();
  uVar15 = *(uint *)(param_1 + 0x18);
  uVar27 = *(uint *)(param_1 + 0x10);
  uVar13 = *(uint *)(param_1 + 0x1c);
  uVar1 = *(uint *)(param_1 + 0x14);
  uVar14 = *(uint *)(param_1 + 0x20);
  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[0] +
          ((ulonglong)uVar27 * (ulonglong)local_34[0] >> 0x20);
  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[0] + (uVar2 >> 0x20);
  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[0] + (uVar3 >> 0x20);
  uVar5 = (ulonglong)local_34[0] * (ulonglong)uVar14 + (uVar4 >> 0x20);
  lVar8 = (ulonglong)uVar27 * (ulonglong)local_34[1] + (uVar2 & 0xffffffff);
  uVar25 = (uint)((ulonglong)lVar8 >> 0x20);
  local_74 = (uint)uVar3;
  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[1] +
          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);
  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[1] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);
  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[1] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);
  uVar5 = (ulonglong)local_34[1] * (ulonglong)uVar14 + (uVar5 >> 0x20) + (uVar4 >> 0x20);
  lVar9 = (ulonglong)uVar27 * (ulonglong)local_34[2] + (uVar2 & 0xffffffff);
  uVar25 = (uint)((ulonglong)lVar9 >> 0x20);
  local_74 = (uint)uVar3;
  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[2] +
          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);
  uVar3 = (ulonglong)uVar15 * (ulonglong)local_34[2] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);
  uVar4 = (ulonglong)uVar13 * (ulonglong)local_34[2] + (uVar5 & 0xffffffff) + (uVar3 >> 0x20);
  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[2] + (uVar5 >> 0x20) + (uVar4 >> 0x20);
  lVar10 = (ulonglong)uVar27 * (ulonglong)local_34[3] + (uVar2 & 0xffffffff);
  uVar25 = (uint)((ulonglong)lVar10 >> 0x20);
  local_74 = (uint)uVar3;
  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[3] +
          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);
  uVar4 = (ulonglong)uVar15 * (ulonglong)local_34[3] + (uVar4 & 0xffffffff) + (uVar2 >> 0x20);
  uVar3 = (ulonglong)uVar13 * (ulonglong)local_34[3] + (uVar5 & 0xffffffff) + (uVar4 >> 0x20);
  uVar5 = (ulonglong)uVar14 * (ulonglong)local_34[3] + (uVar5 >> 0x20) + (uVar3 >> 0x20);
  lVar6 = (ulonglong)uVar27 * (ulonglong)local_34[4] + (uVar2 & 0xffffffff);
  uVar20 = (uint)lVar6;
  uVar25 = (uint)((ulonglong)lVar6 >> 0x20);
  local_74 = (uint)uVar4;
  uVar2 = (ulonglong)uVar1 * (ulonglong)local_34[4] +
          (ulonglong)CONCAT14(CARRY4(uVar25,local_74),uVar25 + local_74);
  uVar25 = (uint)uVar2;
  lVar11 = (ulonglong)uVar15 * (ulonglong)local_34[4] + (uVar3 & 0xffffffff) + (uVar2 >> 0x20);
  uVar21 = (uint)lVar11;
  local_60 = (int)(uVar5 >> 0x20);
  lVar6 = (ulonglong)uVar13 * (ulonglong)local_34[4] + (uVar5 & 0xffffffff);
  uVar15 = (uint)lVar6;
  local_a0 = (uint)((ulonglong)lVar11 >> 0x20);
  uVar22 = local_a0 + uVar15;
  uVar15 = local_60 + uVar14 * local_34[4] +
           (int)((ulonglong)lVar6 >> 0x20) + (uint)CARRY4(local_a0,uVar15);
  uVar13 = uVar20 >> 2;
  uVar14 = uVar13 | uVar25 << 0x1e;
  uVar1 = uVar14 * 5;
  uVar26 = (uVar25 & 3) + (uint)CARRY4(uVar13 * 4,uVar14);
  uVar14 = uVar25 >> 2 | uVar21 << 0x1e;
  uVar13 = uVar14 * 5;
  uVar23 = uVar26 + uVar13;
  uVar25 = (uVar21 & 3) + (uint)CARRY4(uVar14,(uVar25 >> 2) * 4) + (uint)CARRY4(uVar26,uVar13);
  uVar14 = uVar21 >> 2 | uVar22 * 0x40000000;
  uVar13 = uVar14 * 5;
  local_84 = (uint)((ulonglong)uVar27 * (ulonglong)local_34[0]);
  uVar26 = uVar25 + uVar13;
  uVar18 = (uVar22 & 3) + (uint)CARRY4(uVar14,(uVar21 >> 2) * 4) + (uint)CARRY4(uVar25,uVar13);
  uVar21 = uVar22 >> 2 | uVar15 * 0x40000000;
  uVar14 = uVar21 * 5;
  uVar16 = uVar18 + uVar14;
  uVar17 = local_84 + uVar1;
  uVar27 = (uint)CARRY4(local_84,uVar1);
  local_5c = (uint)lVar8;
  uVar13 = local_5c + uVar27;
  uVar24 = uVar13 + uVar23;
  local_54 = (uint)lVar9;
  uVar27 = (uint)CARRY4(local_5c,uVar27) + (uint)CARRY4(uVar13,uVar23);
  uVar13 = uVar27 + uVar26;
  local_4c = (uint)lVar10;
  uVar28 = uVar13 + local_54;
  uVar19 = (uint)CARRY4(uVar27,uVar26) + (uint)CARRY4(uVar13,local_54);
  uVar23 = uVar16 + local_4c;
  uVar26 = uVar19 + uVar23;
  uVar25 = (uVar15 >> 4) * 0x19;
  uVar27 = (uint)CARRY4(uVar25,uVar17);
  uVar13 = (uint)CARRY4(uVar27,uVar24);
  uVar1 = (uint)CARRY4(uVar13,uVar28);
  *(uint *)(param_1 + 0x24) = uVar25 + uVar17;
  *(uint *)(param_1 + 0x2c) = uVar13 + uVar28;
  *(uint *)(param_1 + 0x28) = uVar27 + uVar24;
  *(uint *)(param_1 + 0x30) = uVar1 + uVar26;
  *(uint *)(param_1 + 0x34) =
       (uVar15 >> 2 & 3) * 5 + (uVar20 & 3) +
       (uVar15 & 3) + (uint)CARRY4(uVar21,(uVar22 >> 2) * 4) + (uint)CARRY4(uVar18,uVar14) +
       (uint)CARRY4(uVar16,local_4c) + (uint)CARRY4(uVar19,uVar23) + (uint)CARRY4(uVar1,uVar26);
  if (local_34[5] == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0006dad0();
}

