
void chacha20_round(chacha20 *ctx)

{
  bool bVar1;
  uint32 *puVar2;
  undefined *puVar3;
  undefined *puVar4;
  chacha20 *pcVar5;
  uint uVar6;
  chacha20 *pcVar7;
  uint uVar8;
  uint32 uVar9;
  uint uVar10;
  chacha20 *ctx_00;
  uint32 uVar11;
  byte *pbVar12;
  uint32 uVar13;
  uint uVar14;
  uint uVar15;
  chacha20 *pcVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  int iVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  byte *pbVar26;
  uchar *puVar27;
  uint uVar28;
  uint uVar29;
  uint uVar30;
  uint32 copy [16];
  uint32 local_1c;
  
  puVar4 = PTR___stack_chk_guard_00112630;
  ctx_00 = (chacha20 *)copy;
  local_1c = *(uint32 *)PTR___stack_chk_guard_00112630;
  pcVar5 = ctx;
  pcVar7 = ctx_00;
  do {
    puVar2 = pcVar5->state;
    uVar13 = pcVar5->state[1];
    uVar11 = pcVar5->state[2];
    uVar9 = pcVar5->state[3];
    pcVar5 = (chacha20 *)(pcVar5->state + 4);
    pcVar7->state[0] = *puVar2;
    pcVar7->state[1] = uVar13;
    pcVar7->state[2] = uVar11;
    pcVar7->state[3] = uVar9;
    pcVar7 = (chacha20 *)(pcVar7->state + 4);
  } while (pcVar5 != (chacha20 *)ctx->current);
  iVar20 = 10;
  uVar9 = copy[0];
  do {
    uVar14 = copy[4] + uVar9 ^ copy[0xc];
    uVar10 = copy[1] + copy[5] ^ copy[0xd];
    uVar8 = copy[6] + copy[2] ^ copy[0xe];
    uVar6 = copy[7] + copy[3] ^ copy[0xf];
    uVar15 = (uVar14 >> 0x10) + uVar14 * 0x10000;
    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;
    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;
    uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000;
    uVar28 = uVar15 + copy[8];
    uVar25 = uVar10 + copy[9];
    uVar24 = uVar8 + copy[10];
    uVar22 = uVar6 + copy[0xb];
    uVar19 = uVar28 ^ copy[4];
    uVar14 = uVar25 ^ copy[5];
    uVar18 = uVar24 ^ copy[6];
    uVar17 = uVar22 ^ copy[7];
    uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000;
    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;
    uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000;
    uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000;
    uVar21 = copy[4] + uVar9 + uVar19;
    uVar30 = copy[1] + copy[5] + uVar14;
    uVar29 = copy[6] + copy[2] + uVar18;
    uVar23 = copy[7] + copy[3] + uVar17;
    uVar15 = uVar15 ^ uVar21;
    uVar10 = uVar10 ^ uVar30;
    uVar8 = uVar8 ^ uVar29;
    uVar6 = uVar6 ^ uVar23;
    uVar15 = (uVar15 >> 0x18) + uVar15 * 0x100;
    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;
    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;
    uVar6 = (uVar6 >> 0x18) + uVar6 * 0x100;
    uVar28 = uVar28 + uVar15;
    uVar25 = uVar25 + uVar10;
    uVar24 = uVar24 + uVar8;
    uVar22 = uVar22 + uVar6;
    uVar19 = uVar19 ^ uVar28;
    uVar14 = uVar14 ^ uVar25;
    uVar18 = uVar18 ^ uVar24;
    uVar17 = uVar17 ^ uVar22;
    uVar19 = (uVar19 >> 0x19) + uVar19 * 0x80;
    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;
    uVar18 = (uVar18 >> 0x19) + uVar18 * 0x80;
    uVar17 = (uVar17 >> 0x19) + uVar17 * 0x80;
    uVar21 = uVar21 + uVar14;
    uVar30 = uVar30 + uVar18;
    uVar29 = uVar29 + uVar17;
    uVar23 = uVar19 + uVar23;
    uVar6 = uVar6 ^ uVar21;
    uVar15 = uVar15 ^ uVar30;
    uVar10 = uVar10 ^ uVar29;
    uVar8 = uVar8 ^ uVar23;
    uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000;
    uVar15 = (uVar15 >> 0x10) + uVar15 * 0x10000;
    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;
    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;
    uVar24 = uVar24 + uVar6;
    uVar22 = uVar22 + uVar15;
    uVar28 = uVar28 + uVar10;
    uVar25 = uVar25 + uVar8;
    uVar14 = uVar14 ^ uVar24;
    uVar18 = uVar18 ^ uVar22;
    uVar17 = uVar17 ^ uVar28;
    uVar19 = uVar19 ^ uVar25;
    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;
    uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000;
    uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000;
    uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000;
    uVar9 = uVar21 + uVar14;
    copy[1] = uVar30 + uVar18;
    copy[2] = uVar29 + uVar17;
    copy[3] = uVar23 + uVar19;
    uVar6 = uVar6 ^ uVar9;
    uVar15 = uVar15 ^ copy[1];
    uVar10 = uVar10 ^ copy[2];
    uVar8 = uVar8 ^ copy[3];
    copy[0xf] = (uVar6 >> 0x18) + uVar6 * 0x100;
    copy[0xc] = (uVar15 >> 0x18) + uVar15 * 0x100;
    copy[0xd] = (uVar10 >> 0x18) + uVar10 * 0x100;
    copy[0xe] = (uVar8 >> 0x18) + uVar8 * 0x100;
    copy[10] = uVar24 + copy[0xf];
    copy[0xb] = uVar22 + copy[0xc];
    copy[8] = uVar28 + copy[0xd];
    copy[9] = uVar25 + copy[0xe];
    iVar20 = iVar20 + -1;
    uVar14 = uVar14 ^ copy[10];
    uVar18 = uVar18 ^ copy[0xb];
    uVar17 = uVar17 ^ copy[8];
    uVar19 = uVar19 ^ copy[9];
    copy[5] = (uVar14 >> 0x19) + uVar14 * 0x80;
    copy[6] = (uVar18 >> 0x19) + uVar18 * 0x80;
    copy[7] = (uVar17 >> 0x19) + uVar17 * 0x80;
    copy[4] = (uVar19 >> 0x19) + uVar19 * 0x80;
  } while (iVar20 != 0);
  copy[0] = uVar9;
  pcVar5 = ctx_00;
  pcVar7 = ctx;
  while( true ) {
    puVar2 = pcVar7->state;
    pcVar16 = (chacha20 *)(pcVar5->state + 1);
    pcVar7 = (chacha20 *)(pcVar7->state + 1);
    pcVar5->state[0] = *puVar2 + uVar9;
    pcVar5 = ctx_00;
    puVar27 = ctx->current;
    if ((chacha20 *)&local_1c == pcVar16) break;
    uVar9 = pcVar16->state[0];
    pcVar5 = pcVar16;
  }
  do {
    uVar9 = pcVar5->state[0];
    pcVar5 = (chacha20 *)(pcVar5->state + 1);
    *puVar27 = (uchar)uVar9;
    puVar27[1] = (uchar)(uVar9 >> 8);
    puVar27[2] = (uchar)(uVar9 >> 0x10);
    puVar27[3] = (uchar)(uVar9 >> 0x18);
    puVar3 = PTR_smemclr_00111398;
    puVar27 = puVar27 + 4;
  } while ((chacha20 *)&local_1c != pcVar5);
  pbVar12 = &DAT_00000040;
  ctx->currentIndex = 0;
  (*(code *)puVar3)();
  uVar9 = ctx->state[0xc] + 1;
  ctx->state[0xc] = uVar9;
  if (uVar9 == 0) {
    ctx->state[0xd] = ctx->state[0xd] + 1;
  }
  if (local_1c == *(uint32 *)puVar4) {
    return;
  }
  (*(code *)PTR___stack_chk_fail_001122c8)();
  if (pcVar16 == (chacha20 *)0x0) {
    return;
  }
  iVar20 = ctx_00->currentIndex;
  bVar1 = iVar20 < 0x40;
LAB_0006c064:
  do {
    pbVar26 = pbVar12;
    if (!bVar1) {
      chacha20_round(ctx_00);
      iVar20 = ctx_00->currentIndex;
      bVar1 = iVar20 < 0x40;
      if (!bVar1) goto LAB_0006c064;
    }
    while( true ) {
      pbVar12 = pbVar26 + 1;
      ctx_00->currentIndex = iVar20 + 1;
      *pbVar26 = *pbVar26 ^ ctx_00->current[iVar20];
      iVar20 = ctx_00->currentIndex;
      bVar1 = iVar20 < 0x40;
      pcVar16 = (chacha20 *)((int)&pcVar16[-1].currentIndex + 3);
      if (!bVar1) break;
      pbVar26 = pbVar12;
      if (pcVar16 == (chacha20 *)0x0) {
        return;
      }
    }
    if (pcVar16 == (chacha20 *)0x0) {
      return;
    }
  } while( true );
}



void FUN_0006bcbc(uint *param_1)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  uint *puVar4;
  uint *puVar5;
  uint uVar6;
  uint *puVar7;
  uint uVar8;
  byte *pbVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  int iVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  byte *pbVar22;
  uint *puVar23;
  uint *puVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint local_5c [16];
  uint local_1c;
  
  puVar3 = PTR___stack_chk_guard_00112630;
  puVar7 = local_5c;
  local_1c = *(uint *)PTR___stack_chk_guard_00112630;
  puVar4 = param_1;
  puVar5 = puVar7;
  do {
    uVar13 = *puVar4;
    uVar10 = puVar4[1];
    uVar8 = puVar4[2];
    uVar6 = puVar4[3];
    puVar4 = puVar4 + 4;
    *puVar5 = uVar13;
    puVar5[1] = uVar10;
    puVar5[2] = uVar8;
    puVar5[3] = uVar6;
    puVar5 = puVar5 + 4;
  } while (puVar4 != param_1 + 0x10);
  iVar17 = 10;
  uVar6 = local_5c[0];
  do {
    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];
    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];
    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];
    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];
    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;
    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;
    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;
    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;
    uVar25 = uVar12 + local_5c[8];
    uVar21 = uVar13 + local_5c[9];
    uVar20 = uVar10 + local_5c[10];
    uVar18 = uVar8 + local_5c[0xb];
    uVar16 = uVar25 ^ local_5c[4];
    uVar11 = uVar21 ^ local_5c[5];
    uVar15 = uVar20 ^ local_5c[6];
    uVar14 = uVar18 ^ local_5c[7];
    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;
    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;
    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;
    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;
    uVar6 = local_5c[4] + uVar6 + uVar16;
    uVar27 = local_5c[1] + local_5c[5] + uVar11;
    uVar26 = local_5c[6] + local_5c[2] + uVar15;
    uVar19 = local_5c[7] + local_5c[3] + uVar14;
    uVar12 = uVar12 ^ uVar6;
    uVar13 = uVar13 ^ uVar27;
    uVar10 = uVar10 ^ uVar26;
    uVar8 = uVar8 ^ uVar19;
    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;
    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;
    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;
    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;
    uVar25 = uVar25 + uVar12;
    uVar21 = uVar21 + uVar13;
    uVar20 = uVar20 + uVar10;
    uVar18 = uVar18 + uVar8;
    uVar16 = uVar16 ^ uVar25;
    uVar11 = uVar11 ^ uVar21;
    uVar15 = uVar15 ^ uVar20;
    uVar14 = uVar14 ^ uVar18;
    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;
    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;
    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;
    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;
    uVar6 = uVar6 + uVar11;
    uVar27 = uVar27 + uVar15;
    uVar26 = uVar26 + uVar14;
    uVar19 = uVar16 + uVar19;
    uVar8 = uVar8 ^ uVar6;
    uVar12 = uVar12 ^ uVar27;
    uVar13 = uVar13 ^ uVar26;
    uVar10 = uVar10 ^ uVar19;
    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;
    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;
    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;
    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;
    uVar20 = uVar20 + uVar8;
    uVar18 = uVar18 + uVar12;
    uVar25 = uVar25 + uVar13;
    uVar21 = uVar21 + uVar10;
    uVar11 = uVar11 ^ uVar20;
    uVar15 = uVar15 ^ uVar18;
    uVar14 = uVar14 ^ uVar25;
    uVar16 = uVar16 ^ uVar21;
    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;
    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;
    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;
    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;
    uVar6 = uVar6 + uVar11;
    local_5c[1] = uVar27 + uVar15;
    local_5c[2] = uVar26 + uVar14;
    local_5c[3] = uVar19 + uVar16;
    uVar8 = uVar8 ^ uVar6;
    uVar12 = uVar12 ^ local_5c[1];
    uVar13 = uVar13 ^ local_5c[2];
    uVar10 = uVar10 ^ local_5c[3];
    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;
    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;
    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;
    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;
    local_5c[10] = uVar20 + local_5c[0xf];
    local_5c[0xb] = uVar18 + local_5c[0xc];
    local_5c[8] = uVar25 + local_5c[0xd];
    local_5c[9] = uVar21 + local_5c[0xe];
    iVar17 = iVar17 + -1;
    uVar11 = uVar11 ^ local_5c[10];
    uVar15 = uVar15 ^ local_5c[0xb];
    uVar14 = uVar14 ^ local_5c[8];
    uVar16 = uVar16 ^ local_5c[9];
    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;
    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;
    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;
    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;
  } while (iVar17 != 0);
  local_5c[0] = uVar6;
  puVar4 = puVar7;
  puVar5 = param_1;
  while( true ) {
    uVar8 = *puVar5;
    puVar24 = puVar4 + 1;
    puVar5 = puVar5 + 1;
    *puVar4 = uVar8 + uVar6;
    puVar4 = puVar7;
    puVar23 = param_1 + 0x10;
    if (&local_1c == puVar24) break;
    uVar6 = *puVar24;
    puVar4 = puVar24;
  }
  do {
    uVar6 = *puVar4;
    puVar4 = puVar4 + 1;
    *(char *)puVar23 = (char)uVar6;
    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);
    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);
    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);
    puVar2 = PTR_smemclr_00111398;
    puVar23 = puVar23 + 1;
  } while (&local_1c != puVar4);
  pbVar9 = &DAT_00000040;
  param_1[0x20] = 0;
  (*(code *)puVar2)();
  uVar6 = param_1[0xc];
  param_1[0xc] = uVar6 + 1;
  if (uVar6 + 1 == 0) {
    param_1[0xd] = param_1[0xd] + 1;
  }
  if (local_1c == *(uint *)puVar3) {
    return;
  }
  (*(code *)PTR___stack_chk_fail_001122c8)();
  if (puVar24 == (uint *)0x0) {
    return;
  }
  uVar6 = puVar7[0x20];
  bVar1 = (int)uVar6 < 0x40;
LAB_0006c064:
  do {
    pbVar22 = pbVar9;
    if (!bVar1) {
      FUN_0006bcbc(puVar7);
      uVar6 = puVar7[0x20];
      bVar1 = (int)uVar6 < 0x40;
      if (!bVar1) goto LAB_0006c064;
    }
    while( true ) {
      pbVar9 = pbVar22 + 1;
      puVar7[0x20] = uVar6 + 1;
      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);
      uVar6 = puVar7[0x20];
      bVar1 = (int)uVar6 < 0x40;
      puVar24 = (uint *)((int)puVar24 + -1);
      if (!bVar1) break;
      pbVar22 = pbVar9;
      if (puVar24 == (uint *)0x0) {
        return;
      }
    }
    if (puVar24 == (uint *)0x0) {
      return;
    }
  } while( true );
}


lui gp,0xb
addiu gp,gp,-0x2a0c
addu gp,gp,t9
addiu sp,sp,-0x78
or v0,a0,zero
sw s3,0x6c(sp)
sw s1,0x64(sp)
addiu s1,a0,0x40
sw s0,0x60(sp)
or s0,a0,zero
lw s3,-0x6c80(gp)
sw s2,0x68(sp)
addiu s2,sp,0x1c
sw gp,0x10(sp)
sw ra,0x74(sp)
or v1,s2,zero
sw s4,0x70(sp)
lw a0,0x0(s3)
sw a0,0x5c(sp)
lwl a3,0x0(v0)
addiu v1,v1,0x10
lwl a2,0x4(v0)
lwl a1,0x8(v0)
lwl a0,0xc(v0)
lwr a3,0x3(v0)
lwr a2,0x7(v0)
lwr a1,0xb(v0)
lwr a0,0xf(v0)
addiu v0,v0,0x10
sw a3,-0x10(v1)
sw a2,-0xc(v1)
sw a1,-0x8(v1)
bne v0,s1,0x0006bd08
_sw a0,-0x4(v1)
lw t3,0x1c(sp)
li t2,0xa
lw t1,0x2c(sp)
lw a2,0x4c(sp)
lw t8,0x3c(sp)
lw ra,0x20(sp)
lw a1,0x30(sp)
lw a0,0x50(sp)
lw t7,0x40(sp)
lw t9,0x24(sp)
lw t0,0x34(sp)
lw v1,0x54(sp)
lw t6,0x44(sp)
lw t5,0x28(sp)
lw a3,0x38(sp)
lw v0,0x58(sp)
lw t4,0x48(sp)
addu t3,t1,t3
addu ra,ra,a1
addu t9,t0,t9
addu t5,a3,t5
xor a2,t3,a2
xor a0,ra,a0
xor v1,t9,v1
xor v0,t5,v0
rotr a2,a2,0x10
rotr a0,a0,0x10
rotr v1,v1,0x10
rotr v0,v0,0x10
addu t8,a2,t8
addu t7,a0,t7
addu t6,v1,t6
addu t4,v0,t4
xor t1,t8,t1
xor a1,t7,a1
xor t0,t6,t0
xor a3,t4,a3
rotr t1,t1,0x14
rotr a1,a1,0x14
rotr t0,t0,0x14
rotr a3,a3,0x14
addu t3,t3,t1
addu ra,ra,a1
addu t9,t9,t0
addu t5,t5,a3
xor a2,a2,t3
xor a0,a0,ra
xor v1,v1,t9
xor v0,v0,t5
rotr a2,a2,0x18
rotr a0,a0,0x18
rotr v1,v1,0x18
rotr v0,v0,0x18
addu t8,t8,a2
addu t7,t7,a0
addu t6,t6,v1
addu t4,t4,v0
xor t1,t1,t8
xor a1,a1,t7
xor t0,t0,t6
xor a3,a3,t4
rotr t1,t1,0x19
rotr a1,a1,0x19
rotr t0,t0,0x19
rotr a3,a3,0x19
addu t3,t3,a1
addu ra,ra,t0
addu t9,t9,a3
addu t5,t1,t5
xor v0,v0,t3
xor a2,a2,ra
xor a0,a0,t9
xor v1,v1,t5
rotr v0,v0,0x10
rotr a2,a2,0x10
rotr a0,a0,0x10
rotr v1,v1,0x10
addu t6,t6,v0
addu t4,t4,a2
addu t8,t8,a0
addu t7,t7,v1
xor a1,a1,t6
xor t0,t0,t4
xor a3,a3,t8
xor t1,t1,t7
rotr a1,a1,0x14
rotr t0,t0,0x14
rotr a3,a3,0x14
rotr t1,t1,0x14
addu t3,t3,a1
addu ra,ra,t0
addu t9,t9,a3
addu t5,t5,t1
xor v0,v0,t3
xor a2,a2,ra
xor a0,a0,t9
xor v1,v1,t5
rotr v0,v0,0x18
rotr a2,a2,0x18
rotr a0,a0,0x18
rotr v1,v1,0x18
addu t6,t6,v0
addu t4,t4,a2
addu t8,t8,a0
addu t7,t7,v1
addiu t2,t2,-0x1
xor a1,a1,t6
xor t0,t0,t4
xor a3,a3,t8
xor t1,t1,t7
rotr a1,a1,0x19
rotr t0,t0,0x19
rotr a3,a3,0x19
bne t2,zero,0x0006bd88
_rotr t1,t1,0x19
sw t1,0x2c(sp)
addiu t2,sp,0x5c
sw a2,0x4c(sp)
or s4,s0,zero
sw t3,0x1c(sp)
or t1,s2,zero
sw t8,0x3c(sp)
or a2,s2,zero
sw ra,0x20(sp)
sw a1,0x30(sp)
sw a0,0x50(sp)
sw t7,0x40(sp)
sw t9,0x24(sp)
sw t0,0x34(sp)
sw v1,0x54(sp)
sw t6,0x44(sp)
sw t5,0x28(sp)
sw a3,0x38(sp)
sw v0,0x58(sp)
b 0x0006bf68
_sw t4,0x48(sp)
lw t3,0x0(a2)
lw v0,0x0(s4)
addiu a2,a2,0x4
addiu s4,s4,0x4
addu t3,v0,t3
bne t2,a2,0x0006bf64
_sw t3,-0x4(a2)
lw v0,0x0(t1)
addiu s1,s1,0x4
addiu t1,t1,0x4
srl a0,v0,0x8
sb v0,-0x4(s1)
srl v1,v0,0x10
srl v0,v0,0x18
sb a0,-0x3(s1)
sb v1,-0x2(s1)
bne t2,t1,0x0006bf80
_sb v0,-0x1(s1)
lw t9,-0x7f18(gp)
li a1,0x40
sw zero,0x80(s0)
jalr t9
_or a0,s2,zero
lw v0,0x30(s0)
lw gp,0x10(sp)
addiu v0,v0,0x1
bne v0,zero,0x0006bfe0
_sw v0,0x30(s0)
lw v0,0x34(s0)
addiu v0,v0,0x1
sw v0,0x34(s0)
lw v1,0x5c(sp)
lw v0,0x0(s3)
bne v1,v0,0x0006c00c
_lw ra,0x74(sp)
lw s4,0x70(sp)
lw s3,0x6c(sp)
lw s2,0x68(sp)
lw s1,0x64(sp)
lw s0,0x60(sp)
jr ra
_addiu sp,sp,0x78
lw t9,-0x6fe8(gp)
jalr t9
_nop
(translation_unit "void FUN_0006bcbc(uint *param_1)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  byte *pbVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  byte *pbVar22;\n  uint *puVar23;\n  uint *puVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint local_5c [16];\n  uint local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00112630;\n  puVar7 = local_5c;\n  local_1c = *(uint *)PTR___stack_chk_guard_00112630;\n  puVar4 = param_1;\n  puVar5 = puVar7;\n  do {\n    uVar13 = *puVar4;\n    uVar10 = puVar4[1];\n    uVar8 = puVar4[2];\n    uVar6 = puVar4[3];\n    puVar4 = puVar4 + 4;\n    *puVar5 = uVar13;\n    puVar5[1] = uVar10;\n    puVar5[2] = uVar8;\n    puVar5[3] = uVar6;\n    puVar5 = puVar5 + 4;\n  } while (puVar4 != param_1 + 0x10);\n  iVar17 = 10;\n  uVar6 = local_5c[0];\n  do {\n    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];\n    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];\n    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];\n    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];\n    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar25 = uVar12 + local_5c[8];\n    uVar21 = uVar13 + local_5c[9];\n    uVar20 = uVar10 + local_5c[10];\n    uVar18 = uVar8 + local_5c[0xb];\n    uVar16 = uVar25 ^ local_5c[4];\n    uVar11 = uVar21 ^ local_5c[5];\n    uVar15 = uVar20 ^ local_5c[6];\n    uVar14 = uVar18 ^ local_5c[7];\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar6 = local_5c[4] + uVar6 + uVar16;\n    uVar27 = local_5c[1] + local_5c[5] + uVar11;\n    uVar26 = local_5c[6] + local_5c[2] + uVar15;\n    uVar19 = local_5c[7] + local_5c[3] + uVar14;\n    uVar12 = uVar12 ^ uVar6;\n    uVar13 = uVar13 ^ uVar27;\n    uVar10 = uVar10 ^ uVar26;\n    uVar8 = uVar8 ^ uVar19;\n    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;\n    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar25 = uVar25 + uVar12;\n    uVar21 = uVar21 + uVar13;\n    uVar20 = uVar20 + uVar10;\n    uVar18 = uVar18 + uVar8;\n    uVar16 = uVar16 ^ uVar25;\n    uVar11 = uVar11 ^ uVar21;\n    uVar15 = uVar15 ^ uVar20;\n    uVar14 = uVar14 ^ uVar18;\n    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;\n    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;\n    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar6 = uVar6 + uVar11;\n    uVar27 = uVar27 + uVar15;\n    uVar26 = uVar26 + uVar14;\n    uVar19 = uVar16 + uVar19;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ uVar27;\n    uVar13 = uVar13 ^ uVar26;\n    uVar10 = uVar10 ^ uVar19;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar20 = uVar20 + uVar8;\n    uVar18 = uVar18 + uVar12;\n    uVar25 = uVar25 + uVar13;\n    uVar21 = uVar21 + uVar10;\n    uVar11 = uVar11 ^ uVar20;\n    uVar15 = uVar15 ^ uVar18;\n    uVar14 = uVar14 ^ uVar25;\n    uVar16 = uVar16 ^ uVar21;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar6 = uVar6 + uVar11;\n    local_5c[1] = uVar27 + uVar15;\n    local_5c[2] = uVar26 + uVar14;\n    local_5c[3] = uVar19 + uVar16;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ local_5c[1];\n    uVar13 = uVar13 ^ local_5c[2];\n    uVar10 = uVar10 ^ local_5c[3];\n    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;\n    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;\n    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    local_5c[10] = uVar20 + local_5c[0xf];\n    local_5c[0xb] = uVar18 + local_5c[0xc];\n    local_5c[8] = uVar25 + local_5c[0xd];\n    local_5c[9] = uVar21 + local_5c[0xe];\n    iVar17 = iVar17 + -1;\n    uVar11 = uVar11 ^ local_5c[10];\n    uVar15 = uVar15 ^ local_5c[0xb];\n    uVar14 = uVar14 ^ local_5c[8];\n    uVar16 = uVar16 ^ local_5c[9];\n    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;\n    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;\n    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;\n  } while (iVar17 != 0);\n  local_5c[0] = uVar6;\n  puVar4 = puVar7;\n  puVar5 = param_1;\n  while( true ) {\n    uVar8 = *puVar5;\n    puVar24 = puVar4 + 1;\n    puVar5 = puVar5 + 1;\n    *puVar4 = uVar8 + uVar6;\n    puVar4 = puVar7;\n    puVar23 = param_1 + 0x10;\n    if (&local_1c == puVar24) break;\n    uVar6 = *puVar24;\n    puVar4 = puVar24;\n  }\n  do {\n    uVar6 = *puVar4;\n    puVar4 = puVar4 + 1;\n    *(char *)puVar23 = (char)uVar6;\n    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);\n    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);\n    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);\n    puVar2 = PTR_smemclr_00111398;\n    puVar23 = puVar23 + 1;\n  } while (&local_1c != puVar4);\n  pbVar9 = &DAT_00000040;\n  param_1[0x20] = 0;\n  (*(code *)puVar2)();\n  uVar6 = param_1[0xc];\n  param_1[0xc] = uVar6 + 1;\n  if (uVar6 + 1 == 0) {\n    param_1[0xd] = param_1[0xd] + 1;\n  }\n  if (local_1c == *(uint *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  if (puVar24 == (uint *)0x0) {\n    return;\n  }\n  uVar6 = puVar7[0x20];\n  bVar1 = (int)uVar6 < 0x40;\nLAB_0006c064:\n  do {\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  } while( true );\n}\n\n" (function_definition "void FUN_0006bcbc(uint *param_1)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  byte *pbVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  byte *pbVar22;\n  uint *puVar23;\n  uint *puVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint local_5c [16];\n  uint local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00112630;\n  puVar7 = local_5c;\n  local_1c = *(uint *)PTR___stack_chk_guard_00112630;\n  puVar4 = param_1;\n  puVar5 = puVar7;\n  do {\n    uVar13 = *puVar4;\n    uVar10 = puVar4[1];\n    uVar8 = puVar4[2];\n    uVar6 = puVar4[3];\n    puVar4 = puVar4 + 4;\n    *puVar5 = uVar13;\n    puVar5[1] = uVar10;\n    puVar5[2] = uVar8;\n    puVar5[3] = uVar6;\n    puVar5 = puVar5 + 4;\n  } while (puVar4 != param_1 + 0x10);\n  iVar17 = 10;\n  uVar6 = local_5c[0];\n  do {\n    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];\n    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];\n    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];\n    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];\n    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar25 = uVar12 + local_5c[8];\n    uVar21 = uVar13 + local_5c[9];\n    uVar20 = uVar10 + local_5c[10];\n    uVar18 = uVar8 + local_5c[0xb];\n    uVar16 = uVar25 ^ local_5c[4];\n    uVar11 = uVar21 ^ local_5c[5];\n    uVar15 = uVar20 ^ local_5c[6];\n    uVar14 = uVar18 ^ local_5c[7];\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar6 = local_5c[4] + uVar6 + uVar16;\n    uVar27 = local_5c[1] + local_5c[5] + uVar11;\n    uVar26 = local_5c[6] + local_5c[2] + uVar15;\n    uVar19 = local_5c[7] + local_5c[3] + uVar14;\n    uVar12 = uVar12 ^ uVar6;\n    uVar13 = uVar13 ^ uVar27;\n    uVar10 = uVar10 ^ uVar26;\n    uVar8 = uVar8 ^ uVar19;\n    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;\n    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar25 = uVar25 + uVar12;\n    uVar21 = uVar21 + uVar13;\n    uVar20 = uVar20 + uVar10;\n    uVar18 = uVar18 + uVar8;\n    uVar16 = uVar16 ^ uVar25;\n    uVar11 = uVar11 ^ uVar21;\n    uVar15 = uVar15 ^ uVar20;\n    uVar14 = uVar14 ^ uVar18;\n    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;\n    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;\n    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar6 = uVar6 + uVar11;\n    uVar27 = uVar27 + uVar15;\n    uVar26 = uVar26 + uVar14;\n    uVar19 = uVar16 + uVar19;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ uVar27;\n    uVar13 = uVar13 ^ uVar26;\n    uVar10 = uVar10 ^ uVar19;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar20 = uVar20 + uVar8;\n    uVar18 = uVar18 + uVar12;\n    uVar25 = uVar25 + uVar13;\n    uVar21 = uVar21 + uVar10;\n    uVar11 = uVar11 ^ uVar20;\n    uVar15 = uVar15 ^ uVar18;\n    uVar14 = uVar14 ^ uVar25;\n    uVar16 = uVar16 ^ uVar21;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar6 = uVar6 + uVar11;\n    local_5c[1] = uVar27 + uVar15;\n    local_5c[2] = uVar26 + uVar14;\n    local_5c[3] = uVar19 + uVar16;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ local_5c[1];\n    uVar13 = uVar13 ^ local_5c[2];\n    uVar10 = uVar10 ^ local_5c[3];\n    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;\n    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;\n    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    local_5c[10] = uVar20 + local_5c[0xf];\n    local_5c[0xb] = uVar18 + local_5c[0xc];\n    local_5c[8] = uVar25 + local_5c[0xd];\n    local_5c[9] = uVar21 + local_5c[0xe];\n    iVar17 = iVar17 + -1;\n    uVar11 = uVar11 ^ local_5c[10];\n    uVar15 = uVar15 ^ local_5c[0xb];\n    uVar14 = uVar14 ^ local_5c[8];\n    uVar16 = uVar16 ^ local_5c[9];\n    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;\n    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;\n    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;\n  } while (iVar17 != 0);\n  local_5c[0] = uVar6;\n  puVar4 = puVar7;\n  puVar5 = param_1;\n  while( true ) {\n    uVar8 = *puVar5;\n    puVar24 = puVar4 + 1;\n    puVar5 = puVar5 + 1;\n    *puVar4 = uVar8 + uVar6;\n    puVar4 = puVar7;\n    puVar23 = param_1 + 0x10;\n    if (&local_1c == puVar24) break;\n    uVar6 = *puVar24;\n    puVar4 = puVar24;\n  }\n  do {\n    uVar6 = *puVar4;\n    puVar4 = puVar4 + 1;\n    *(char *)puVar23 = (char)uVar6;\n    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);\n    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);\n    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);\n    puVar2 = PTR_smemclr_00111398;\n    puVar23 = puVar23 + 1;\n  } while (&local_1c != puVar4);\n  pbVar9 = &DAT_00000040;\n  param_1[0x20] = 0;\n  (*(code *)puVar2)();\n  uVar6 = param_1[0xc];\n  param_1[0xc] = uVar6 + 1;\n  if (uVar6 + 1 == 0) {\n    param_1[0xd] = param_1[0xd] + 1;\n  }\n  if (local_1c == *(uint *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  if (puVar24 == (uint *)0x0) {\n    return;\n  }\n  uVar6 = puVar7[0x20];\n  bVar1 = (int)uVar6 < 0x40;\nLAB_0006c064:\n  do {\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_0006bcbc(uint *param_1)" identifier (parameter_list "(uint *param_1)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  byte *pbVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  byte *pbVar22;\n  uint *puVar23;\n  uint *puVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint local_5c [16];\n  uint local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00112630;\n  puVar7 = local_5c;\n  local_1c = *(uint *)PTR___stack_chk_guard_00112630;\n  puVar4 = param_1;\n  puVar5 = puVar7;\n  do {\n    uVar13 = *puVar4;\n    uVar10 = puVar4[1];\n    uVar8 = puVar4[2];\n    uVar6 = puVar4[3];\n    puVar4 = puVar4 + 4;\n    *puVar5 = uVar13;\n    puVar5[1] = uVar10;\n    puVar5[2] = uVar8;\n    puVar5[3] = uVar6;\n    puVar5 = puVar5 + 4;\n  } while (puVar4 != param_1 + 0x10);\n  iVar17 = 10;\n  uVar6 = local_5c[0];\n  do {\n    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];\n    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];\n    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];\n    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];\n    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar25 = uVar12 + local_5c[8];\n    uVar21 = uVar13 + local_5c[9];\n    uVar20 = uVar10 + local_5c[10];\n    uVar18 = uVar8 + local_5c[0xb];\n    uVar16 = uVar25 ^ local_5c[4];\n    uVar11 = uVar21 ^ local_5c[5];\n    uVar15 = uVar20 ^ local_5c[6];\n    uVar14 = uVar18 ^ local_5c[7];\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar6 = local_5c[4] + uVar6 + uVar16;\n    uVar27 = local_5c[1] + local_5c[5] + uVar11;\n    uVar26 = local_5c[6] + local_5c[2] + uVar15;\n    uVar19 = local_5c[7] + local_5c[3] + uVar14;\n    uVar12 = uVar12 ^ uVar6;\n    uVar13 = uVar13 ^ uVar27;\n    uVar10 = uVar10 ^ uVar26;\n    uVar8 = uVar8 ^ uVar19;\n    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;\n    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar25 = uVar25 + uVar12;\n    uVar21 = uVar21 + uVar13;\n    uVar20 = uVar20 + uVar10;\n    uVar18 = uVar18 + uVar8;\n    uVar16 = uVar16 ^ uVar25;\n    uVar11 = uVar11 ^ uVar21;\n    uVar15 = uVar15 ^ uVar20;\n    uVar14 = uVar14 ^ uVar18;\n    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;\n    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;\n    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar6 = uVar6 + uVar11;\n    uVar27 = uVar27 + uVar15;\n    uVar26 = uVar26 + uVar14;\n    uVar19 = uVar16 + uVar19;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ uVar27;\n    uVar13 = uVar13 ^ uVar26;\n    uVar10 = uVar10 ^ uVar19;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar20 = uVar20 + uVar8;\n    uVar18 = uVar18 + uVar12;\n    uVar25 = uVar25 + uVar13;\n    uVar21 = uVar21 + uVar10;\n    uVar11 = uVar11 ^ uVar20;\n    uVar15 = uVar15 ^ uVar18;\n    uVar14 = uVar14 ^ uVar25;\n    uVar16 = uVar16 ^ uVar21;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar6 = uVar6 + uVar11;\n    local_5c[1] = uVar27 + uVar15;\n    local_5c[2] = uVar26 + uVar14;\n    local_5c[3] = uVar19 + uVar16;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ local_5c[1];\n    uVar13 = uVar13 ^ local_5c[2];\n    uVar10 = uVar10 ^ local_5c[3];\n    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;\n    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;\n    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    local_5c[10] = uVar20 + local_5c[0xf];\n    local_5c[0xb] = uVar18 + local_5c[0xc];\n    local_5c[8] = uVar25 + local_5c[0xd];\n    local_5c[9] = uVar21 + local_5c[0xe];\n    iVar17 = iVar17 + -1;\n    uVar11 = uVar11 ^ local_5c[10];\n    uVar15 = uVar15 ^ local_5c[0xb];\n    uVar14 = uVar14 ^ local_5c[8];\n    uVar16 = uVar16 ^ local_5c[9];\n    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;\n    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;\n    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;\n  } while (iVar17 != 0);\n  local_5c[0] = uVar6;\n  puVar4 = puVar7;\n  puVar5 = param_1;\n  while( true ) {\n    uVar8 = *puVar5;\n    puVar24 = puVar4 + 1;\n    puVar5 = puVar5 + 1;\n    *puVar4 = uVar8 + uVar6;\n    puVar4 = puVar7;\n    puVar23 = param_1 + 0x10;\n    if (&local_1c == puVar24) break;\n    uVar6 = *puVar24;\n    puVar4 = puVar24;\n  }\n  do {\n    uVar6 = *puVar4;\n    puVar4 = puVar4 + 1;\n    *(char *)puVar23 = (char)uVar6;\n    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);\n    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);\n    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);\n    puVar2 = PTR_smemclr_00111398;\n    puVar23 = puVar23 + 1;\n  } while (&local_1c != puVar4);\n  pbVar9 = &DAT_00000040;\n  param_1[0x20] = 0;\n  (*(code *)puVar2)();\n  uVar6 = param_1[0xc];\n  param_1[0xc] = uVar6 + 1;\n  if (uVar6 + 1 == 0) {\n    param_1[0xd] = param_1[0xd] + 1;\n  }\n  if (local_1c == *(uint *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  if (puVar24 == (uint *)0x0) {\n    return;\n  }\n  uVar6 = puVar7[0x20];\n  bVar1 = (int)uVar6 < 0x40;\nLAB_0006c064:\n  do {\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  } while( true );\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type 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 "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "uint *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "uint local_5c [16];" type_identifier (array_declarator "local_5c [16]" identifier [ number_literal ]) ;) (declaration "uint local_1c;" type_identifier identifier ;) (expression_statement "puVar3 = PTR___stack_chk_guard_00112630;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00112630" identifier = identifier) ;) (expression_statement "puVar7 = local_5c;" (assignment_expression "puVar7 = local_5c" identifier = identifier) ;) (expression_statement "local_1c = *(uint *)PTR___stack_chk_guard_00112630;" (assignment_expression "local_1c = *(uint *)PTR___stack_chk_guard_00112630" identifier = (pointer_expression "*(uint *)PTR___stack_chk_guard_00112630" * (cast_expression "(uint *)PTR___stack_chk_guard_00112630" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar4 = param_1;" (assignment_expression "puVar4 = param_1" identifier = identifier) ;) (expression_statement "puVar5 = puVar7;" (assignment_expression "puVar5 = puVar7" identifier = identifier) ;) (do_statement "do {\n    uVar13 = *puVar4;\n    uVar10 = puVar4[1];\n    uVar8 = puVar4[2];\n    uVar6 = puVar4[3];\n    puVar4 = puVar4 + 4;\n    *puVar5 = uVar13;\n    puVar5[1] = uVar10;\n    puVar5[2] = uVar8;\n    puVar5[3] = uVar6;\n    puVar5 = puVar5 + 4;\n  } while (puVar4 != param_1 + 0x10);" do (compound_statement "{\n    uVar13 = *puVar4;\n    uVar10 = puVar4[1];\n    uVar8 = puVar4[2];\n    uVar6 = puVar4[3];\n    puVar4 = puVar4 + 4;\n    *puVar5 = uVar13;\n    puVar5[1] = uVar10;\n    puVar5[2] = uVar8;\n    puVar5[3] = uVar6;\n    puVar5 = puVar5 + 4;\n  }" { (expression_statement "uVar13 = *puVar4;" (assignment_expression "uVar13 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "uVar10 = puVar4[1];" (assignment_expression "uVar10 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar4[2];" (assignment_expression "uVar8 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar4[3];" (assignment_expression "uVar6 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "puVar4 = puVar4 + 4;" (assignment_expression "puVar4 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (expression_statement "*puVar5 = uVar13;" (assignment_expression "*puVar5 = uVar13" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = uVar10;" (assignment_expression "puVar5[1] = uVar10" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar8;" (assignment_expression "puVar5[2] = uVar8" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar6;" (assignment_expression "puVar5[3] = uVar6" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = puVar5 + 4;" (assignment_expression "puVar5 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar4 != param_1 + 0x10)" ( (binary_expression "puVar4 != param_1 + 0x10" identifier != (binary_expression "param_1 + 0x10" identifier + number_literal)) )) ;) (expression_statement "iVar17 = 10;" (assignment_expression "iVar17 = 10" identifier = number_literal) ;) (expression_statement "uVar6 = local_5c[0];" (assignment_expression "uVar6 = local_5c[0]" identifier = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];\n    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];\n    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];\n    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];\n    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar25 = uVar12 + local_5c[8];\n    uVar21 = uVar13 + local_5c[9];\n    uVar20 = uVar10 + local_5c[10];\n    uVar18 = uVar8 + local_5c[0xb];\n    uVar16 = uVar25 ^ local_5c[4];\n    uVar11 = uVar21 ^ local_5c[5];\n    uVar15 = uVar20 ^ local_5c[6];\n    uVar14 = uVar18 ^ local_5c[7];\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar6 = local_5c[4] + uVar6 + uVar16;\n    uVar27 = local_5c[1] + local_5c[5] + uVar11;\n    uVar26 = local_5c[6] + local_5c[2] + uVar15;\n    uVar19 = local_5c[7] + local_5c[3] + uVar14;\n    uVar12 = uVar12 ^ uVar6;\n    uVar13 = uVar13 ^ uVar27;\n    uVar10 = uVar10 ^ uVar26;\n    uVar8 = uVar8 ^ uVar19;\n    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;\n    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar25 = uVar25 + uVar12;\n    uVar21 = uVar21 + uVar13;\n    uVar20 = uVar20 + uVar10;\n    uVar18 = uVar18 + uVar8;\n    uVar16 = uVar16 ^ uVar25;\n    uVar11 = uVar11 ^ uVar21;\n    uVar15 = uVar15 ^ uVar20;\n    uVar14 = uVar14 ^ uVar18;\n    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;\n    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;\n    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar6 = uVar6 + uVar11;\n    uVar27 = uVar27 + uVar15;\n    uVar26 = uVar26 + uVar14;\n    uVar19 = uVar16 + uVar19;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ uVar27;\n    uVar13 = uVar13 ^ uVar26;\n    uVar10 = uVar10 ^ uVar19;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar20 = uVar20 + uVar8;\n    uVar18 = uVar18 + uVar12;\n    uVar25 = uVar25 + uVar13;\n    uVar21 = uVar21 + uVar10;\n    uVar11 = uVar11 ^ uVar20;\n    uVar15 = uVar15 ^ uVar18;\n    uVar14 = uVar14 ^ uVar25;\n    uVar16 = uVar16 ^ uVar21;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar6 = uVar6 + uVar11;\n    local_5c[1] = uVar27 + uVar15;\n    local_5c[2] = uVar26 + uVar14;\n    local_5c[3] = uVar19 + uVar16;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ local_5c[1];\n    uVar13 = uVar13 ^ local_5c[2];\n    uVar10 = uVar10 ^ local_5c[3];\n    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;\n    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;\n    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    local_5c[10] = uVar20 + local_5c[0xf];\n    local_5c[0xb] = uVar18 + local_5c[0xc];\n    local_5c[8] = uVar25 + local_5c[0xd];\n    local_5c[9] = uVar21 + local_5c[0xe];\n    iVar17 = iVar17 + -1;\n    uVar11 = uVar11 ^ local_5c[10];\n    uVar15 = uVar15 ^ local_5c[0xb];\n    uVar14 = uVar14 ^ local_5c[8];\n    uVar16 = uVar16 ^ local_5c[9];\n    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;\n    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;\n    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;\n  } while (iVar17 != 0);" do (compound_statement "{\n    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];\n    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];\n    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];\n    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];\n    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar25 = uVar12 + local_5c[8];\n    uVar21 = uVar13 + local_5c[9];\n    uVar20 = uVar10 + local_5c[10];\n    uVar18 = uVar8 + local_5c[0xb];\n    uVar16 = uVar25 ^ local_5c[4];\n    uVar11 = uVar21 ^ local_5c[5];\n    uVar15 = uVar20 ^ local_5c[6];\n    uVar14 = uVar18 ^ local_5c[7];\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar6 = local_5c[4] + uVar6 + uVar16;\n    uVar27 = local_5c[1] + local_5c[5] + uVar11;\n    uVar26 = local_5c[6] + local_5c[2] + uVar15;\n    uVar19 = local_5c[7] + local_5c[3] + uVar14;\n    uVar12 = uVar12 ^ uVar6;\n    uVar13 = uVar13 ^ uVar27;\n    uVar10 = uVar10 ^ uVar26;\n    uVar8 = uVar8 ^ uVar19;\n    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;\n    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar25 = uVar25 + uVar12;\n    uVar21 = uVar21 + uVar13;\n    uVar20 = uVar20 + uVar10;\n    uVar18 = uVar18 + uVar8;\n    uVar16 = uVar16 ^ uVar25;\n    uVar11 = uVar11 ^ uVar21;\n    uVar15 = uVar15 ^ uVar20;\n    uVar14 = uVar14 ^ uVar18;\n    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;\n    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;\n    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar6 = uVar6 + uVar11;\n    uVar27 = uVar27 + uVar15;\n    uVar26 = uVar26 + uVar14;\n    uVar19 = uVar16 + uVar19;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ uVar27;\n    uVar13 = uVar13 ^ uVar26;\n    uVar10 = uVar10 ^ uVar19;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar20 = uVar20 + uVar8;\n    uVar18 = uVar18 + uVar12;\n    uVar25 = uVar25 + uVar13;\n    uVar21 = uVar21 + uVar10;\n    uVar11 = uVar11 ^ uVar20;\n    uVar15 = uVar15 ^ uVar18;\n    uVar14 = uVar14 ^ uVar25;\n    uVar16 = uVar16 ^ uVar21;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar6 = uVar6 + uVar11;\n    local_5c[1] = uVar27 + uVar15;\n    local_5c[2] = uVar26 + uVar14;\n    local_5c[3] = uVar19 + uVar16;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ local_5c[1];\n    uVar13 = uVar13 ^ local_5c[2];\n    uVar10 = uVar10 ^ local_5c[3];\n    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;\n    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;\n    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    local_5c[10] = uVar20 + local_5c[0xf];\n    local_5c[0xb] = uVar18 + local_5c[0xc];\n    local_5c[8] = uVar25 + local_5c[0xd];\n    local_5c[9] = uVar21 + local_5c[0xe];\n    iVar17 = iVar17 + -1;\n    uVar11 = uVar11 ^ local_5c[10];\n    uVar15 = uVar15 ^ local_5c[0xb];\n    uVar14 = uVar14 ^ local_5c[8];\n    uVar16 = uVar16 ^ local_5c[9];\n    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;\n    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;\n    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;\n  }" { (expression_statement "uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];" (assignment_expression "uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc]" identifier = (binary_expression "local_5c[4] + uVar6 ^ local_5c[0xc]" (binary_expression "local_5c[4] + uVar6" (subscript_expression "local_5c[4]" identifier [ number_literal ]) + identifier) ^ (subscript_expression "local_5c[0xc]" identifier [ number_literal ]))) ;) (expression_statement "uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];" (assignment_expression "uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd]" identifier = (binary_expression "local_5c[1] + local_5c[5] ^ local_5c[0xd]" (binary_expression "local_5c[1] + local_5c[5]" (subscript_expression "local_5c[1]" identifier [ number_literal ]) + (subscript_expression "local_5c[5]" identifier [ number_literal ])) ^ (subscript_expression "local_5c[0xd]" identifier [ number_literal ]))) ;) (expression_statement "uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];" (assignment_expression "uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe]" identifier = (binary_expression "local_5c[6] + local_5c[2] ^ local_5c[0xe]" (binary_expression "local_5c[6] + local_5c[2]" (subscript_expression "local_5c[6]" identifier [ number_literal ]) + (subscript_expression "local_5c[2]" identifier [ number_literal ])) ^ (subscript_expression "local_5c[0xe]" identifier [ number_literal ]))) ;) (expression_statement "uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];" (assignment_expression "uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf]" identifier = (binary_expression "local_5c[7] + local_5c[3] ^ local_5c[0xf]" (binary_expression "local_5c[7] + local_5c[3]" (subscript_expression "local_5c[7]" identifier [ number_literal ]) + (subscript_expression "local_5c[3]" identifier [ number_literal ])) ^ (subscript_expression "local_5c[0xf]" identifier [ number_literal ]))) ;) (expression_statement "uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;" (assignment_expression "uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000" identifier = (binary_expression "(uVar11 >> 0x10) + uVar11 * 0x10000" (parenthesized_expression "(uVar11 >> 0x10)" ( (binary_expression "uVar11 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar11 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;" (assignment_expression "uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000" identifier = (binary_expression "(uVar13 >> 0x10) + uVar13 * 0x10000" (parenthesized_expression "(uVar13 >> 0x10)" ( (binary_expression "uVar13 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar13 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;" (assignment_expression "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000" identifier = (binary_expression "(uVar10 >> 0x10) + uVar10 * 0x10000" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar10 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;" (assignment_expression "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000" identifier = (binary_expression "(uVar8 >> 0x10) + uVar8 * 0x10000" (parenthesized_expression "(uVar8 >> 0x10)" ( (binary_expression "uVar8 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar8 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar25 = uVar12 + local_5c[8];" (assignment_expression "uVar25 = uVar12 + local_5c[8]" identifier = (binary_expression "uVar12 + local_5c[8]" identifier + (subscript_expression "local_5c[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar21 = uVar13 + local_5c[9];" (assignment_expression "uVar21 = uVar13 + local_5c[9]" identifier = (binary_expression "uVar13 + local_5c[9]" identifier + (subscript_expression "local_5c[9]" identifier [ number_literal ]))) ;) (expression_statement "uVar20 = uVar10 + local_5c[10];" (assignment_expression "uVar20 = uVar10 + local_5c[10]" identifier = (binary_expression "uVar10 + local_5c[10]" identifier + (subscript_expression "local_5c[10]" identifier [ number_literal ]))) ;) (expression_statement "uVar18 = uVar8 + local_5c[0xb];" (assignment_expression "uVar18 = uVar8 + local_5c[0xb]" identifier = (binary_expression "uVar8 + local_5c[0xb]" identifier + (subscript_expression "local_5c[0xb]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = uVar25 ^ local_5c[4];" (assignment_expression "uVar16 = uVar25 ^ local_5c[4]" identifier = (binary_expression "uVar25 ^ local_5c[4]" identifier ^ (subscript_expression "local_5c[4]" identifier [ number_literal ]))) ;) (expression_statement "uVar11 = uVar21 ^ local_5c[5];" (assignment_expression "uVar11 = uVar21 ^ local_5c[5]" identifier = (binary_expression "uVar21 ^ local_5c[5]" identifier ^ (subscript_expression "local_5c[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar15 = uVar20 ^ local_5c[6];" (assignment_expression "uVar15 = uVar20 ^ local_5c[6]" identifier = (binary_expression "uVar20 ^ local_5c[6]" identifier ^ (subscript_expression "local_5c[6]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = uVar18 ^ local_5c[7];" (assignment_expression "uVar14 = uVar18 ^ local_5c[7]" identifier = (binary_expression "uVar18 ^ local_5c[7]" identifier ^ (subscript_expression "local_5c[7]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;" (assignment_expression "uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000" identifier = (binary_expression "(uVar16 >> 0x14) + uVar16 * 0x1000" (parenthesized_expression "(uVar16 >> 0x14)" ( (binary_expression "uVar16 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar16 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;" (assignment_expression "uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000" identifier = (binary_expression "(uVar11 >> 0x14) + uVar11 * 0x1000" (parenthesized_expression "(uVar11 >> 0x14)" ( (binary_expression "uVar11 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar11 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;" (assignment_expression "uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000" identifier = (binary_expression "(uVar15 >> 0x14) + uVar15 * 0x1000" (parenthesized_expression "(uVar15 >> 0x14)" ( (binary_expression "uVar15 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar15 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;" (assignment_expression "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000" identifier = (binary_expression "(uVar14 >> 0x14) + uVar14 * 0x1000" (parenthesized_expression "(uVar14 >> 0x14)" ( (binary_expression "uVar14 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar14 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar6 = local_5c[4] + uVar6 + uVar16;" (assignment_expression "uVar6 = local_5c[4] + uVar6 + uVar16" identifier = (binary_expression "local_5c[4] + uVar6 + uVar16" (binary_expression "local_5c[4] + uVar6" (subscript_expression "local_5c[4]" identifier [ number_literal ]) + identifier) + identifier)) ;) (expression_statement "uVar27 = local_5c[1] + local_5c[5] + uVar11;" (assignment_expression "uVar27 = local_5c[1] + local_5c[5] + uVar11" identifier = (binary_expression "local_5c[1] + local_5c[5] + uVar11" (binary_expression "local_5c[1] + local_5c[5]" (subscript_expression "local_5c[1]" identifier [ number_literal ]) + (subscript_expression "local_5c[5]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar26 = local_5c[6] + local_5c[2] + uVar15;" (assignment_expression "uVar26 = local_5c[6] + local_5c[2] + uVar15" identifier = (binary_expression "local_5c[6] + local_5c[2] + uVar15" (binary_expression "local_5c[6] + local_5c[2]" (subscript_expression "local_5c[6]" identifier [ number_literal ]) + (subscript_expression "local_5c[2]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar19 = local_5c[7] + local_5c[3] + uVar14;" (assignment_expression "uVar19 = local_5c[7] + local_5c[3] + uVar14" identifier = (binary_expression "local_5c[7] + local_5c[3] + uVar14" (binary_expression "local_5c[7] + local_5c[3]" (subscript_expression "local_5c[7]" identifier [ number_literal ]) + (subscript_expression "local_5c[3]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar12 = uVar12 ^ uVar6;" (assignment_expression "uVar12 = uVar12 ^ uVar6" identifier = (binary_expression "uVar12 ^ uVar6" identifier ^ identifier)) ;) (expression_statement "uVar13 = uVar13 ^ uVar27;" (assignment_expression "uVar13 = uVar13 ^ uVar27" identifier = (binary_expression "uVar13 ^ uVar27" identifier ^ identifier)) ;) (expression_statement "uVar10 = uVar10 ^ uVar26;" (assignment_expression "uVar10 = uVar10 ^ uVar26" identifier = (binary_expression "uVar10 ^ uVar26" identifier ^ identifier)) ;) (expression_statement "uVar8 = uVar8 ^ uVar19;" (assignment_expression "uVar8 = uVar8 ^ uVar19" identifier = (binary_expression "uVar8 ^ uVar19" identifier ^ identifier)) ;) (expression_statement "uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;" (assignment_expression "uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100" identifier = (binary_expression "(uVar12 >> 0x18) + uVar12 * 0x100" (parenthesized_expression "(uVar12 >> 0x18)" ( (binary_expression "uVar12 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar12 * 0x100" identifier * number_literal))) ;) (expression_statement "uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;" (assignment_expression "uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100" identifier = (binary_expression "(uVar13 >> 0x18) + uVar13 * 0x100" (parenthesized_expression "(uVar13 >> 0x18)" ( (binary_expression "uVar13 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar13 * 0x100" identifier * number_literal))) ;) (expression_statement "uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;" (assignment_expression "uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100" identifier = (binary_expression "(uVar10 >> 0x18) + uVar10 * 0x100" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar10 * 0x100" identifier * number_literal))) ;) (expression_statement "uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;" (assignment_expression "uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100" identifier = (binary_expression "(uVar8 >> 0x18) + uVar8 * 0x100" (parenthesized_expression "(uVar8 >> 0x18)" ( (binary_expression "uVar8 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar8 * 0x100" identifier * number_literal))) ;) (expression_statement "uVar25 = uVar25 + uVar12;" (assignment_expression "uVar25 = uVar25 + uVar12" identifier = (binary_expression "uVar25 + uVar12" identifier + identifier)) ;) (expression_statement "uVar21 = uVar21 + uVar13;" (assignment_expression "uVar21 = uVar21 + uVar13" identifier = (binary_expression "uVar21 + uVar13" identifier + identifier)) ;) (expression_statement "uVar20 = uVar20 + uVar10;" (assignment_expression "uVar20 = uVar20 + uVar10" identifier = (binary_expression "uVar20 + uVar10" identifier + identifier)) ;) (expression_statement "uVar18 = uVar18 + uVar8;" (assignment_expression "uVar18 = uVar18 + uVar8" identifier = (binary_expression "uVar18 + uVar8" identifier + identifier)) ;) (expression_statement "uVar16 = uVar16 ^ uVar25;" (assignment_expression "uVar16 = uVar16 ^ uVar25" identifier = (binary_expression "uVar16 ^ uVar25" identifier ^ identifier)) ;) (expression_statement "uVar11 = uVar11 ^ uVar21;" (assignment_expression "uVar11 = uVar11 ^ uVar21" identifier = (binary_expression "uVar11 ^ uVar21" identifier ^ identifier)) ;) (expression_statement "uVar15 = uVar15 ^ uVar20;" (assignment_expression "uVar15 = uVar15 ^ uVar20" identifier = (binary_expression "uVar15 ^ uVar20" identifier ^ identifier)) ;) (expression_statement "uVar14 = uVar14 ^ uVar18;" (assignment_expression "uVar14 = uVar14 ^ uVar18" identifier = (binary_expression "uVar14 ^ uVar18" identifier ^ identifier)) ;) (expression_statement "uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;" (assignment_expression "uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80" identifier = (binary_expression "(uVar16 >> 0x19) + uVar16 * 0x80" (parenthesized_expression "(uVar16 >> 0x19)" ( (binary_expression "uVar16 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar16 * 0x80" identifier * number_literal))) ;) (expression_statement "uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;" (assignment_expression "uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80" identifier = (binary_expression "(uVar11 >> 0x19) + uVar11 * 0x80" (parenthesized_expression "(uVar11 >> 0x19)" ( (binary_expression "uVar11 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar11 * 0x80" identifier * number_literal))) ;) (expression_statement "uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;" (assignment_expression "uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80" identifier = (binary_expression "(uVar15 >> 0x19) + uVar15 * 0x80" (parenthesized_expression "(uVar15 >> 0x19)" ( (binary_expression "uVar15 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar15 * 0x80" identifier * number_literal))) ;) (expression_statement "uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;" (assignment_expression "uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80" identifier = (binary_expression "(uVar14 >> 0x19) + uVar14 * 0x80" (parenthesized_expression "(uVar14 >> 0x19)" ( (binary_expression "uVar14 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar14 * 0x80" identifier * number_literal))) ;) (expression_statement "uVar6 = uVar6 + uVar11;" (assignment_expression "uVar6 = uVar6 + uVar11" identifier = (binary_expression "uVar6 + uVar11" identifier + identifier)) ;) (expression_statement "uVar27 = uVar27 + uVar15;" (assignment_expression "uVar27 = uVar27 + uVar15" identifier = (binary_expression "uVar27 + uVar15" identifier + identifier)) ;) (expression_statement "uVar26 = uVar26 + uVar14;" (assignment_expression "uVar26 = uVar26 + uVar14" identifier = (binary_expression "uVar26 + uVar14" identifier + identifier)) ;) (expression_statement "uVar19 = uVar16 + uVar19;" (assignment_expression "uVar19 = uVar16 + uVar19" identifier = (binary_expression "uVar16 + uVar19" identifier + identifier)) ;) (expression_statement "uVar8 = uVar8 ^ uVar6;" (assignment_expression "uVar8 = uVar8 ^ uVar6" identifier = (binary_expression "uVar8 ^ uVar6" identifier ^ identifier)) ;) (expression_statement "uVar12 = uVar12 ^ uVar27;" (assignment_expression "uVar12 = uVar12 ^ uVar27" identifier = (binary_expression "uVar12 ^ uVar27" identifier ^ identifier)) ;) (expression_statement "uVar13 = uVar13 ^ uVar26;" (assignment_expression "uVar13 = uVar13 ^ uVar26" identifier = (binary_expression "uVar13 ^ uVar26" identifier ^ identifier)) ;) (expression_statement "uVar10 = uVar10 ^ uVar19;" (assignment_expression "uVar10 = uVar10 ^ uVar19" identifier = (binary_expression "uVar10 ^ uVar19" identifier ^ identifier)) ;) (expression_statement "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;" (assignment_expression "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000" identifier = (binary_expression "(uVar8 >> 0x10) + uVar8 * 0x10000" (parenthesized_expression "(uVar8 >> 0x10)" ( (binary_expression "uVar8 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar8 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;" (assignment_expression "uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000" identifier = (binary_expression "(uVar12 >> 0x10) + uVar12 * 0x10000" (parenthesized_expression "(uVar12 >> 0x10)" ( (binary_expression "uVar12 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar12 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;" (assignment_expression "uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000" identifier = (binary_expression "(uVar13 >> 0x10) + uVar13 * 0x10000" (parenthesized_expression "(uVar13 >> 0x10)" ( (binary_expression "uVar13 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar13 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;" (assignment_expression "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000" identifier = (binary_expression "(uVar10 >> 0x10) + uVar10 * 0x10000" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar10 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar20 = uVar20 + uVar8;" (assignment_expression "uVar20 = uVar20 + uVar8" identifier = (binary_expression "uVar20 + uVar8" identifier + identifier)) ;) (expression_statement "uVar18 = uVar18 + uVar12;" (assignment_expression "uVar18 = uVar18 + uVar12" identifier = (binary_expression "uVar18 + uVar12" identifier + identifier)) ;) (expression_statement "uVar25 = uVar25 + uVar13;" (assignment_expression "uVar25 = uVar25 + uVar13" identifier = (binary_expression "uVar25 + uVar13" identifier + identifier)) ;) (expression_statement "uVar21 = uVar21 + uVar10;" (assignment_expression "uVar21 = uVar21 + uVar10" identifier = (binary_expression "uVar21 + uVar10" identifier + identifier)) ;) (expression_statement "uVar11 = uVar11 ^ uVar20;" (assignment_expression "uVar11 = uVar11 ^ uVar20" identifier = (binary_expression "uVar11 ^ uVar20" identifier ^ identifier)) ;) (expression_statement "uVar15 = uVar15 ^ uVar18;" (assignment_expression "uVar15 = uVar15 ^ uVar18" identifier = (binary_expression "uVar15 ^ uVar18" identifier ^ identifier)) ;) (expression_statement "uVar14 = uVar14 ^ uVar25;" (assignment_expression "uVar14 = uVar14 ^ uVar25" identifier = (binary_expression "uVar14 ^ uVar25" identifier ^ identifier)) ;) (expression_statement "uVar16 = uVar16 ^ uVar21;" (assignment_expression "uVar16 = uVar16 ^ uVar21" identifier = (binary_expression "uVar16 ^ uVar21" identifier ^ identifier)) ;) (expression_statement "uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;" (assignment_expression "uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000" identifier = (binary_expression "(uVar11 >> 0x14) + uVar11 * 0x1000" (parenthesized_expression "(uVar11 >> 0x14)" ( (binary_expression "uVar11 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar11 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;" (assignment_expression "uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000" identifier = (binary_expression "(uVar15 >> 0x14) + uVar15 * 0x1000" (parenthesized_expression "(uVar15 >> 0x14)" ( (binary_expression "uVar15 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar15 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;" (assignment_expression "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000" identifier = (binary_expression "(uVar14 >> 0x14) + uVar14 * 0x1000" (parenthesized_expression "(uVar14 >> 0x14)" ( (binary_expression "uVar14 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar14 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;" (assignment_expression "uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000" identifier = (binary_expression "(uVar16 >> 0x14) + uVar16 * 0x1000" (parenthesized_expression "(uVar16 >> 0x14)" ( (binary_expression "uVar16 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar16 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar6 = uVar6 + uVar11;" (assignment_expression "uVar6 = uVar6 + uVar11" identifier = (binary_expression "uVar6 + uVar11" identifier + identifier)) ;) (expression_statement "local_5c[1] = uVar27 + uVar15;" (assignment_expression "local_5c[1] = uVar27 + uVar15" (subscript_expression "local_5c[1]" identifier [ number_literal ]) = (binary_expression "uVar27 + uVar15" identifier + identifier)) ;) (expression_statement "local_5c[2] = uVar26 + uVar14;" (assignment_expression "local_5c[2] = uVar26 + uVar14" (subscript_expression "local_5c[2]" identifier [ number_literal ]) = (binary_expression "uVar26 + uVar14" identifier + identifier)) ;) (expression_statement "local_5c[3] = uVar19 + uVar16;" (assignment_expression "local_5c[3] = uVar19 + uVar16" (subscript_expression "local_5c[3]" identifier [ number_literal ]) = (binary_expression "uVar19 + uVar16" identifier + identifier)) ;) (expression_statement "uVar8 = uVar8 ^ uVar6;" (assignment_expression "uVar8 = uVar8 ^ uVar6" identifier = (binary_expression "uVar8 ^ uVar6" identifier ^ identifier)) ;) (expression_statement "uVar12 = uVar12 ^ local_5c[1];" (assignment_expression "uVar12 = uVar12 ^ local_5c[1]" identifier = (binary_expression "uVar12 ^ local_5c[1]" identifier ^ (subscript_expression "local_5c[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar13 = uVar13 ^ local_5c[2];" (assignment_expression "uVar13 = uVar13 ^ local_5c[2]" identifier = (binary_expression "uVar13 ^ local_5c[2]" identifier ^ (subscript_expression "local_5c[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar10 = uVar10 ^ local_5c[3];" (assignment_expression "uVar10 = uVar10 ^ local_5c[3]" identifier = (binary_expression "uVar10 ^ local_5c[3]" identifier ^ (subscript_expression "local_5c[3]" identifier [ number_literal ]))) ;) (expression_statement "local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;" (assignment_expression "local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100" (subscript_expression "local_5c[0xf]" identifier [ number_literal ]) = (binary_expression "(uVar8 >> 0x18) + uVar8 * 0x100" (parenthesized_expression "(uVar8 >> 0x18)" ( (binary_expression "uVar8 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar8 * 0x100" identifier * number_literal))) ;) (expression_statement "local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;" (assignment_expression "local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100" (subscript_expression "local_5c[0xc]" identifier [ number_literal ]) = (binary_expression "(uVar12 >> 0x18) + uVar12 * 0x100" (parenthesized_expression "(uVar12 >> 0x18)" ( (binary_expression "uVar12 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar12 * 0x100" identifier * number_literal))) ;) (expression_statement "local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;" (assignment_expression "local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100" (subscript_expression "local_5c[0xd]" identifier [ number_literal ]) = (binary_expression "(uVar13 >> 0x18) + uVar13 * 0x100" (parenthesized_expression "(uVar13 >> 0x18)" ( (binary_expression "uVar13 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar13 * 0x100" identifier * number_literal))) ;) (expression_statement "local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;" (assignment_expression "local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100" (subscript_expression "local_5c[0xe]" identifier [ number_literal ]) = (binary_expression "(uVar10 >> 0x18) + uVar10 * 0x100" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar10 * 0x100" identifier * number_literal))) ;) (expression_statement "local_5c[10] = uVar20 + local_5c[0xf];" (assignment_expression "local_5c[10] = uVar20 + local_5c[0xf]" (subscript_expression "local_5c[10]" identifier [ number_literal ]) = (binary_expression "uVar20 + local_5c[0xf]" identifier + (subscript_expression "local_5c[0xf]" identifier [ number_literal ]))) ;) (expression_statement "local_5c[0xb] = uVar18 + local_5c[0xc];" (assignment_expression "local_5c[0xb] = uVar18 + local_5c[0xc]" (subscript_expression "local_5c[0xb]" identifier [ number_literal ]) = (binary_expression "uVar18 + local_5c[0xc]" identifier + (subscript_expression "local_5c[0xc]" identifier [ number_literal ]))) ;) (expression_statement "local_5c[8] = uVar25 + local_5c[0xd];" (assignment_expression "local_5c[8] = uVar25 + local_5c[0xd]" (subscript_expression "local_5c[8]" identifier [ number_literal ]) = (binary_expression "uVar25 + local_5c[0xd]" identifier + (subscript_expression "local_5c[0xd]" identifier [ number_literal ]))) ;) (expression_statement "local_5c[9] = uVar21 + local_5c[0xe];" (assignment_expression "local_5c[9] = uVar21 + local_5c[0xe]" (subscript_expression "local_5c[9]" identifier [ number_literal ]) = (binary_expression "uVar21 + local_5c[0xe]" identifier + (subscript_expression "local_5c[0xe]" identifier [ number_literal ]))) ;) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "uVar11 = uVar11 ^ local_5c[10];" (assignment_expression "uVar11 = uVar11 ^ local_5c[10]" identifier = (binary_expression "uVar11 ^ local_5c[10]" identifier ^ (subscript_expression "local_5c[10]" identifier [ number_literal ]))) ;) (expression_statement "uVar15 = uVar15 ^ local_5c[0xb];" (assignment_expression "uVar15 = uVar15 ^ local_5c[0xb]" identifier = (binary_expression "uVar15 ^ local_5c[0xb]" identifier ^ (subscript_expression "local_5c[0xb]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = uVar14 ^ local_5c[8];" (assignment_expression "uVar14 = uVar14 ^ local_5c[8]" identifier = (binary_expression "uVar14 ^ local_5c[8]" identifier ^ (subscript_expression "local_5c[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = uVar16 ^ local_5c[9];" (assignment_expression "uVar16 = uVar16 ^ local_5c[9]" identifier = (binary_expression "uVar16 ^ local_5c[9]" identifier ^ (subscript_expression "local_5c[9]" identifier [ number_literal ]))) ;) (expression_statement "local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;" (assignment_expression "local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80" (subscript_expression "local_5c[5]" identifier [ number_literal ]) = (binary_expression "(uVar11 >> 0x19) + uVar11 * 0x80" (parenthesized_expression "(uVar11 >> 0x19)" ( (binary_expression "uVar11 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar11 * 0x80" identifier * number_literal))) ;) (expression_statement "local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;" (assignment_expression "local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80" (subscript_expression "local_5c[6]" identifier [ number_literal ]) = (binary_expression "(uVar15 >> 0x19) + uVar15 * 0x80" (parenthesized_expression "(uVar15 >> 0x19)" ( (binary_expression "uVar15 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar15 * 0x80" identifier * number_literal))) ;) (expression_statement "local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;" (assignment_expression "local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80" (subscript_expression "local_5c[7]" identifier [ number_literal ]) = (binary_expression "(uVar14 >> 0x19) + uVar14 * 0x80" (parenthesized_expression "(uVar14 >> 0x19)" ( (binary_expression "uVar14 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar14 * 0x80" identifier * number_literal))) ;) (expression_statement "local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;" (assignment_expression "local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80" (subscript_expression "local_5c[4]" identifier [ number_literal ]) = (binary_expression "(uVar16 >> 0x19) + uVar16 * 0x80" (parenthesized_expression "(uVar16 >> 0x19)" ( (binary_expression "uVar16 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar16 * 0x80" identifier * number_literal))) ;) }) while (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) ;) (expression_statement "local_5c[0] = uVar6;" (assignment_expression "local_5c[0] = uVar6" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" identifier = identifier) ;) (expression_statement "puVar5 = param_1;" (assignment_expression "puVar5 = param_1" identifier = identifier) ;) (while_statement "while( true ) {\n    uVar8 = *puVar5;\n    puVar24 = puVar4 + 1;\n    puVar5 = puVar5 + 1;\n    *puVar4 = uVar8 + uVar6;\n    puVar4 = puVar7;\n    puVar23 = param_1 + 0x10;\n    if (&local_1c == puVar24) break;\n    uVar6 = *puVar24;\n    puVar4 = puVar24;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar8 = *puVar5;\n    puVar24 = puVar4 + 1;\n    puVar5 = puVar5 + 1;\n    *puVar4 = uVar8 + uVar6;\n    puVar4 = puVar7;\n    puVar23 = param_1 + 0x10;\n    if (&local_1c == puVar24) break;\n    uVar6 = *puVar24;\n    puVar4 = puVar24;\n  }" { (expression_statement "uVar8 = *puVar5;" (assignment_expression "uVar8 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar24 = puVar4 + 1;" (assignment_expression "puVar24 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "*puVar4 = uVar8 + uVar6;" (assignment_expression "*puVar4 = uVar8 + uVar6" (pointer_expression "*puVar4" * identifier) = (binary_expression "uVar8 + uVar6" identifier + identifier)) ;) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" identifier = identifier) ;) (expression_statement "puVar23 = param_1 + 0x10;" (assignment_expression "puVar23 = param_1 + 0x10" identifier = (binary_expression "param_1 + 0x10" identifier + number_literal)) ;) (if_statement "if (&local_1c == puVar24) break;" if (parenthesized_expression "(&local_1c == puVar24)" ( (binary_expression "&local_1c == puVar24" (pointer_expression "&local_1c" & identifier) == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = *puVar24;" (assignment_expression "uVar6 = *puVar24" identifier = (pointer_expression "*puVar24" * identifier)) ;) (expression_statement "puVar4 = puVar24;" (assignment_expression "puVar4 = puVar24" identifier = identifier) ;) })) (do_statement "do {\n    uVar6 = *puVar4;\n    puVar4 = puVar4 + 1;\n    *(char *)puVar23 = (char)uVar6;\n    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);\n    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);\n    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);\n    puVar2 = PTR_smemclr_00111398;\n    puVar23 = puVar23 + 1;\n  } while (&local_1c != puVar4);" do (compound_statement "{\n    uVar6 = *puVar4;\n    puVar4 = puVar4 + 1;\n    *(char *)puVar23 = (char)uVar6;\n    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);\n    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);\n    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);\n    puVar2 = PTR_smemclr_00111398;\n    puVar23 = puVar23 + 1;\n  }" { (expression_statement "uVar6 = *puVar4;" (assignment_expression "uVar6 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "*(char *)puVar23 = (char)uVar6;" (assignment_expression "*(char *)puVar23 = (char)uVar6" (pointer_expression "*(char *)puVar23" * (cast_expression "(char *)puVar23" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(char)uVar6" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);" (assignment_expression "*(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8)" (pointer_expression "*(char *)((int)puVar23 + 1)" * (cast_expression "(char *)((int)puVar23 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 1)" ( (binary_expression "(int)puVar23 + 1" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)(uVar6 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar6 >> 8)" ( (binary_expression "uVar6 >> 8" identifier >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);" (assignment_expression "*(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10)" (pointer_expression "*(char *)((int)puVar23 + 2)" * (cast_expression "(char *)((int)puVar23 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 2)" ( (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)(uVar6 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);" (assignment_expression "*(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18)" (pointer_expression "*(char *)((int)puVar23 + 3)" * (cast_expression "(char *)((int)puVar23 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 3)" ( (binary_expression "(int)puVar23 + 3" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)(uVar6 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "puVar2 = PTR_smemclr_00111398;" (assignment_expression "puVar2 = PTR_smemclr_00111398" identifier = identifier) ;) (expression_statement "puVar23 = puVar23 + 1;" (assignment_expression "puVar23 = puVar23 + 1" identifier = (binary_expression "puVar23 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(&local_1c != puVar4)" ( (binary_expression "&local_1c != puVar4" (pointer_expression "&local_1c" & identifier) != identifier) )) ;) (expression_statement "pbVar9 = &DAT_00000040;" (assignment_expression "pbVar9 = &DAT_00000040" identifier = (pointer_expression "&DAT_00000040" & identifier)) ;) (expression_statement "param_1[0x20] = 0;" (assignment_expression "param_1[0x20] = 0" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)puVar2)();" (call_expression "(*(code *)puVar2)()" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar6 = param_1[0xc];" (assignment_expression "uVar6 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xc] = uVar6 + 1;" (assignment_expression "param_1[0xc] = uVar6 + 1" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (if_statement "if (uVar6 + 1 == 0) {\n    param_1[0xd] = param_1[0xd] + 1;\n  }" if (parenthesized_expression "(uVar6 + 1 == 0)" ( (binary_expression "uVar6 + 1 == 0" (binary_expression "uVar6 + 1" identifier + number_literal) == number_literal) )) (compound_statement "{\n    param_1[0xd] = param_1[0xd] + 1;\n  }" { (expression_statement "param_1[0xd] = param_1[0xd] + 1;" (assignment_expression "param_1[0xd] = param_1[0xd] + 1" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = (binary_expression "param_1[0xd] + 1" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) + number_literal)) ;) })) (if_statement "if (local_1c == *(uint *)puVar3) {\n    return;\n  }" if (parenthesized_expression "(local_1c == *(uint *)puVar3)" ( (binary_expression "local_1c == *(uint *)puVar3" identifier == (pointer_expression "*(uint *)puVar3" * (cast_expression "(uint *)puVar3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_001122c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_001122c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001122c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001122c8" * (cast_expression "(code *)PTR___stack_chk_fail_001122c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (puVar24 == (uint *)0x0) {\n    return;\n  }" if (parenthesized_expression "(puVar24 == (uint *)0x0)" ( (binary_expression "puVar24 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar6 = puVar7[0x20];" (assignment_expression "uVar6 = puVar7[0x20]" identifier = (subscript_expression "puVar7[0x20]" identifier [ number_literal ])) ;) (expression_statement "bVar1 = (int)uVar6 < 0x40;" (assignment_expression "bVar1 = (int)uVar6 < 0x40" identifier = (binary_expression "(int)uVar6 < 0x40" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (labeled_statement "LAB_0006c064:\n  do {\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  }" { (expression_statement "pbVar22 = pbVar9;" (assignment_expression "pbVar22 = pbVar9" identifier = identifier) ;) (if_statement "if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }" { (expression_statement "FUN_0006bcbc(puVar7);" (call_expression "FUN_0006bcbc(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;) (expression_statement "uVar6 = puVar7[0x20];" (assignment_expression "uVar6 = puVar7[0x20]" identifier = (subscript_expression "puVar7[0x20]" identifier [ number_literal ])) ;) (expression_statement "bVar1 = (int)uVar6 < 0x40;" (assignment_expression "bVar1 = (int)uVar6 < 0x40" identifier = (binary_expression "(int)uVar6 < 0x40" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (if_statement "if (!bVar1) goto LAB_0006c064;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (goto_statement "goto LAB_0006c064;" goto statement_identifier ;)) })) (while_statement "while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }" { (expression_statement "pbVar9 = pbVar22 + 1;" (assignment_expression "pbVar9 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "puVar7[0x20] = uVar6 + 1;" (assignment_expression "puVar7[0x20] = uVar6 + 1" (subscript_expression "puVar7[0x20]" identifier [ number_literal ]) = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);" (assignment_expression "*pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40)" (pointer_expression "*pbVar22" * identifier) = (binary_expression "*pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40)" (pointer_expression "*pbVar22" * identifier) ^ (pointer_expression "*(byte *)((int)puVar7 + uVar6 + 0x40)" * (cast_expression "(byte *)((int)puVar7 + uVar6 + 0x40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + uVar6 + 0x40)" ( (binary_expression "(int)puVar7 + uVar6 + 0x40" (binary_expression "(int)puVar7 + uVar6" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))))) ;) (expression_statement "uVar6 = puVar7[0x20];" (assignment_expression "uVar6 = puVar7[0x20]" identifier = (subscript_expression "puVar7[0x20]" identifier [ number_literal ])) ;) (expression_statement "bVar1 = (int)uVar6 < 0x40;" (assignment_expression "bVar1 = (int)uVar6 < 0x40" identifier = (binary_expression "(int)uVar6 < 0x40" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "puVar24 = (uint *)((int)puVar24 + -1);" (assignment_expression "puVar24 = (uint *)((int)puVar24 + -1)" identifier = (cast_expression "(uint *)((int)puVar24 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar24 + -1)" ( (binary_expression "(int)puVar24 + -1" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (!bVar1) break;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar22 = pbVar9;" (assignment_expression "pbVar22 = pbVar9" identifier = identifier) ;) (if_statement "if (puVar24 == (uint *)0x0) {\n        return;\n      }" if (parenthesized_expression "(puVar24 == (uint *)0x0)" ( (binary_expression "puVar24 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) })) (if_statement "if (puVar24 == (uint *)0x0) {\n      return;\n    }" if (parenthesized_expression "(puVar24 == (uint *)0x0)" ( (binary_expression "puVar24 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "void chacha20_round(chacha20 *ctx)\n\n{\n  bool bVar1;\n  uint32 *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  chacha20 *pcVar5;\n  uint uVar6;\n  chacha20 *pcVar7;\n  uint uVar8;\n  uint32 uVar9;\n  uint uVar10;\n  chacha20 *ctx_00;\n  uint32 uVar11;\n  byte *pbVar12;\n  uint32 uVar13;\n  uint uVar14;\n  uint uVar15;\n  chacha20 *pcVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  byte *pbVar26;\n  uchar *puVar27;\n  uint uVar28;\n  uint uVar29;\n  uint uVar30;\n  uint32 copy [16];\n  uint32 local_1c;\n  \n  puVar4 = PTR___stack_chk_guard_00112630;\n  ctx_00 = (chacha20 *)copy;\n  local_1c = *(uint32 *)PTR___stack_chk_guard_00112630;\n  pcVar5 = ctx;\n  pcVar7 = ctx_00;\n  do {\n    puVar2 = pcVar5->state;\n    uVar13 = pcVar5->state[1];\n    uVar11 = pcVar5->state[2];\n    uVar9 = pcVar5->state[3];\n    pcVar5 = (chacha20 *)(pcVar5->state + 4);\n    pcVar7->state[0] = *puVar2;\n    pcVar7->state[1] = uVar13;\n    pcVar7->state[2] = uVar11;\n    pcVar7->state[3] = uVar9;\n    pcVar7 = (chacha20 *)(pcVar7->state + 4);\n  } while (pcVar5 != (chacha20 *)ctx->current);\n  iVar20 = 10;\n  uVar9 = copy[0];\n  do {\n    uVar14 = copy[4] + uVar9 ^ copy[0xc];\n    uVar10 = copy[1] + copy[5] ^ copy[0xd];\n    uVar8 = copy[6] + copy[2] ^ copy[0xe];\n    uVar6 = copy[7] + copy[3] ^ copy[0xf];\n    uVar15 = (uVar14 >> 0x10) + uVar14 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000;\n    uVar28 = uVar15 + copy[8];\n    uVar25 = uVar10 + copy[9];\n    uVar24 = uVar8 + copy[10];\n    uVar22 = uVar6 + copy[0xb];\n    uVar19 = uVar28 ^ copy[4];\n    uVar14 = uVar25 ^ copy[5];\n    uVar18 = uVar24 ^ copy[6];\n    uVar17 = uVar22 ^ copy[7];\n    uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000;\n    uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000;\n    uVar21 = copy[4] + uVar9 + uVar19;\n    uVar30 = copy[1] + copy[5] + uVar14;\n    uVar29 = copy[6] + copy[2] + uVar18;\n    uVar23 = copy[7] + copy[3] + uVar17;\n    uVar15 = uVar15 ^ uVar21;\n    uVar10 = uVar10 ^ uVar30;\n    uVar8 = uVar8 ^ uVar29;\n    uVar6 = uVar6 ^ uVar23;\n    uVar15 = (uVar15 >> 0x18) + uVar15 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar6 = (uVar6 >> 0x18) + uVar6 * 0x100;\n    uVar28 = uVar28 + uVar15;\n    uVar25 = uVar25 + uVar10;\n    uVar24 = uVar24 + uVar8;\n    uVar22 = uVar22 + uVar6;\n    uVar19 = uVar19 ^ uVar28;\n    uVar14 = uVar14 ^ uVar25;\n    uVar18 = uVar18 ^ uVar24;\n    uVar17 = uVar17 ^ uVar22;\n    uVar19 = (uVar19 >> 0x19) + uVar19 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar18 = (uVar18 >> 0x19) + uVar18 * 0x80;\n    uVar17 = (uVar17 >> 0x19) + uVar17 * 0x80;\n    uVar21 = uVar21 + uVar14;\n    uVar30 = uVar30 + uVar18;\n    uVar29 = uVar29 + uVar17;\n    uVar23 = uVar19 + uVar23;\n    uVar6 = uVar6 ^ uVar21;\n    uVar15 = uVar15 ^ uVar30;\n    uVar10 = uVar10 ^ uVar29;\n    uVar8 = uVar8 ^ uVar23;\n    uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000;\n    uVar15 = (uVar15 >> 0x10) + uVar15 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar24 = uVar24 + uVar6;\n    uVar22 = uVar22 + uVar15;\n    uVar28 = uVar28 + uVar10;\n    uVar25 = uVar25 + uVar8;\n    uVar14 = uVar14 ^ uVar24;\n    uVar18 = uVar18 ^ uVar22;\n    uVar17 = uVar17 ^ uVar28;\n    uVar19 = uVar19 ^ uVar25;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000;\n    uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000;\n    uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000;\n    uVar9 = uVar21 + uVar14;\n    copy[1] = uVar30 + uVar18;\n    copy[2] = uVar29 + uVar17;\n    copy[3] = uVar23 + uVar19;\n    uVar6 = uVar6 ^ uVar9;\n    uVar15 = uVar15 ^ copy[1];\n    uVar10 = uVar10 ^ copy[2];\n    uVar8 = uVar8 ^ copy[3];\n    copy[0xf] = (uVar6 >> 0x18) + uVar6 * 0x100;\n    copy[0xc] = (uVar15 >> 0x18) + uVar15 * 0x100;\n    copy[0xd] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    copy[0xe] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    copy[10] = uVar24 + copy[0xf];\n    copy[0xb] = uVar22 + copy[0xc];\n    copy[8] = uVar28 + copy[0xd];\n    copy[9] = uVar25 + copy[0xe];\n    iVar20 = iVar20 + -1;\n    uVar14 = uVar14 ^ copy[10];\n    uVar18 = uVar18 ^ copy[0xb];\n    uVar17 = uVar17 ^ copy[8];\n    uVar19 = uVar19 ^ copy[9];\n    copy[5] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    copy[6] = (uVar18 >> 0x19) + uVar18 * 0x80;\n    copy[7] = (uVar17 >> 0x19) + uVar17 * 0x80;\n    copy[4] = (uVar19 >> 0x19) + uVar19 * 0x80;\n  } while (iVar20 != 0);\n  copy[0] = uVar9;\n  pcVar5 = ctx_00;\n  pcVar7 = ctx;\n  while( true ) {\n    puVar2 = pcVar7->state;\n    pcVar16 = (chacha20 *)(pcVar5->state + 1);\n    pcVar7 = (chacha20 *)(pcVar7->state + 1);\n    pcVar5->state[0] = *puVar2 + uVar9;\n    pcVar5 = ctx_00;\n    puVar27 = ctx->current;\n    if ((chacha20 *)&local_1c == pcVar16) break;\n    uVar9 = pcVar16->state[0];\n    pcVar5 = pcVar16;\n  }\n  do {\n    uVar9 = pcVar5->state[0];\n    pcVar5 = (chacha20 *)(pcVar5->state + 1);\n    *puVar27 = (uchar)uVar9;\n    puVar27[1] = (uchar)(uVar9 >> 8);\n    puVar27[2] = (uchar)(uVar9 >> 0x10);\n    puVar27[3] = (uchar)(uVar9 >> 0x18);\n    puVar3 = PTR_smemclr_00111398;\n    puVar27 = puVar27 + 4;\n  } while ((chacha20 *)&local_1c != pcVar5);\n  pbVar12 = &DAT_00000040;\n  ctx->currentIndex = 0;\n  (*(code *)puVar3)();\n  uVar9 = ctx->state[0xc] + 1;\n  ctx->state[0xc] = uVar9;\n  if (uVar9 == 0) {\n    ctx->state[0xd] = ctx->state[0xd] + 1;\n  }\n  if (local_1c == *(uint32 *)puVar4) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  if (pcVar16 == (chacha20 *)0x0) {\n    return;\n  }\n  iVar20 = ctx_00->currentIndex;\n  bVar1 = iVar20 < 0x40;\nLAB_0006c064:\n  do {\n    pbVar26 = pbVar12;\n    if (!bVar1) {\n      chacha20_round(ctx_00);\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar12 = pbVar26 + 1;\n      ctx_00->currentIndex = iVar20 + 1;\n      *pbVar26 = *pbVar26 ^ ctx_00->current[iVar20];\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      pcVar16 = (chacha20 *)((int)&pcVar16[-1].currentIndex + 3);\n      if (!bVar1) break;\n      pbVar26 = pbVar12;\n      if (pcVar16 == (chacha20 *)0x0) {\n        return;\n      }\n    }\n    if (pcVar16 == (chacha20 *)0x0) {\n      return;\n    }\n  } while( true );\n}\n\n" (function_definition "void chacha20_round(chacha20 *ctx)\n\n{\n  bool bVar1;\n  uint32 *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  chacha20 *pcVar5;\n  uint uVar6;\n  chacha20 *pcVar7;\n  uint uVar8;\n  uint32 uVar9;\n  uint uVar10;\n  chacha20 *ctx_00;\n  uint32 uVar11;\n  byte *pbVar12;\n  uint32 uVar13;\n  uint uVar14;\n  uint uVar15;\n  chacha20 *pcVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  byte *pbVar26;\n  uchar *puVar27;\n  uint uVar28;\n  uint uVar29;\n  uint uVar30;\n  uint32 copy [16];\n  uint32 local_1c;\n  \n  puVar4 = PTR___stack_chk_guard_00112630;\n  ctx_00 = (chacha20 *)copy;\n  local_1c = *(uint32 *)PTR___stack_chk_guard_00112630;\n  pcVar5 = ctx;\n  pcVar7 = ctx_00;\n  do {\n    puVar2 = pcVar5->state;\n    uVar13 = pcVar5->state[1];\n    uVar11 = pcVar5->state[2];\n    uVar9 = pcVar5->state[3];\n    pcVar5 = (chacha20 *)(pcVar5->state + 4);\n    pcVar7->state[0] = *puVar2;\n    pcVar7->state[1] = uVar13;\n    pcVar7->state[2] = uVar11;\n    pcVar7->state[3] = uVar9;\n    pcVar7 = (chacha20 *)(pcVar7->state + 4);\n  } while (pcVar5 != (chacha20 *)ctx->current);\n  iVar20 = 10;\n  uVar9 = copy[0];\n  do {\n    uVar14 = copy[4] + uVar9 ^ copy[0xc];\n    uVar10 = copy[1] + copy[5] ^ copy[0xd];\n    uVar8 = copy[6] + copy[2] ^ copy[0xe];\n    uVar6 = copy[7] + copy[3] ^ copy[0xf];\n    uVar15 = (uVar14 >> 0x10) + uVar14 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000;\n    uVar28 = uVar15 + copy[8];\n    uVar25 = uVar10 + copy[9];\n    uVar24 = uVar8 + copy[10];\n    uVar22 = uVar6 + copy[0xb];\n    uVar19 = uVar28 ^ copy[4];\n    uVar14 = uVar25 ^ copy[5];\n    uVar18 = uVar24 ^ copy[6];\n    uVar17 = uVar22 ^ copy[7];\n    uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000;\n    uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000;\n    uVar21 = copy[4] + uVar9 + uVar19;\n    uVar30 = copy[1] + copy[5] + uVar14;\n    uVar29 = copy[6] + copy[2] + uVar18;\n    uVar23 = copy[7] + copy[3] + uVar17;\n    uVar15 = uVar15 ^ uVar21;\n    uVar10 = uVar10 ^ uVar30;\n    uVar8 = uVar8 ^ uVar29;\n    uVar6 = uVar6 ^ uVar23;\n    uVar15 = (uVar15 >> 0x18) + uVar15 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar6 = (uVar6 >> 0x18) + uVar6 * 0x100;\n    uVar28 = uVar28 + uVar15;\n    uVar25 = uVar25 + uVar10;\n    uVar24 = uVar24 + uVar8;\n    uVar22 = uVar22 + uVar6;\n    uVar19 = uVar19 ^ uVar28;\n    uVar14 = uVar14 ^ uVar25;\n    uVar18 = uVar18 ^ uVar24;\n    uVar17 = uVar17 ^ uVar22;\n    uVar19 = (uVar19 >> 0x19) + uVar19 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar18 = (uVar18 >> 0x19) + uVar18 * 0x80;\n    uVar17 = (uVar17 >> 0x19) + uVar17 * 0x80;\n    uVar21 = uVar21 + uVar14;\n    uVar30 = uVar30 + uVar18;\n    uVar29 = uVar29 + uVar17;\n    uVar23 = uVar19 + uVar23;\n    uVar6 = uVar6 ^ uVar21;\n    uVar15 = uVar15 ^ uVar30;\n    uVar10 = uVar10 ^ uVar29;\n    uVar8 = uVar8 ^ uVar23;\n    uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000;\n    uVar15 = (uVar15 >> 0x10) + uVar15 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar24 = uVar24 + uVar6;\n    uVar22 = uVar22 + uVar15;\n    uVar28 = uVar28 + uVar10;\n    uVar25 = uVar25 + uVar8;\n    uVar14 = uVar14 ^ uVar24;\n    uVar18 = uVar18 ^ uVar22;\n    uVar17 = uVar17 ^ uVar28;\n    uVar19 = uVar19 ^ uVar25;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000;\n    uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000;\n    uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000;\n    uVar9 = uVar21 + uVar14;\n    copy[1] = uVar30 + uVar18;\n    copy[2] = uVar29 + uVar17;\n    copy[3] = uVar23 + uVar19;\n    uVar6 = uVar6 ^ uVar9;\n    uVar15 = uVar15 ^ copy[1];\n    uVar10 = uVar10 ^ copy[2];\n    uVar8 = uVar8 ^ copy[3];\n    copy[0xf] = (uVar6 >> 0x18) + uVar6 * 0x100;\n    copy[0xc] = (uVar15 >> 0x18) + uVar15 * 0x100;\n    copy[0xd] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    copy[0xe] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    copy[10] = uVar24 + copy[0xf];\n    copy[0xb] = uVar22 + copy[0xc];\n    copy[8] = uVar28 + copy[0xd];\n    copy[9] = uVar25 + copy[0xe];\n    iVar20 = iVar20 + -1;\n    uVar14 = uVar14 ^ copy[10];\n    uVar18 = uVar18 ^ copy[0xb];\n    uVar17 = uVar17 ^ copy[8];\n    uVar19 = uVar19 ^ copy[9];\n    copy[5] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    copy[6] = (uVar18 >> 0x19) + uVar18 * 0x80;\n    copy[7] = (uVar17 >> 0x19) + uVar17 * 0x80;\n    copy[4] = (uVar19 >> 0x19) + uVar19 * 0x80;\n  } while (iVar20 != 0);\n  copy[0] = uVar9;\n  pcVar5 = ctx_00;\n  pcVar7 = ctx;\n  while( true ) {\n    puVar2 = pcVar7->state;\n    pcVar16 = (chacha20 *)(pcVar5->state + 1);\n    pcVar7 = (chacha20 *)(pcVar7->state + 1);\n    pcVar5->state[0] = *puVar2 + uVar9;\n    pcVar5 = ctx_00;\n    puVar27 = ctx->current;\n    if ((chacha20 *)&local_1c == pcVar16) break;\n    uVar9 = pcVar16->state[0];\n    pcVar5 = pcVar16;\n  }\n  do {\n    uVar9 = pcVar5->state[0];\n    pcVar5 = (chacha20 *)(pcVar5->state + 1);\n    *puVar27 = (uchar)uVar9;\n    puVar27[1] = (uchar)(uVar9 >> 8);\n    puVar27[2] = (uchar)(uVar9 >> 0x10);\n    puVar27[3] = (uchar)(uVar9 >> 0x18);\n    puVar3 = PTR_smemclr_00111398;\n    puVar27 = puVar27 + 4;\n  } while ((chacha20 *)&local_1c != pcVar5);\n  pbVar12 = &DAT_00000040;\n  ctx->currentIndex = 0;\n  (*(code *)puVar3)();\n  uVar9 = ctx->state[0xc] + 1;\n  ctx->state[0xc] = uVar9;\n  if (uVar9 == 0) {\n    ctx->state[0xd] = ctx->state[0xd] + 1;\n  }\n  if (local_1c == *(uint32 *)puVar4) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  if (pcVar16 == (chacha20 *)0x0) {\n    return;\n  }\n  iVar20 = ctx_00->currentIndex;\n  bVar1 = iVar20 < 0x40;\nLAB_0006c064:\n  do {\n    pbVar26 = pbVar12;\n    if (!bVar1) {\n      chacha20_round(ctx_00);\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar12 = pbVar26 + 1;\n      ctx_00->currentIndex = iVar20 + 1;\n      *pbVar26 = *pbVar26 ^ ctx_00->current[iVar20];\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      pcVar16 = (chacha20 *)((int)&pcVar16[-1].currentIndex + 3);\n      if (!bVar1) break;\n      pbVar26 = pbVar12;\n      if (pcVar16 == (chacha20 *)0x0) {\n        return;\n      }\n    }\n    if (pcVar16 == (chacha20 *)0x0) {\n      return;\n    }\n  } while( true );\n}" primitive_type (function_declarator "chacha20_round(chacha20 *ctx)" identifier (parameter_list "(chacha20 *ctx)" ( (parameter_declaration "chacha20 *ctx" type_identifier (pointer_declarator "*ctx" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  uint32 *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  chacha20 *pcVar5;\n  uint uVar6;\n  chacha20 *pcVar7;\n  uint uVar8;\n  uint32 uVar9;\n  uint uVar10;\n  chacha20 *ctx_00;\n  uint32 uVar11;\n  byte *pbVar12;\n  uint32 uVar13;\n  uint uVar14;\n  uint uVar15;\n  chacha20 *pcVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  byte *pbVar26;\n  uchar *puVar27;\n  uint uVar28;\n  uint uVar29;\n  uint uVar30;\n  uint32 copy [16];\n  uint32 local_1c;\n  \n  puVar4 = PTR___stack_chk_guard_00112630;\n  ctx_00 = (chacha20 *)copy;\n  local_1c = *(uint32 *)PTR___stack_chk_guard_00112630;\n  pcVar5 = ctx;\n  pcVar7 = ctx_00;\n  do {\n    puVar2 = pcVar5->state;\n    uVar13 = pcVar5->state[1];\n    uVar11 = pcVar5->state[2];\n    uVar9 = pcVar5->state[3];\n    pcVar5 = (chacha20 *)(pcVar5->state + 4);\n    pcVar7->state[0] = *puVar2;\n    pcVar7->state[1] = uVar13;\n    pcVar7->state[2] = uVar11;\n    pcVar7->state[3] = uVar9;\n    pcVar7 = (chacha20 *)(pcVar7->state + 4);\n  } while (pcVar5 != (chacha20 *)ctx->current);\n  iVar20 = 10;\n  uVar9 = copy[0];\n  do {\n    uVar14 = copy[4] + uVar9 ^ copy[0xc];\n    uVar10 = copy[1] + copy[5] ^ copy[0xd];\n    uVar8 = copy[6] + copy[2] ^ copy[0xe];\n    uVar6 = copy[7] + copy[3] ^ copy[0xf];\n    uVar15 = (uVar14 >> 0x10) + uVar14 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000;\n    uVar28 = uVar15 + copy[8];\n    uVar25 = uVar10 + copy[9];\n    uVar24 = uVar8 + copy[10];\n    uVar22 = uVar6 + copy[0xb];\n    uVar19 = uVar28 ^ copy[4];\n    uVar14 = uVar25 ^ copy[5];\n    uVar18 = uVar24 ^ copy[6];\n    uVar17 = uVar22 ^ copy[7];\n    uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000;\n    uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000;\n    uVar21 = copy[4] + uVar9 + uVar19;\n    uVar30 = copy[1] + copy[5] + uVar14;\n    uVar29 = copy[6] + copy[2] + uVar18;\n    uVar23 = copy[7] + copy[3] + uVar17;\n    uVar15 = uVar15 ^ uVar21;\n    uVar10 = uVar10 ^ uVar30;\n    uVar8 = uVar8 ^ uVar29;\n    uVar6 = uVar6 ^ uVar23;\n    uVar15 = (uVar15 >> 0x18) + uVar15 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar6 = (uVar6 >> 0x18) + uVar6 * 0x100;\n    uVar28 = uVar28 + uVar15;\n    uVar25 = uVar25 + uVar10;\n    uVar24 = uVar24 + uVar8;\n    uVar22 = uVar22 + uVar6;\n    uVar19 = uVar19 ^ uVar28;\n    uVar14 = uVar14 ^ uVar25;\n    uVar18 = uVar18 ^ uVar24;\n    uVar17 = uVar17 ^ uVar22;\n    uVar19 = (uVar19 >> 0x19) + uVar19 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar18 = (uVar18 >> 0x19) + uVar18 * 0x80;\n    uVar17 = (uVar17 >> 0x19) + uVar17 * 0x80;\n    uVar21 = uVar21 + uVar14;\n    uVar30 = uVar30 + uVar18;\n    uVar29 = uVar29 + uVar17;\n    uVar23 = uVar19 + uVar23;\n    uVar6 = uVar6 ^ uVar21;\n    uVar15 = uVar15 ^ uVar30;\n    uVar10 = uVar10 ^ uVar29;\n    uVar8 = uVar8 ^ uVar23;\n    uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000;\n    uVar15 = (uVar15 >> 0x10) + uVar15 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar24 = uVar24 + uVar6;\n    uVar22 = uVar22 + uVar15;\n    uVar28 = uVar28 + uVar10;\n    uVar25 = uVar25 + uVar8;\n    uVar14 = uVar14 ^ uVar24;\n    uVar18 = uVar18 ^ uVar22;\n    uVar17 = uVar17 ^ uVar28;\n    uVar19 = uVar19 ^ uVar25;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000;\n    uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000;\n    uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000;\n    uVar9 = uVar21 + uVar14;\n    copy[1] = uVar30 + uVar18;\n    copy[2] = uVar29 + uVar17;\n    copy[3] = uVar23 + uVar19;\n    uVar6 = uVar6 ^ uVar9;\n    uVar15 = uVar15 ^ copy[1];\n    uVar10 = uVar10 ^ copy[2];\n    uVar8 = uVar8 ^ copy[3];\n    copy[0xf] = (uVar6 >> 0x18) + uVar6 * 0x100;\n    copy[0xc] = (uVar15 >> 0x18) + uVar15 * 0x100;\n    copy[0xd] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    copy[0xe] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    copy[10] = uVar24 + copy[0xf];\n    copy[0xb] = uVar22 + copy[0xc];\n    copy[8] = uVar28 + copy[0xd];\n    copy[9] = uVar25 + copy[0xe];\n    iVar20 = iVar20 + -1;\n    uVar14 = uVar14 ^ copy[10];\n    uVar18 = uVar18 ^ copy[0xb];\n    uVar17 = uVar17 ^ copy[8];\n    uVar19 = uVar19 ^ copy[9];\n    copy[5] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    copy[6] = (uVar18 >> 0x19) + uVar18 * 0x80;\n    copy[7] = (uVar17 >> 0x19) + uVar17 * 0x80;\n    copy[4] = (uVar19 >> 0x19) + uVar19 * 0x80;\n  } while (iVar20 != 0);\n  copy[0] = uVar9;\n  pcVar5 = ctx_00;\n  pcVar7 = ctx;\n  while( true ) {\n    puVar2 = pcVar7->state;\n    pcVar16 = (chacha20 *)(pcVar5->state + 1);\n    pcVar7 = (chacha20 *)(pcVar7->state + 1);\n    pcVar5->state[0] = *puVar2 + uVar9;\n    pcVar5 = ctx_00;\n    puVar27 = ctx->current;\n    if ((chacha20 *)&local_1c == pcVar16) break;\n    uVar9 = pcVar16->state[0];\n    pcVar5 = pcVar16;\n  }\n  do {\n    uVar9 = pcVar5->state[0];\n    pcVar5 = (chacha20 *)(pcVar5->state + 1);\n    *puVar27 = (uchar)uVar9;\n    puVar27[1] = (uchar)(uVar9 >> 8);\n    puVar27[2] = (uchar)(uVar9 >> 0x10);\n    puVar27[3] = (uchar)(uVar9 >> 0x18);\n    puVar3 = PTR_smemclr_00111398;\n    puVar27 = puVar27 + 4;\n  } while ((chacha20 *)&local_1c != pcVar5);\n  pbVar12 = &DAT_00000040;\n  ctx->currentIndex = 0;\n  (*(code *)puVar3)();\n  uVar9 = ctx->state[0xc] + 1;\n  ctx->state[0xc] = uVar9;\n  if (uVar9 == 0) {\n    ctx->state[0xd] = ctx->state[0xd] + 1;\n  }\n  if (local_1c == *(uint32 *)puVar4) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  if (pcVar16 == (chacha20 *)0x0) {\n    return;\n  }\n  iVar20 = ctx_00->currentIndex;\n  bVar1 = iVar20 < 0x40;\nLAB_0006c064:\n  do {\n    pbVar26 = pbVar12;\n    if (!bVar1) {\n      chacha20_round(ctx_00);\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar12 = pbVar26 + 1;\n      ctx_00->currentIndex = iVar20 + 1;\n      *pbVar26 = *pbVar26 ^ ctx_00->current[iVar20];\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      pcVar16 = (chacha20 *)((int)&pcVar16[-1].currentIndex + 3);\n      if (!bVar1) break;\n      pbVar26 = pbVar12;\n      if (pcVar16 == (chacha20 *)0x0) {\n        return;\n      }\n    }\n    if (pcVar16 == (chacha20 *)0x0) {\n      return;\n    }\n  } while( true );\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "uint32 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "chacha20 *pcVar5;" type_identifier (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "chacha20 *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint32 uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "chacha20 *ctx_00;" type_identifier (pointer_declarator "*ctx_00" * identifier) ;) (declaration "uint32 uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "uint32 uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "chacha20 *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type 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 "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "uchar *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "uint32 copy [16];" type_identifier (array_declarator "copy [16]" identifier [ number_literal ]) ;) (declaration "uint32 local_1c;" type_identifier identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_00112630;" (assignment_expression "puVar4 = PTR___stack_chk_guard_00112630" identifier = identifier) ;) (expression_statement "ctx_00 = (chacha20 *)copy;" (assignment_expression "ctx_00 = (chacha20 *)copy" identifier = (cast_expression "(chacha20 *)copy" ( (type_descriptor "chacha20 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_1c = *(uint32 *)PTR___stack_chk_guard_00112630;" (assignment_expression "local_1c = *(uint32 *)PTR___stack_chk_guard_00112630" identifier = (pointer_expression "*(uint32 *)PTR___stack_chk_guard_00112630" * (cast_expression "(uint32 *)PTR___stack_chk_guard_00112630" ( (type_descriptor "uint32 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar5 = ctx;" (assignment_expression "pcVar5 = ctx" identifier = identifier) ;) (expression_statement "pcVar7 = ctx_00;" (assignment_expression "pcVar7 = ctx_00" identifier = identifier) ;) (do_statement "do {\n    puVar2 = pcVar5->state;\n    uVar13 = pcVar5->state[1];\n    uVar11 = pcVar5->state[2];\n    uVar9 = pcVar5->state[3];\n    pcVar5 = (chacha20 *)(pcVar5->state + 4);\n    pcVar7->state[0] = *puVar2;\n    pcVar7->state[1] = uVar13;\n    pcVar7->state[2] = uVar11;\n    pcVar7->state[3] = uVar9;\n    pcVar7 = (chacha20 *)(pcVar7->state + 4);\n  } while (pcVar5 != (chacha20 *)ctx->current);" do (compound_statement "{\n    puVar2 = pcVar5->state;\n    uVar13 = pcVar5->state[1];\n    uVar11 = pcVar5->state[2];\n    uVar9 = pcVar5->state[3];\n    pcVar5 = (chacha20 *)(pcVar5->state + 4);\n    pcVar7->state[0] = *puVar2;\n    pcVar7->state[1] = uVar13;\n    pcVar7->state[2] = uVar11;\n    pcVar7->state[3] = uVar9;\n    pcVar7 = (chacha20 *)(pcVar7->state + 4);\n  }" { (expression_statement "puVar2 = pcVar5->state;" (assignment_expression "puVar2 = pcVar5->state" identifier = (field_expression "pcVar5->state" identifier -> field_identifier)) ;) (expression_statement "uVar13 = pcVar5->state[1];" (assignment_expression "uVar13 = pcVar5->state[1]" identifier = (subscript_expression "pcVar5->state[1]" (field_expression "pcVar5->state" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar11 = pcVar5->state[2];" (assignment_expression "uVar11 = pcVar5->state[2]" identifier = (subscript_expression "pcVar5->state[2]" (field_expression "pcVar5->state" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar9 = pcVar5->state[3];" (assignment_expression "uVar9 = pcVar5->state[3]" identifier = (subscript_expression "pcVar5->state[3]" (field_expression "pcVar5->state" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pcVar5 = (chacha20 *)(pcVar5->state + 4);" (assignment_expression "pcVar5 = (chacha20 *)(pcVar5->state + 4)" identifier = (cast_expression "(chacha20 *)(pcVar5->state + 4)" ( (type_descriptor "chacha20 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5->state + 4)" ( (binary_expression "pcVar5->state + 4" (field_expression "pcVar5->state" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "pcVar7->state[0] = *puVar2;" (assignment_expression "pcVar7->state[0] = *puVar2" (subscript_expression "pcVar7->state[0]" (field_expression "pcVar7->state" identifier -> field_identifier) [ number_literal ]) = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "pcVar7->state[1] = uVar13;" (assignment_expression "pcVar7->state[1] = uVar13" (subscript_expression "pcVar7->state[1]" (field_expression "pcVar7->state" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pcVar7->state[2] = uVar11;" (assignment_expression "pcVar7->state[2] = uVar11" (subscript_expression "pcVar7->state[2]" (field_expression "pcVar7->state" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pcVar7->state[3] = uVar9;" (assignment_expression "pcVar7->state[3] = uVar9" (subscript_expression "pcVar7->state[3]" (field_expression "pcVar7->state" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pcVar7 = (chacha20 *)(pcVar7->state + 4);" (assignment_expression "pcVar7 = (chacha20 *)(pcVar7->state + 4)" identifier = (cast_expression "(chacha20 *)(pcVar7->state + 4)" ( (type_descriptor "chacha20 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7->state + 4)" ( (binary_expression "pcVar7->state + 4" (field_expression "pcVar7->state" identifier -> field_identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(pcVar5 != (chacha20 *)ctx->current)" ( (binary_expression "pcVar5 != (chacha20 *)ctx->current" identifier != (cast_expression "(chacha20 *)ctx->current" ( (type_descriptor "chacha20 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "ctx->current" identifier -> field_identifier))) )) ;) (expression_statement "iVar20 = 10;" (assignment_expression "iVar20 = 10" identifier = number_literal) ;) (expression_statement "uVar9 = copy[0];" (assignment_expression "uVar9 = copy[0]" identifier = (subscript_expression "copy[0]" identifier [ number_literal ])) ;) (do_statement "do {\n    uVar14 = copy[4] + uVar9 ^ copy[0xc];\n    uVar10 = copy[1] + copy[5] ^ copy[0xd];\n    uVar8 = copy[6] + copy[2] ^ copy[0xe];\n    uVar6 = copy[7] + copy[3] ^ copy[0xf];\n    uVar15 = (uVar14 >> 0x10) + uVar14 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000;\n    uVar28 = uVar15 + copy[8];\n    uVar25 = uVar10 + copy[9];\n    uVar24 = uVar8 + copy[10];\n    uVar22 = uVar6 + copy[0xb];\n    uVar19 = uVar28 ^ copy[4];\n    uVar14 = uVar25 ^ copy[5];\n    uVar18 = uVar24 ^ copy[6];\n    uVar17 = uVar22 ^ copy[7];\n    uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000;\n    uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000;\n    uVar21 = copy[4] + uVar9 + uVar19;\n    uVar30 = copy[1] + copy[5] + uVar14;\n    uVar29 = copy[6] + copy[2] + uVar18;\n    uVar23 = copy[7] + copy[3] + uVar17;\n    uVar15 = uVar15 ^ uVar21;\n    uVar10 = uVar10 ^ uVar30;\n    uVar8 = uVar8 ^ uVar29;\n    uVar6 = uVar6 ^ uVar23;\n    uVar15 = (uVar15 >> 0x18) + uVar15 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar6 = (uVar6 >> 0x18) + uVar6 * 0x100;\n    uVar28 = uVar28 + uVar15;\n    uVar25 = uVar25 + uVar10;\n    uVar24 = uVar24 + uVar8;\n    uVar22 = uVar22 + uVar6;\n    uVar19 = uVar19 ^ uVar28;\n    uVar14 = uVar14 ^ uVar25;\n    uVar18 = uVar18 ^ uVar24;\n    uVar17 = uVar17 ^ uVar22;\n    uVar19 = (uVar19 >> 0x19) + uVar19 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar18 = (uVar18 >> 0x19) + uVar18 * 0x80;\n    uVar17 = (uVar17 >> 0x19) + uVar17 * 0x80;\n    uVar21 = uVar21 + uVar14;\n    uVar30 = uVar30 + uVar18;\n    uVar29 = uVar29 + uVar17;\n    uVar23 = uVar19 + uVar23;\n    uVar6 = uVar6 ^ uVar21;\n    uVar15 = uVar15 ^ uVar30;\n    uVar10 = uVar10 ^ uVar29;\n    uVar8 = uVar8 ^ uVar23;\n    uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000;\n    uVar15 = (uVar15 >> 0x10) + uVar15 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar24 = uVar24 + uVar6;\n    uVar22 = uVar22 + uVar15;\n    uVar28 = uVar28 + uVar10;\n    uVar25 = uVar25 + uVar8;\n    uVar14 = uVar14 ^ uVar24;\n    uVar18 = uVar18 ^ uVar22;\n    uVar17 = uVar17 ^ uVar28;\n    uVar19 = uVar19 ^ uVar25;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000;\n    uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000;\n    uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000;\n    uVar9 = uVar21 + uVar14;\n    copy[1] = uVar30 + uVar18;\n    copy[2] = uVar29 + uVar17;\n    copy[3] = uVar23 + uVar19;\n    uVar6 = uVar6 ^ uVar9;\n    uVar15 = uVar15 ^ copy[1];\n    uVar10 = uVar10 ^ copy[2];\n    uVar8 = uVar8 ^ copy[3];\n    copy[0xf] = (uVar6 >> 0x18) + uVar6 * 0x100;\n    copy[0xc] = (uVar15 >> 0x18) + uVar15 * 0x100;\n    copy[0xd] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    copy[0xe] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    copy[10] = uVar24 + copy[0xf];\n    copy[0xb] = uVar22 + copy[0xc];\n    copy[8] = uVar28 + copy[0xd];\n    copy[9] = uVar25 + copy[0xe];\n    iVar20 = iVar20 + -1;\n    uVar14 = uVar14 ^ copy[10];\n    uVar18 = uVar18 ^ copy[0xb];\n    uVar17 = uVar17 ^ copy[8];\n    uVar19 = uVar19 ^ copy[9];\n    copy[5] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    copy[6] = (uVar18 >> 0x19) + uVar18 * 0x80;\n    copy[7] = (uVar17 >> 0x19) + uVar17 * 0x80;\n    copy[4] = (uVar19 >> 0x19) + uVar19 * 0x80;\n  } while (iVar20 != 0);" do (compound_statement "{\n    uVar14 = copy[4] + uVar9 ^ copy[0xc];\n    uVar10 = copy[1] + copy[5] ^ copy[0xd];\n    uVar8 = copy[6] + copy[2] ^ copy[0xe];\n    uVar6 = copy[7] + copy[3] ^ copy[0xf];\n    uVar15 = (uVar14 >> 0x10) + uVar14 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000;\n    uVar28 = uVar15 + copy[8];\n    uVar25 = uVar10 + copy[9];\n    uVar24 = uVar8 + copy[10];\n    uVar22 = uVar6 + copy[0xb];\n    uVar19 = uVar28 ^ copy[4];\n    uVar14 = uVar25 ^ copy[5];\n    uVar18 = uVar24 ^ copy[6];\n    uVar17 = uVar22 ^ copy[7];\n    uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000;\n    uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000;\n    uVar21 = copy[4] + uVar9 + uVar19;\n    uVar30 = copy[1] + copy[5] + uVar14;\n    uVar29 = copy[6] + copy[2] + uVar18;\n    uVar23 = copy[7] + copy[3] + uVar17;\n    uVar15 = uVar15 ^ uVar21;\n    uVar10 = uVar10 ^ uVar30;\n    uVar8 = uVar8 ^ uVar29;\n    uVar6 = uVar6 ^ uVar23;\n    uVar15 = (uVar15 >> 0x18) + uVar15 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar6 = (uVar6 >> 0x18) + uVar6 * 0x100;\n    uVar28 = uVar28 + uVar15;\n    uVar25 = uVar25 + uVar10;\n    uVar24 = uVar24 + uVar8;\n    uVar22 = uVar22 + uVar6;\n    uVar19 = uVar19 ^ uVar28;\n    uVar14 = uVar14 ^ uVar25;\n    uVar18 = uVar18 ^ uVar24;\n    uVar17 = uVar17 ^ uVar22;\n    uVar19 = (uVar19 >> 0x19) + uVar19 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar18 = (uVar18 >> 0x19) + uVar18 * 0x80;\n    uVar17 = (uVar17 >> 0x19) + uVar17 * 0x80;\n    uVar21 = uVar21 + uVar14;\n    uVar30 = uVar30 + uVar18;\n    uVar29 = uVar29 + uVar17;\n    uVar23 = uVar19 + uVar23;\n    uVar6 = uVar6 ^ uVar21;\n    uVar15 = uVar15 ^ uVar30;\n    uVar10 = uVar10 ^ uVar29;\n    uVar8 = uVar8 ^ uVar23;\n    uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000;\n    uVar15 = (uVar15 >> 0x10) + uVar15 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar24 = uVar24 + uVar6;\n    uVar22 = uVar22 + uVar15;\n    uVar28 = uVar28 + uVar10;\n    uVar25 = uVar25 + uVar8;\n    uVar14 = uVar14 ^ uVar24;\n    uVar18 = uVar18 ^ uVar22;\n    uVar17 = uVar17 ^ uVar28;\n    uVar19 = uVar19 ^ uVar25;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000;\n    uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000;\n    uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000;\n    uVar9 = uVar21 + uVar14;\n    copy[1] = uVar30 + uVar18;\n    copy[2] = uVar29 + uVar17;\n    copy[3] = uVar23 + uVar19;\n    uVar6 = uVar6 ^ uVar9;\n    uVar15 = uVar15 ^ copy[1];\n    uVar10 = uVar10 ^ copy[2];\n    uVar8 = uVar8 ^ copy[3];\n    copy[0xf] = (uVar6 >> 0x18) + uVar6 * 0x100;\n    copy[0xc] = (uVar15 >> 0x18) + uVar15 * 0x100;\n    copy[0xd] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    copy[0xe] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    copy[10] = uVar24 + copy[0xf];\n    copy[0xb] = uVar22 + copy[0xc];\n    copy[8] = uVar28 + copy[0xd];\n    copy[9] = uVar25 + copy[0xe];\n    iVar20 = iVar20 + -1;\n    uVar14 = uVar14 ^ copy[10];\n    uVar18 = uVar18 ^ copy[0xb];\n    uVar17 = uVar17 ^ copy[8];\n    uVar19 = uVar19 ^ copy[9];\n    copy[5] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    copy[6] = (uVar18 >> 0x19) + uVar18 * 0x80;\n    copy[7] = (uVar17 >> 0x19) + uVar17 * 0x80;\n    copy[4] = (uVar19 >> 0x19) + uVar19 * 0x80;\n  }" { (expression_statement "uVar14 = copy[4] + uVar9 ^ copy[0xc];" (assignment_expression "uVar14 = copy[4] + uVar9 ^ copy[0xc]" identifier = (binary_expression "copy[4] + uVar9 ^ copy[0xc]" (binary_expression "copy[4] + uVar9" (subscript_expression "copy[4]" identifier [ number_literal ]) + identifier) ^ (subscript_expression "copy[0xc]" identifier [ number_literal ]))) ;) (expression_statement "uVar10 = copy[1] + copy[5] ^ copy[0xd];" (assignment_expression "uVar10 = copy[1] + copy[5] ^ copy[0xd]" identifier = (binary_expression "copy[1] + copy[5] ^ copy[0xd]" (binary_expression "copy[1] + copy[5]" (subscript_expression "copy[1]" identifier [ number_literal ]) + (subscript_expression "copy[5]" identifier [ number_literal ])) ^ (subscript_expression "copy[0xd]" identifier [ number_literal ]))) ;) (expression_statement "uVar8 = copy[6] + copy[2] ^ copy[0xe];" (assignment_expression "uVar8 = copy[6] + copy[2] ^ copy[0xe]" identifier = (binary_expression "copy[6] + copy[2] ^ copy[0xe]" (binary_expression "copy[6] + copy[2]" (subscript_expression "copy[6]" identifier [ number_literal ]) + (subscript_expression "copy[2]" identifier [ number_literal ])) ^ (subscript_expression "copy[0xe]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = copy[7] + copy[3] ^ copy[0xf];" (assignment_expression "uVar6 = copy[7] + copy[3] ^ copy[0xf]" identifier = (binary_expression "copy[7] + copy[3] ^ copy[0xf]" (binary_expression "copy[7] + copy[3]" (subscript_expression "copy[7]" identifier [ number_literal ]) + (subscript_expression "copy[3]" identifier [ number_literal ])) ^ (subscript_expression "copy[0xf]" identifier [ number_literal ]))) ;) (expression_statement "uVar15 = (uVar14 >> 0x10) + uVar14 * 0x10000;" (assignment_expression "uVar15 = (uVar14 >> 0x10) + uVar14 * 0x10000" identifier = (binary_expression "(uVar14 >> 0x10) + uVar14 * 0x10000" (parenthesized_expression "(uVar14 >> 0x10)" ( (binary_expression "uVar14 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar14 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;" (assignment_expression "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000" identifier = (binary_expression "(uVar10 >> 0x10) + uVar10 * 0x10000" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar10 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;" (assignment_expression "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000" identifier = (binary_expression "(uVar8 >> 0x10) + uVar8 * 0x10000" (parenthesized_expression "(uVar8 >> 0x10)" ( (binary_expression "uVar8 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar8 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000;" (assignment_expression "uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000" identifier = (binary_expression "(uVar6 >> 0x10) + uVar6 * 0x10000" (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar6 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar28 = uVar15 + copy[8];" (assignment_expression "uVar28 = uVar15 + copy[8]" identifier = (binary_expression "uVar15 + copy[8]" identifier + (subscript_expression "copy[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar25 = uVar10 + copy[9];" (assignment_expression "uVar25 = uVar10 + copy[9]" identifier = (binary_expression "uVar10 + copy[9]" identifier + (subscript_expression "copy[9]" identifier [ number_literal ]))) ;) (expression_statement "uVar24 = uVar8 + copy[10];" (assignment_expression "uVar24 = uVar8 + copy[10]" identifier = (binary_expression "uVar8 + copy[10]" identifier + (subscript_expression "copy[10]" identifier [ number_literal ]))) ;) (expression_statement "uVar22 = uVar6 + copy[0xb];" (assignment_expression "uVar22 = uVar6 + copy[0xb]" identifier = (binary_expression "uVar6 + copy[0xb]" identifier + (subscript_expression "copy[0xb]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = uVar28 ^ copy[4];" (assignment_expression "uVar19 = uVar28 ^ copy[4]" identifier = (binary_expression "uVar28 ^ copy[4]" identifier ^ (subscript_expression "copy[4]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = uVar25 ^ copy[5];" (assignment_expression "uVar14 = uVar25 ^ copy[5]" identifier = (binary_expression "uVar25 ^ copy[5]" identifier ^ (subscript_expression "copy[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar18 = uVar24 ^ copy[6];" (assignment_expression "uVar18 = uVar24 ^ copy[6]" identifier = (binary_expression "uVar24 ^ copy[6]" identifier ^ (subscript_expression "copy[6]" identifier [ number_literal ]))) ;) (expression_statement "uVar17 = uVar22 ^ copy[7];" (assignment_expression "uVar17 = uVar22 ^ copy[7]" identifier = (binary_expression "uVar22 ^ copy[7]" identifier ^ (subscript_expression "copy[7]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000;" (assignment_expression "uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000" identifier = (binary_expression "(uVar19 >> 0x14) + uVar19 * 0x1000" (parenthesized_expression "(uVar19 >> 0x14)" ( (binary_expression "uVar19 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar19 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;" (assignment_expression "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000" identifier = (binary_expression "(uVar14 >> 0x14) + uVar14 * 0x1000" (parenthesized_expression "(uVar14 >> 0x14)" ( (binary_expression "uVar14 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar14 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000;" (assignment_expression "uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000" identifier = (binary_expression "(uVar18 >> 0x14) + uVar18 * 0x1000" (parenthesized_expression "(uVar18 >> 0x14)" ( (binary_expression "uVar18 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar18 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000;" (assignment_expression "uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000" identifier = (binary_expression "(uVar17 >> 0x14) + uVar17 * 0x1000" (parenthesized_expression "(uVar17 >> 0x14)" ( (binary_expression "uVar17 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar17 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar21 = copy[4] + uVar9 + uVar19;" (assignment_expression "uVar21 = copy[4] + uVar9 + uVar19" identifier = (binary_expression "copy[4] + uVar9 + uVar19" (binary_expression "copy[4] + uVar9" (subscript_expression "copy[4]" identifier [ number_literal ]) + identifier) + identifier)) ;) (expression_statement "uVar30 = copy[1] + copy[5] + uVar14;" (assignment_expression "uVar30 = copy[1] + copy[5] + uVar14" identifier = (binary_expression "copy[1] + copy[5] + uVar14" (binary_expression "copy[1] + copy[5]" (subscript_expression "copy[1]" identifier [ number_literal ]) + (subscript_expression "copy[5]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar29 = copy[6] + copy[2] + uVar18;" (assignment_expression "uVar29 = copy[6] + copy[2] + uVar18" identifier = (binary_expression "copy[6] + copy[2] + uVar18" (binary_expression "copy[6] + copy[2]" (subscript_expression "copy[6]" identifier [ number_literal ]) + (subscript_expression "copy[2]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar23 = copy[7] + copy[3] + uVar17;" (assignment_expression "uVar23 = copy[7] + copy[3] + uVar17" identifier = (binary_expression "copy[7] + copy[3] + uVar17" (binary_expression "copy[7] + copy[3]" (subscript_expression "copy[7]" identifier [ number_literal ]) + (subscript_expression "copy[3]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar15 = uVar15 ^ uVar21;" (assignment_expression "uVar15 = uVar15 ^ uVar21" identifier = (binary_expression "uVar15 ^ uVar21" identifier ^ identifier)) ;) (expression_statement "uVar10 = uVar10 ^ uVar30;" (assignment_expression "uVar10 = uVar10 ^ uVar30" identifier = (binary_expression "uVar10 ^ uVar30" identifier ^ identifier)) ;) (expression_statement "uVar8 = uVar8 ^ uVar29;" (assignment_expression "uVar8 = uVar8 ^ uVar29" identifier = (binary_expression "uVar8 ^ uVar29" identifier ^ identifier)) ;) (expression_statement "uVar6 = uVar6 ^ uVar23;" (assignment_expression "uVar6 = uVar6 ^ uVar23" identifier = (binary_expression "uVar6 ^ uVar23" identifier ^ identifier)) ;) (expression_statement "uVar15 = (uVar15 >> 0x18) + uVar15 * 0x100;" (assignment_expression "uVar15 = (uVar15 >> 0x18) + uVar15 * 0x100" identifier = (binary_expression "(uVar15 >> 0x18) + uVar15 * 0x100" (parenthesized_expression "(uVar15 >> 0x18)" ( (binary_expression "uVar15 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar15 * 0x100" identifier * number_literal))) ;) (expression_statement "uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;" (assignment_expression "uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100" identifier = (binary_expression "(uVar10 >> 0x18) + uVar10 * 0x100" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar10 * 0x100" identifier * number_literal))) ;) (expression_statement "uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;" (assignment_expression "uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100" identifier = (binary_expression "(uVar8 >> 0x18) + uVar8 * 0x100" (parenthesized_expression "(uVar8 >> 0x18)" ( (binary_expression "uVar8 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar8 * 0x100" identifier * number_literal))) ;) (expression_statement "uVar6 = (uVar6 >> 0x18) + uVar6 * 0x100;" (assignment_expression "uVar6 = (uVar6 >> 0x18) + uVar6 * 0x100" identifier = (binary_expression "(uVar6 >> 0x18) + uVar6 * 0x100" (parenthesized_expression "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar6 * 0x100" identifier * number_literal))) ;) (expression_statement "uVar28 = uVar28 + uVar15;" (assignment_expression "uVar28 = uVar28 + uVar15" identifier = (binary_expression "uVar28 + uVar15" identifier + identifier)) ;) (expression_statement "uVar25 = uVar25 + uVar10;" (assignment_expression "uVar25 = uVar25 + uVar10" identifier = (binary_expression "uVar25 + uVar10" identifier + identifier)) ;) (expression_statement "uVar24 = uVar24 + uVar8;" (assignment_expression "uVar24 = uVar24 + uVar8" identifier = (binary_expression "uVar24 + uVar8" identifier + identifier)) ;) (expression_statement "uVar22 = uVar22 + uVar6;" (assignment_expression "uVar22 = uVar22 + uVar6" identifier = (binary_expression "uVar22 + uVar6" identifier + identifier)) ;) (expression_statement "uVar19 = uVar19 ^ uVar28;" (assignment_expression "uVar19 = uVar19 ^ uVar28" identifier = (binary_expression "uVar19 ^ uVar28" identifier ^ identifier)) ;) (expression_statement "uVar14 = uVar14 ^ uVar25;" (assignment_expression "uVar14 = uVar14 ^ uVar25" identifier = (binary_expression "uVar14 ^ uVar25" identifier ^ identifier)) ;) (expression_statement "uVar18 = uVar18 ^ uVar24;" (assignment_expression "uVar18 = uVar18 ^ uVar24" identifier = (binary_expression "uVar18 ^ uVar24" identifier ^ identifier)) ;) (expression_statement "uVar17 = uVar17 ^ uVar22;" (assignment_expression "uVar17 = uVar17 ^ uVar22" identifier = (binary_expression "uVar17 ^ uVar22" identifier ^ identifier)) ;) (expression_statement "uVar19 = (uVar19 >> 0x19) + uVar19 * 0x80;" (assignment_expression "uVar19 = (uVar19 >> 0x19) + uVar19 * 0x80" identifier = (binary_expression "(uVar19 >> 0x19) + uVar19 * 0x80" (parenthesized_expression "(uVar19 >> 0x19)" ( (binary_expression "uVar19 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar19 * 0x80" identifier * number_literal))) ;) (expression_statement "uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;" (assignment_expression "uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80" identifier = (binary_expression "(uVar14 >> 0x19) + uVar14 * 0x80" (parenthesized_expression "(uVar14 >> 0x19)" ( (binary_expression "uVar14 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar14 * 0x80" identifier * number_literal))) ;) (expression_statement "uVar18 = (uVar18 >> 0x19) + uVar18 * 0x80;" (assignment_expression "uVar18 = (uVar18 >> 0x19) + uVar18 * 0x80" identifier = (binary_expression "(uVar18 >> 0x19) + uVar18 * 0x80" (parenthesized_expression "(uVar18 >> 0x19)" ( (binary_expression "uVar18 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar18 * 0x80" identifier * number_literal))) ;) (expression_statement "uVar17 = (uVar17 >> 0x19) + uVar17 * 0x80;" (assignment_expression "uVar17 = (uVar17 >> 0x19) + uVar17 * 0x80" identifier = (binary_expression "(uVar17 >> 0x19) + uVar17 * 0x80" (parenthesized_expression "(uVar17 >> 0x19)" ( (binary_expression "uVar17 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar17 * 0x80" identifier * number_literal))) ;) (expression_statement "uVar21 = uVar21 + uVar14;" (assignment_expression "uVar21 = uVar21 + uVar14" identifier = (binary_expression "uVar21 + uVar14" identifier + identifier)) ;) (expression_statement "uVar30 = uVar30 + uVar18;" (assignment_expression "uVar30 = uVar30 + uVar18" identifier = (binary_expression "uVar30 + uVar18" identifier + identifier)) ;) (expression_statement "uVar29 = uVar29 + uVar17;" (assignment_expression "uVar29 = uVar29 + uVar17" identifier = (binary_expression "uVar29 + uVar17" identifier + identifier)) ;) (expression_statement "uVar23 = uVar19 + uVar23;" (assignment_expression "uVar23 = uVar19 + uVar23" identifier = (binary_expression "uVar19 + uVar23" identifier + identifier)) ;) (expression_statement "uVar6 = uVar6 ^ uVar21;" (assignment_expression "uVar6 = uVar6 ^ uVar21" identifier = (binary_expression "uVar6 ^ uVar21" identifier ^ identifier)) ;) (expression_statement "uVar15 = uVar15 ^ uVar30;" (assignment_expression "uVar15 = uVar15 ^ uVar30" identifier = (binary_expression "uVar15 ^ uVar30" identifier ^ identifier)) ;) (expression_statement "uVar10 = uVar10 ^ uVar29;" (assignment_expression "uVar10 = uVar10 ^ uVar29" identifier = (binary_expression "uVar10 ^ uVar29" identifier ^ identifier)) ;) (expression_statement "uVar8 = uVar8 ^ uVar23;" (assignment_expression "uVar8 = uVar8 ^ uVar23" identifier = (binary_expression "uVar8 ^ uVar23" identifier ^ identifier)) ;) (expression_statement "uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000;" (assignment_expression "uVar6 = (uVar6 >> 0x10) + uVar6 * 0x10000" identifier = (binary_expression "(uVar6 >> 0x10) + uVar6 * 0x10000" (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar6 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar15 = (uVar15 >> 0x10) + uVar15 * 0x10000;" (assignment_expression "uVar15 = (uVar15 >> 0x10) + uVar15 * 0x10000" identifier = (binary_expression "(uVar15 >> 0x10) + uVar15 * 0x10000" (parenthesized_expression "(uVar15 >> 0x10)" ( (binary_expression "uVar15 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar15 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;" (assignment_expression "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000" identifier = (binary_expression "(uVar10 >> 0x10) + uVar10 * 0x10000" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar10 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;" (assignment_expression "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000" identifier = (binary_expression "(uVar8 >> 0x10) + uVar8 * 0x10000" (parenthesized_expression "(uVar8 >> 0x10)" ( (binary_expression "uVar8 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar8 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar24 = uVar24 + uVar6;" (assignment_expression "uVar24 = uVar24 + uVar6" identifier = (binary_expression "uVar24 + uVar6" identifier + identifier)) ;) (expression_statement "uVar22 = uVar22 + uVar15;" (assignment_expression "uVar22 = uVar22 + uVar15" identifier = (binary_expression "uVar22 + uVar15" identifier + identifier)) ;) (expression_statement "uVar28 = uVar28 + uVar10;" (assignment_expression "uVar28 = uVar28 + uVar10" identifier = (binary_expression "uVar28 + uVar10" identifier + identifier)) ;) (expression_statement "uVar25 = uVar25 + uVar8;" (assignment_expression "uVar25 = uVar25 + uVar8" identifier = (binary_expression "uVar25 + uVar8" identifier + identifier)) ;) (expression_statement "uVar14 = uVar14 ^ uVar24;" (assignment_expression "uVar14 = uVar14 ^ uVar24" identifier = (binary_expression "uVar14 ^ uVar24" identifier ^ identifier)) ;) (expression_statement "uVar18 = uVar18 ^ uVar22;" (assignment_expression "uVar18 = uVar18 ^ uVar22" identifier = (binary_expression "uVar18 ^ uVar22" identifier ^ identifier)) ;) (expression_statement "uVar17 = uVar17 ^ uVar28;" (assignment_expression "uVar17 = uVar17 ^ uVar28" identifier = (binary_expression "uVar17 ^ uVar28" identifier ^ identifier)) ;) (expression_statement "uVar19 = uVar19 ^ uVar25;" (assignment_expression "uVar19 = uVar19 ^ uVar25" identifier = (binary_expression "uVar19 ^ uVar25" identifier ^ identifier)) ;) (expression_statement "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;" (assignment_expression "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000" identifier = (binary_expression "(uVar14 >> 0x14) + uVar14 * 0x1000" (parenthesized_expression "(uVar14 >> 0x14)" ( (binary_expression "uVar14 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar14 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000;" (assignment_expression "uVar18 = (uVar18 >> 0x14) + uVar18 * 0x1000" identifier = (binary_expression "(uVar18 >> 0x14) + uVar18 * 0x1000" (parenthesized_expression "(uVar18 >> 0x14)" ( (binary_expression "uVar18 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar18 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000;" (assignment_expression "uVar17 = (uVar17 >> 0x14) + uVar17 * 0x1000" identifier = (binary_expression "(uVar17 >> 0x14) + uVar17 * 0x1000" (parenthesized_expression "(uVar17 >> 0x14)" ( (binary_expression "uVar17 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar17 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000;" (assignment_expression "uVar19 = (uVar19 >> 0x14) + uVar19 * 0x1000" identifier = (binary_expression "(uVar19 >> 0x14) + uVar19 * 0x1000" (parenthesized_expression "(uVar19 >> 0x14)" ( (binary_expression "uVar19 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar19 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar9 = uVar21 + uVar14;" (assignment_expression "uVar9 = uVar21 + uVar14" identifier = (binary_expression "uVar21 + uVar14" identifier + identifier)) ;) (expression_statement "copy[1] = uVar30 + uVar18;" (assignment_expression "copy[1] = uVar30 + uVar18" (subscript_expression "copy[1]" identifier [ number_literal ]) = (binary_expression "uVar30 + uVar18" identifier + identifier)) ;) (expression_statement "copy[2] = uVar29 + uVar17;" (assignment_expression "copy[2] = uVar29 + uVar17" (subscript_expression "copy[2]" identifier [ number_literal ]) = (binary_expression "uVar29 + uVar17" identifier + identifier)) ;) (expression_statement "copy[3] = uVar23 + uVar19;" (assignment_expression "copy[3] = uVar23 + uVar19" (subscript_expression "copy[3]" identifier [ number_literal ]) = (binary_expression "uVar23 + uVar19" identifier + identifier)) ;) (expression_statement "uVar6 = uVar6 ^ uVar9;" (assignment_expression "uVar6 = uVar6 ^ uVar9" identifier = (binary_expression "uVar6 ^ uVar9" identifier ^ identifier)) ;) (expression_statement "uVar15 = uVar15 ^ copy[1];" (assignment_expression "uVar15 = uVar15 ^ copy[1]" identifier = (binary_expression "uVar15 ^ copy[1]" identifier ^ (subscript_expression "copy[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar10 = uVar10 ^ copy[2];" (assignment_expression "uVar10 = uVar10 ^ copy[2]" identifier = (binary_expression "uVar10 ^ copy[2]" identifier ^ (subscript_expression "copy[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar8 = uVar8 ^ copy[3];" (assignment_expression "uVar8 = uVar8 ^ copy[3]" identifier = (binary_expression "uVar8 ^ copy[3]" identifier ^ (subscript_expression "copy[3]" identifier [ number_literal ]))) ;) (expression_statement "copy[0xf] = (uVar6 >> 0x18) + uVar6 * 0x100;" (assignment_expression "copy[0xf] = (uVar6 >> 0x18) + uVar6 * 0x100" (subscript_expression "copy[0xf]" identifier [ number_literal ]) = (binary_expression "(uVar6 >> 0x18) + uVar6 * 0x100" (parenthesized_expression "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar6 * 0x100" identifier * number_literal))) ;) (expression_statement "copy[0xc] = (uVar15 >> 0x18) + uVar15 * 0x100;" (assignment_expression "copy[0xc] = (uVar15 >> 0x18) + uVar15 * 0x100" (subscript_expression "copy[0xc]" identifier [ number_literal ]) = (binary_expression "(uVar15 >> 0x18) + uVar15 * 0x100" (parenthesized_expression "(uVar15 >> 0x18)" ( (binary_expression "uVar15 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar15 * 0x100" identifier * number_literal))) ;) (expression_statement "copy[0xd] = (uVar10 >> 0x18) + uVar10 * 0x100;" (assignment_expression "copy[0xd] = (uVar10 >> 0x18) + uVar10 * 0x100" (subscript_expression "copy[0xd]" identifier [ number_literal ]) = (binary_expression "(uVar10 >> 0x18) + uVar10 * 0x100" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar10 * 0x100" identifier * number_literal))) ;) (expression_statement "copy[0xe] = (uVar8 >> 0x18) + uVar8 * 0x100;" (assignment_expression "copy[0xe] = (uVar8 >> 0x18) + uVar8 * 0x100" (subscript_expression "copy[0xe]" identifier [ number_literal ]) = (binary_expression "(uVar8 >> 0x18) + uVar8 * 0x100" (parenthesized_expression "(uVar8 >> 0x18)" ( (binary_expression "uVar8 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar8 * 0x100" identifier * number_literal))) ;) (expression_statement "copy[10] = uVar24 + copy[0xf];" (assignment_expression "copy[10] = uVar24 + copy[0xf]" (subscript_expression "copy[10]" identifier [ number_literal ]) = (binary_expression "uVar24 + copy[0xf]" identifier + (subscript_expression "copy[0xf]" identifier [ number_literal ]))) ;) (expression_statement "copy[0xb] = uVar22 + copy[0xc];" (assignment_expression "copy[0xb] = uVar22 + copy[0xc]" (subscript_expression "copy[0xb]" identifier [ number_literal ]) = (binary_expression "uVar22 + copy[0xc]" identifier + (subscript_expression "copy[0xc]" identifier [ number_literal ]))) ;) (expression_statement "copy[8] = uVar28 + copy[0xd];" (assignment_expression "copy[8] = uVar28 + copy[0xd]" (subscript_expression "copy[8]" identifier [ number_literal ]) = (binary_expression "uVar28 + copy[0xd]" identifier + (subscript_expression "copy[0xd]" identifier [ number_literal ]))) ;) (expression_statement "copy[9] = uVar25 + copy[0xe];" (assignment_expression "copy[9] = uVar25 + copy[0xe]" (subscript_expression "copy[9]" identifier [ number_literal ]) = (binary_expression "uVar25 + copy[0xe]" identifier + (subscript_expression "copy[0xe]" identifier [ number_literal ]))) ;) (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = uVar14 ^ copy[10];" (assignment_expression "uVar14 = uVar14 ^ copy[10]" identifier = (binary_expression "uVar14 ^ copy[10]" identifier ^ (subscript_expression "copy[10]" identifier [ number_literal ]))) ;) (expression_statement "uVar18 = uVar18 ^ copy[0xb];" (assignment_expression "uVar18 = uVar18 ^ copy[0xb]" identifier = (binary_expression "uVar18 ^ copy[0xb]" identifier ^ (subscript_expression "copy[0xb]" identifier [ number_literal ]))) ;) (expression_statement "uVar17 = uVar17 ^ copy[8];" (assignment_expression "uVar17 = uVar17 ^ copy[8]" identifier = (binary_expression "uVar17 ^ copy[8]" identifier ^ (subscript_expression "copy[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = uVar19 ^ copy[9];" (assignment_expression "uVar19 = uVar19 ^ copy[9]" identifier = (binary_expression "uVar19 ^ copy[9]" identifier ^ (subscript_expression "copy[9]" identifier [ number_literal ]))) ;) (expression_statement "copy[5] = (uVar14 >> 0x19) + uVar14 * 0x80;" (assignment_expression "copy[5] = (uVar14 >> 0x19) + uVar14 * 0x80" (subscript_expression "copy[5]" identifier [ number_literal ]) = (binary_expression "(uVar14 >> 0x19) + uVar14 * 0x80" (parenthesized_expression "(uVar14 >> 0x19)" ( (binary_expression "uVar14 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar14 * 0x80" identifier * number_literal))) ;) (expression_statement "copy[6] = (uVar18 >> 0x19) + uVar18 * 0x80;" (assignment_expression "copy[6] = (uVar18 >> 0x19) + uVar18 * 0x80" (subscript_expression "copy[6]" identifier [ number_literal ]) = (binary_expression "(uVar18 >> 0x19) + uVar18 * 0x80" (parenthesized_expression "(uVar18 >> 0x19)" ( (binary_expression "uVar18 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar18 * 0x80" identifier * number_literal))) ;) (expression_statement "copy[7] = (uVar17 >> 0x19) + uVar17 * 0x80;" (assignment_expression "copy[7] = (uVar17 >> 0x19) + uVar17 * 0x80" (subscript_expression "copy[7]" identifier [ number_literal ]) = (binary_expression "(uVar17 >> 0x19) + uVar17 * 0x80" (parenthesized_expression "(uVar17 >> 0x19)" ( (binary_expression "uVar17 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar17 * 0x80" identifier * number_literal))) ;) (expression_statement "copy[4] = (uVar19 >> 0x19) + uVar19 * 0x80;" (assignment_expression "copy[4] = (uVar19 >> 0x19) + uVar19 * 0x80" (subscript_expression "copy[4]" identifier [ number_literal ]) = (binary_expression "(uVar19 >> 0x19) + uVar19 * 0x80" (parenthesized_expression "(uVar19 >> 0x19)" ( (binary_expression "uVar19 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar19 * 0x80" identifier * number_literal))) ;) }) while (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) ;) (expression_statement "copy[0] = uVar9;" (assignment_expression "copy[0] = uVar9" (subscript_expression "copy[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar5 = ctx_00;" (assignment_expression "pcVar5 = ctx_00" identifier = identifier) ;) (expression_statement "pcVar7 = ctx;" (assignment_expression "pcVar7 = ctx" identifier = identifier) ;) (while_statement "while( true ) {\n    puVar2 = pcVar7->state;\n    pcVar16 = (chacha20 *)(pcVar5->state + 1);\n    pcVar7 = (chacha20 *)(pcVar7->state + 1);\n    pcVar5->state[0] = *puVar2 + uVar9;\n    pcVar5 = ctx_00;\n    puVar27 = ctx->current;\n    if ((chacha20 *)&local_1c == pcVar16) break;\n    uVar9 = pcVar16->state[0];\n    pcVar5 = pcVar16;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    puVar2 = pcVar7->state;\n    pcVar16 = (chacha20 *)(pcVar5->state + 1);\n    pcVar7 = (chacha20 *)(pcVar7->state + 1);\n    pcVar5->state[0] = *puVar2 + uVar9;\n    pcVar5 = ctx_00;\n    puVar27 = ctx->current;\n    if ((chacha20 *)&local_1c == pcVar16) break;\n    uVar9 = pcVar16->state[0];\n    pcVar5 = pcVar16;\n  }" { (expression_statement "puVar2 = pcVar7->state;" (assignment_expression "puVar2 = pcVar7->state" identifier = (field_expression "pcVar7->state" identifier -> field_identifier)) ;) (expression_statement "pcVar16 = (chacha20 *)(pcVar5->state + 1);" (assignment_expression "pcVar16 = (chacha20 *)(pcVar5->state + 1)" identifier = (cast_expression "(chacha20 *)(pcVar5->state + 1)" ( (type_descriptor "chacha20 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5->state + 1)" ( (binary_expression "pcVar5->state + 1" (field_expression "pcVar5->state" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "pcVar7 = (chacha20 *)(pcVar7->state + 1);" (assignment_expression "pcVar7 = (chacha20 *)(pcVar7->state + 1)" identifier = (cast_expression "(chacha20 *)(pcVar7->state + 1)" ( (type_descriptor "chacha20 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7->state + 1)" ( (binary_expression "pcVar7->state + 1" (field_expression "pcVar7->state" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "pcVar5->state[0] = *puVar2 + uVar9;" (assignment_expression "pcVar5->state[0] = *puVar2 + uVar9" (subscript_expression "pcVar5->state[0]" (field_expression "pcVar5->state" identifier -> field_identifier) [ number_literal ]) = (binary_expression "*puVar2 + uVar9" (pointer_expression "*puVar2" * identifier) + identifier)) ;) (expression_statement "pcVar5 = ctx_00;" (assignment_expression "pcVar5 = ctx_00" identifier = identifier) ;) (expression_statement "puVar27 = ctx->current;" (assignment_expression "puVar27 = ctx->current" identifier = (field_expression "ctx->current" identifier -> field_identifier)) ;) (if_statement "if ((chacha20 *)&local_1c == pcVar16) break;" if (parenthesized_expression "((chacha20 *)&local_1c == pcVar16)" ( (binary_expression "(chacha20 *)&local_1c == pcVar16" (cast_expression "(chacha20 *)&local_1c" ( (type_descriptor "chacha20 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_1c" & identifier)) == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = pcVar16->state[0];" (assignment_expression "uVar9 = pcVar16->state[0]" identifier = (subscript_expression "pcVar16->state[0]" (field_expression "pcVar16->state" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pcVar5 = pcVar16;" (assignment_expression "pcVar5 = pcVar16" identifier = identifier) ;) })) (do_statement "do {\n    uVar9 = pcVar5->state[0];\n    pcVar5 = (chacha20 *)(pcVar5->state + 1);\n    *puVar27 = (uchar)uVar9;\n    puVar27[1] = (uchar)(uVar9 >> 8);\n    puVar27[2] = (uchar)(uVar9 >> 0x10);\n    puVar27[3] = (uchar)(uVar9 >> 0x18);\n    puVar3 = PTR_smemclr_00111398;\n    puVar27 = puVar27 + 4;\n  } while ((chacha20 *)&local_1c != pcVar5);" do (compound_statement "{\n    uVar9 = pcVar5->state[0];\n    pcVar5 = (chacha20 *)(pcVar5->state + 1);\n    *puVar27 = (uchar)uVar9;\n    puVar27[1] = (uchar)(uVar9 >> 8);\n    puVar27[2] = (uchar)(uVar9 >> 0x10);\n    puVar27[3] = (uchar)(uVar9 >> 0x18);\n    puVar3 = PTR_smemclr_00111398;\n    puVar27 = puVar27 + 4;\n  }" { (expression_statement "uVar9 = pcVar5->state[0];" (assignment_expression "uVar9 = pcVar5->state[0]" identifier = (subscript_expression "pcVar5->state[0]" (field_expression "pcVar5->state" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pcVar5 = (chacha20 *)(pcVar5->state + 1);" (assignment_expression "pcVar5 = (chacha20 *)(pcVar5->state + 1)" identifier = (cast_expression "(chacha20 *)(pcVar5->state + 1)" ( (type_descriptor "chacha20 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5->state + 1)" ( (binary_expression "pcVar5->state + 1" (field_expression "pcVar5->state" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "*puVar27 = (uchar)uVar9;" (assignment_expression "*puVar27 = (uchar)uVar9" (pointer_expression "*puVar27" * identifier) = (cast_expression "(uchar)uVar9" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "puVar27[1] = (uchar)(uVar9 >> 8);" (assignment_expression "puVar27[1] = (uchar)(uVar9 >> 8)" (subscript_expression "puVar27[1]" identifier [ number_literal ]) = (call_expression "(uchar)(uVar9 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar9 >> 8)" ( (binary_expression "uVar9 >> 8" identifier >> number_literal) )))) ;) (expression_statement "puVar27[2] = (uchar)(uVar9 >> 0x10);" (assignment_expression "puVar27[2] = (uchar)(uVar9 >> 0x10)" (subscript_expression "puVar27[2]" identifier [ number_literal ]) = (call_expression "(uchar)(uVar9 >> 0x10)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar9 >> 0x10)" ( (binary_expression "uVar9 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "puVar27[3] = (uchar)(uVar9 >> 0x18);" (assignment_expression "puVar27[3] = (uchar)(uVar9 >> 0x18)" (subscript_expression "puVar27[3]" identifier [ number_literal ]) = (call_expression "(uchar)(uVar9 >> 0x18)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar9 >> 0x18)" ( (binary_expression "uVar9 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "puVar3 = PTR_smemclr_00111398;" (assignment_expression "puVar3 = PTR_smemclr_00111398" identifier = identifier) ;) (expression_statement "puVar27 = puVar27 + 4;" (assignment_expression "puVar27 = puVar27 + 4" identifier = (binary_expression "puVar27 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "((chacha20 *)&local_1c != pcVar5)" ( (binary_expression "(chacha20 *)&local_1c != pcVar5" (cast_expression "(chacha20 *)&local_1c" ( (type_descriptor "chacha20 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_1c" & identifier)) != identifier) )) ;) (expression_statement "pbVar12 = &DAT_00000040;" (assignment_expression "pbVar12 = &DAT_00000040" identifier = (pointer_expression "&DAT_00000040" & identifier)) ;) (expression_statement "ctx->currentIndex = 0;" (assignment_expression "ctx->currentIndex = 0" (field_expression "ctx->currentIndex" identifier -> field_identifier) = number_literal) ;) (expression_statement "(*(code *)puVar3)();" (call_expression "(*(code *)puVar3)()" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar9 = ctx->state[0xc] + 1;" (assignment_expression "uVar9 = ctx->state[0xc] + 1" identifier = (binary_expression "ctx->state[0xc] + 1" (subscript_expression "ctx->state[0xc]" (field_expression "ctx->state" identifier -> field_identifier) [ number_literal ]) + number_literal)) ;) (expression_statement "ctx->state[0xc] = uVar9;" (assignment_expression "ctx->state[0xc] = uVar9" (subscript_expression "ctx->state[0xc]" (field_expression "ctx->state" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (if_statement "if (uVar9 == 0) {\n    ctx->state[0xd] = ctx->state[0xd] + 1;\n  }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    ctx->state[0xd] = ctx->state[0xd] + 1;\n  }" { (expression_statement "ctx->state[0xd] = ctx->state[0xd] + 1;" (assignment_expression "ctx->state[0xd] = ctx->state[0xd] + 1" (subscript_expression "ctx->state[0xd]" (field_expression "ctx->state" identifier -> field_identifier) [ number_literal ]) = (binary_expression "ctx->state[0xd] + 1" (subscript_expression "ctx->state[0xd]" (field_expression "ctx->state" identifier -> field_identifier) [ number_literal ]) + number_literal)) ;) })) (if_statement "if (local_1c == *(uint32 *)puVar4) {\n    return;\n  }" if (parenthesized_expression "(local_1c == *(uint32 *)puVar4)" ( (binary_expression "local_1c == *(uint32 *)puVar4" identifier == (pointer_expression "*(uint32 *)puVar4" * (cast_expression "(uint32 *)puVar4" ( (type_descriptor "uint32 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_001122c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_001122c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001122c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001122c8" * (cast_expression "(code *)PTR___stack_chk_fail_001122c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (pcVar16 == (chacha20 *)0x0) {\n    return;\n  }" if (parenthesized_expression "(pcVar16 == (chacha20 *)0x0)" ( (binary_expression "pcVar16 == (chacha20 *)0x0" identifier == (cast_expression "(chacha20 *)0x0" ( (type_descriptor "chacha20 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar20 = ctx_00->currentIndex;" (assignment_expression "iVar20 = ctx_00->currentIndex" identifier = (field_expression "ctx_00->currentIndex" identifier -> field_identifier)) ;) (expression_statement "bVar1 = iVar20 < 0x40;" (assignment_expression "bVar1 = iVar20 < 0x40" identifier = (binary_expression "iVar20 < 0x40" identifier < number_literal)) ;) (labeled_statement "LAB_0006c064:\n  do {\n    pbVar26 = pbVar12;\n    if (!bVar1) {\n      chacha20_round(ctx_00);\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar12 = pbVar26 + 1;\n      ctx_00->currentIndex = iVar20 + 1;\n      *pbVar26 = *pbVar26 ^ ctx_00->current[iVar20];\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      pcVar16 = (chacha20 *)((int)&pcVar16[-1].currentIndex + 3);\n      if (!bVar1) break;\n      pbVar26 = pbVar12;\n      if (pcVar16 == (chacha20 *)0x0) {\n        return;\n      }\n    }\n    if (pcVar16 == (chacha20 *)0x0) {\n      return;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    pbVar26 = pbVar12;\n    if (!bVar1) {\n      chacha20_round(ctx_00);\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar12 = pbVar26 + 1;\n      ctx_00->currentIndex = iVar20 + 1;\n      *pbVar26 = *pbVar26 ^ ctx_00->current[iVar20];\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      pcVar16 = (chacha20 *)((int)&pcVar16[-1].currentIndex + 3);\n      if (!bVar1) break;\n      pbVar26 = pbVar12;\n      if (pcVar16 == (chacha20 *)0x0) {\n        return;\n      }\n    }\n    if (pcVar16 == (chacha20 *)0x0) {\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    pbVar26 = pbVar12;\n    if (!bVar1) {\n      chacha20_round(ctx_00);\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar12 = pbVar26 + 1;\n      ctx_00->currentIndex = iVar20 + 1;\n      *pbVar26 = *pbVar26 ^ ctx_00->current[iVar20];\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      pcVar16 = (chacha20 *)((int)&pcVar16[-1].currentIndex + 3);\n      if (!bVar1) break;\n      pbVar26 = pbVar12;\n      if (pcVar16 == (chacha20 *)0x0) {\n        return;\n      }\n    }\n    if (pcVar16 == (chacha20 *)0x0) {\n      return;\n    }\n  }" { (expression_statement "pbVar26 = pbVar12;" (assignment_expression "pbVar26 = pbVar12" identifier = identifier) ;) (if_statement "if (!bVar1) {\n      chacha20_round(ctx_00);\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n      chacha20_round(ctx_00);\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }" { (expression_statement "chacha20_round(ctx_00);" (call_expression "chacha20_round(ctx_00)" identifier (argument_list "(ctx_00)" ( identifier ))) ;) (expression_statement "iVar20 = ctx_00->currentIndex;" (assignment_expression "iVar20 = ctx_00->currentIndex" identifier = (field_expression "ctx_00->currentIndex" identifier -> field_identifier)) ;) (expression_statement "bVar1 = iVar20 < 0x40;" (assignment_expression "bVar1 = iVar20 < 0x40" identifier = (binary_expression "iVar20 < 0x40" identifier < number_literal)) ;) (if_statement "if (!bVar1) goto LAB_0006c064;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (goto_statement "goto LAB_0006c064;" goto statement_identifier ;)) })) (while_statement "while( true ) {\n      pbVar12 = pbVar26 + 1;\n      ctx_00->currentIndex = iVar20 + 1;\n      *pbVar26 = *pbVar26 ^ ctx_00->current[iVar20];\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      pcVar16 = (chacha20 *)((int)&pcVar16[-1].currentIndex + 3);\n      if (!bVar1) break;\n      pbVar26 = pbVar12;\n      if (pcVar16 == (chacha20 *)0x0) {\n        return;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pbVar12 = pbVar26 + 1;\n      ctx_00->currentIndex = iVar20 + 1;\n      *pbVar26 = *pbVar26 ^ ctx_00->current[iVar20];\n      iVar20 = ctx_00->currentIndex;\n      bVar1 = iVar20 < 0x40;\n      pcVar16 = (chacha20 *)((int)&pcVar16[-1].currentIndex + 3);\n      if (!bVar1) break;\n      pbVar26 = pbVar12;\n      if (pcVar16 == (chacha20 *)0x0) {\n        return;\n      }\n    }" { (expression_statement "pbVar12 = pbVar26 + 1;" (assignment_expression "pbVar12 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (expression_statement "ctx_00->currentIndex = iVar20 + 1;" (assignment_expression "ctx_00->currentIndex = iVar20 + 1" (field_expression "ctx_00->currentIndex" identifier -> field_identifier) = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar26 = *pbVar26 ^ ctx_00->current[iVar20];" (assignment_expression "*pbVar26 = *pbVar26 ^ ctx_00->current[iVar20]" (pointer_expression "*pbVar26" * identifier) = (binary_expression "*pbVar26 ^ ctx_00->current[iVar20]" (pointer_expression "*pbVar26" * identifier) ^ (subscript_expression "ctx_00->current[iVar20]" (field_expression "ctx_00->current" identifier -> field_identifier) [ identifier ]))) ;) (expression_statement "iVar20 = ctx_00->currentIndex;" (assignment_expression "iVar20 = ctx_00->currentIndex" identifier = (field_expression "ctx_00->currentIndex" identifier -> field_identifier)) ;) (expression_statement "bVar1 = iVar20 < 0x40;" (assignment_expression "bVar1 = iVar20 < 0x40" identifier = (binary_expression "iVar20 < 0x40" identifier < number_literal)) ;) (expression_statement "pcVar16 = (chacha20 *)((int)&pcVar16[-1].currentIndex + 3);" (assignment_expression "pcVar16 = (chacha20 *)((int)&pcVar16[-1].currentIndex + 3)" identifier = (cast_expression "(chacha20 *)((int)&pcVar16[-1].currentIndex + 3)" ( (type_descriptor "chacha20 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pcVar16[-1].currentIndex + 3)" ( (binary_expression "(int)&pcVar16[-1].currentIndex + 3" (cast_expression "(int)&pcVar16[-1].currentIndex" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pcVar16[-1].currentIndex" & (field_expression "pcVar16[-1].currentIndex" (subscript_expression "pcVar16[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (!bVar1) break;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar26 = pbVar12;" (assignment_expression "pbVar26 = pbVar12" identifier = identifier) ;) (if_statement "if (pcVar16 == (chacha20 *)0x0) {\n        return;\n      }" if (parenthesized_expression "(pcVar16 == (chacha20 *)0x0)" ( (binary_expression "pcVar16 == (chacha20 *)0x0" identifier == (cast_expression "(chacha20 *)0x0" ( (type_descriptor "chacha20 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) })) (if_statement "if (pcVar16 == (chacha20 *)0x0) {\n      return;\n    }" if (parenthesized_expression "(pcVar16 == (chacha20 *)0x0)" ( (binary_expression "pcVar16 == (chacha20 *)0x0" identifier == (cast_expression "(chacha20 *)0x0" ( (type_descriptor "chacha20 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "void FUN_0006bcbc(uint *param_1)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  byte *pbVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  byte *pbVar22;\n  uint *puVar23;\n  uint *puVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint local_5c [16];\n  uint local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00112630;\n  puVar7 = local_5c;\n  local_1c = *(uint *)PTR___stack_chk_guard_00112630;\n  puVar4 = param_1;\n  puVar5 = puVar7;\n  do {\n    uVar13 = *puVar4;\n    uVar10 = puVar4[1];\n    uVar8 = puVar4[2];\n    uVar6 = puVar4[3];\n    puVar4 = puVar4 + 4;\n    *puVar5 = uVar13;\n    puVar5[1] = uVar10;\n    puVar5[2] = uVar8;\n    puVar5[3] = uVar6;\n    puVar5 = puVar5 + 4;\n  } while (puVar4 != param_1 + 0x10);\n  iVar17 = 10;\n  uVar6 = local_5c[0];\n  do {\n    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];\n    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];\n    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];\n    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];\n    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar25 = uVar12 + local_5c[8];\n    uVar21 = uVar13 + local_5c[9];\n    uVar20 = uVar10 + local_5c[10];\n    uVar18 = uVar8 + local_5c[0xb];\n    uVar16 = uVar25 ^ local_5c[4];\n    uVar11 = uVar21 ^ local_5c[5];\n    uVar15 = uVar20 ^ local_5c[6];\n    uVar14 = uVar18 ^ local_5c[7];\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar6 = local_5c[4] + uVar6 + uVar16;\n    uVar27 = local_5c[1] + local_5c[5] + uVar11;\n    uVar26 = local_5c[6] + local_5c[2] + uVar15;\n    uVar19 = local_5c[7] + local_5c[3] + uVar14;\n    uVar12 = uVar12 ^ uVar6;\n    uVar13 = uVar13 ^ uVar27;\n    uVar10 = uVar10 ^ uVar26;\n    uVar8 = uVar8 ^ uVar19;\n    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;\n    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar25 = uVar25 + uVar12;\n    uVar21 = uVar21 + uVar13;\n    uVar20 = uVar20 + uVar10;\n    uVar18 = uVar18 + uVar8;\n    uVar16 = uVar16 ^ uVar25;\n    uVar11 = uVar11 ^ uVar21;\n    uVar15 = uVar15 ^ uVar20;\n    uVar14 = uVar14 ^ uVar18;\n    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;\n    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;\n    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar6 = uVar6 + uVar11;\n    uVar27 = uVar27 + uVar15;\n    uVar26 = uVar26 + uVar14;\n    uVar19 = uVar16 + uVar19;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ uVar27;\n    uVar13 = uVar13 ^ uVar26;\n    uVar10 = uVar10 ^ uVar19;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar20 = uVar20 + uVar8;\n    uVar18 = uVar18 + uVar12;\n    uVar25 = uVar25 + uVar13;\n    uVar21 = uVar21 + uVar10;\n    uVar11 = uVar11 ^ uVar20;\n    uVar15 = uVar15 ^ uVar18;\n    uVar14 = uVar14 ^ uVar25;\n    uVar16 = uVar16 ^ uVar21;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar6 = uVar6 + uVar11;\n    local_5c[1] = uVar27 + uVar15;\n    local_5c[2] = uVar26 + uVar14;\n    local_5c[3] = uVar19 + uVar16;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ local_5c[1];\n    uVar13 = uVar13 ^ local_5c[2];\n    uVar10 = uVar10 ^ local_5c[3];\n    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;\n    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;\n    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    local_5c[10] = uVar20 + local_5c[0xf];\n    local_5c[0xb] = uVar18 + local_5c[0xc];\n    local_5c[8] = uVar25 + local_5c[0xd];\n    local_5c[9] = uVar21 + local_5c[0xe];\n    iVar17 = iVar17 + -1;\n    uVar11 = uVar11 ^ local_5c[10];\n    uVar15 = uVar15 ^ local_5c[0xb];\n    uVar14 = uVar14 ^ local_5c[8];\n    uVar16 = uVar16 ^ local_5c[9];\n    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;\n    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;\n    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;\n  } while (iVar17 != 0);\n  local_5c[0] = uVar6;\n  puVar4 = puVar7;\n  puVar5 = param_1;\n  while( true ) {\n    uVar8 = *puVar5;\n    puVar24 = puVar4 + 1;\n    puVar5 = puVar5 + 1;\n    *puVar4 = uVar8 + uVar6;\n    puVar4 = puVar7;\n    puVar23 = param_1 + 0x10;\n    if (&local_1c == puVar24) break;\n    uVar6 = *puVar24;\n    puVar4 = puVar24;\n  }\n  do {\n    uVar6 = *puVar4;\n    puVar4 = puVar4 + 1;\n    *(char *)puVar23 = (char)uVar6;\n    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);\n    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);\n    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);\n    puVar2 = PTR_smemclr_00111398;\n    puVar23 = puVar23 + 1;\n  } while (&local_1c != puVar4);\n  pbVar9 = &DAT_00000040;\n  param_1[0x20] = 0;\n  (*(code *)puVar2)();\n  uVar6 = param_1[0xc];\n  param_1[0xc] = uVar6 + 1;\n  if (uVar6 + 1 == 0) {\n    param_1[0xd] = param_1[0xd] + 1;\n  }\n  if (local_1c == *(uint *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  if (puVar24 == (uint *)0x0) {\n    return;\n  }\n  uVar6 = puVar7[0x20];\n  bVar1 = (int)uVar6 < 0x40;\nLAB_0006c064:\n  do {\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  } while( true );\n}\n\n" (function_definition "void FUN_0006bcbc(uint *param_1)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  byte *pbVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  byte *pbVar22;\n  uint *puVar23;\n  uint *puVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint local_5c [16];\n  uint local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00112630;\n  puVar7 = local_5c;\n  local_1c = *(uint *)PTR___stack_chk_guard_00112630;\n  puVar4 = param_1;\n  puVar5 = puVar7;\n  do {\n    uVar13 = *puVar4;\n    uVar10 = puVar4[1];\n    uVar8 = puVar4[2];\n    uVar6 = puVar4[3];\n    puVar4 = puVar4 + 4;\n    *puVar5 = uVar13;\n    puVar5[1] = uVar10;\n    puVar5[2] = uVar8;\n    puVar5[3] = uVar6;\n    puVar5 = puVar5 + 4;\n  } while (puVar4 != param_1 + 0x10);\n  iVar17 = 10;\n  uVar6 = local_5c[0];\n  do {\n    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];\n    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];\n    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];\n    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];\n    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar25 = uVar12 + local_5c[8];\n    uVar21 = uVar13 + local_5c[9];\n    uVar20 = uVar10 + local_5c[10];\n    uVar18 = uVar8 + local_5c[0xb];\n    uVar16 = uVar25 ^ local_5c[4];\n    uVar11 = uVar21 ^ local_5c[5];\n    uVar15 = uVar20 ^ local_5c[6];\n    uVar14 = uVar18 ^ local_5c[7];\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar6 = local_5c[4] + uVar6 + uVar16;\n    uVar27 = local_5c[1] + local_5c[5] + uVar11;\n    uVar26 = local_5c[6] + local_5c[2] + uVar15;\n    uVar19 = local_5c[7] + local_5c[3] + uVar14;\n    uVar12 = uVar12 ^ uVar6;\n    uVar13 = uVar13 ^ uVar27;\n    uVar10 = uVar10 ^ uVar26;\n    uVar8 = uVar8 ^ uVar19;\n    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;\n    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar25 = uVar25 + uVar12;\n    uVar21 = uVar21 + uVar13;\n    uVar20 = uVar20 + uVar10;\n    uVar18 = uVar18 + uVar8;\n    uVar16 = uVar16 ^ uVar25;\n    uVar11 = uVar11 ^ uVar21;\n    uVar15 = uVar15 ^ uVar20;\n    uVar14 = uVar14 ^ uVar18;\n    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;\n    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;\n    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar6 = uVar6 + uVar11;\n    uVar27 = uVar27 + uVar15;\n    uVar26 = uVar26 + uVar14;\n    uVar19 = uVar16 + uVar19;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ uVar27;\n    uVar13 = uVar13 ^ uVar26;\n    uVar10 = uVar10 ^ uVar19;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar20 = uVar20 + uVar8;\n    uVar18 = uVar18 + uVar12;\n    uVar25 = uVar25 + uVar13;\n    uVar21 = uVar21 + uVar10;\n    uVar11 = uVar11 ^ uVar20;\n    uVar15 = uVar15 ^ uVar18;\n    uVar14 = uVar14 ^ uVar25;\n    uVar16 = uVar16 ^ uVar21;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar6 = uVar6 + uVar11;\n    local_5c[1] = uVar27 + uVar15;\n    local_5c[2] = uVar26 + uVar14;\n    local_5c[3] = uVar19 + uVar16;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ local_5c[1];\n    uVar13 = uVar13 ^ local_5c[2];\n    uVar10 = uVar10 ^ local_5c[3];\n    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;\n    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;\n    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    local_5c[10] = uVar20 + local_5c[0xf];\n    local_5c[0xb] = uVar18 + local_5c[0xc];\n    local_5c[8] = uVar25 + local_5c[0xd];\n    local_5c[9] = uVar21 + local_5c[0xe];\n    iVar17 = iVar17 + -1;\n    uVar11 = uVar11 ^ local_5c[10];\n    uVar15 = uVar15 ^ local_5c[0xb];\n    uVar14 = uVar14 ^ local_5c[8];\n    uVar16 = uVar16 ^ local_5c[9];\n    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;\n    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;\n    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;\n  } while (iVar17 != 0);\n  local_5c[0] = uVar6;\n  puVar4 = puVar7;\n  puVar5 = param_1;\n  while( true ) {\n    uVar8 = *puVar5;\n    puVar24 = puVar4 + 1;\n    puVar5 = puVar5 + 1;\n    *puVar4 = uVar8 + uVar6;\n    puVar4 = puVar7;\n    puVar23 = param_1 + 0x10;\n    if (&local_1c == puVar24) break;\n    uVar6 = *puVar24;\n    puVar4 = puVar24;\n  }\n  do {\n    uVar6 = *puVar4;\n    puVar4 = puVar4 + 1;\n    *(char *)puVar23 = (char)uVar6;\n    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);\n    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);\n    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);\n    puVar2 = PTR_smemclr_00111398;\n    puVar23 = puVar23 + 1;\n  } while (&local_1c != puVar4);\n  pbVar9 = &DAT_00000040;\n  param_1[0x20] = 0;\n  (*(code *)puVar2)();\n  uVar6 = param_1[0xc];\n  param_1[0xc] = uVar6 + 1;\n  if (uVar6 + 1 == 0) {\n    param_1[0xd] = param_1[0xd] + 1;\n  }\n  if (local_1c == *(uint *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  if (puVar24 == (uint *)0x0) {\n    return;\n  }\n  uVar6 = puVar7[0x20];\n  bVar1 = (int)uVar6 < 0x40;\nLAB_0006c064:\n  do {\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_0006bcbc(uint *param_1)" identifier (parameter_list "(uint *param_1)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  byte *pbVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  byte *pbVar22;\n  uint *puVar23;\n  uint *puVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint local_5c [16];\n  uint local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00112630;\n  puVar7 = local_5c;\n  local_1c = *(uint *)PTR___stack_chk_guard_00112630;\n  puVar4 = param_1;\n  puVar5 = puVar7;\n  do {\n    uVar13 = *puVar4;\n    uVar10 = puVar4[1];\n    uVar8 = puVar4[2];\n    uVar6 = puVar4[3];\n    puVar4 = puVar4 + 4;\n    *puVar5 = uVar13;\n    puVar5[1] = uVar10;\n    puVar5[2] = uVar8;\n    puVar5[3] = uVar6;\n    puVar5 = puVar5 + 4;\n  } while (puVar4 != param_1 + 0x10);\n  iVar17 = 10;\n  uVar6 = local_5c[0];\n  do {\n    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];\n    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];\n    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];\n    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];\n    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar25 = uVar12 + local_5c[8];\n    uVar21 = uVar13 + local_5c[9];\n    uVar20 = uVar10 + local_5c[10];\n    uVar18 = uVar8 + local_5c[0xb];\n    uVar16 = uVar25 ^ local_5c[4];\n    uVar11 = uVar21 ^ local_5c[5];\n    uVar15 = uVar20 ^ local_5c[6];\n    uVar14 = uVar18 ^ local_5c[7];\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar6 = local_5c[4] + uVar6 + uVar16;\n    uVar27 = local_5c[1] + local_5c[5] + uVar11;\n    uVar26 = local_5c[6] + local_5c[2] + uVar15;\n    uVar19 = local_5c[7] + local_5c[3] + uVar14;\n    uVar12 = uVar12 ^ uVar6;\n    uVar13 = uVar13 ^ uVar27;\n    uVar10 = uVar10 ^ uVar26;\n    uVar8 = uVar8 ^ uVar19;\n    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;\n    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar25 = uVar25 + uVar12;\n    uVar21 = uVar21 + uVar13;\n    uVar20 = uVar20 + uVar10;\n    uVar18 = uVar18 + uVar8;\n    uVar16 = uVar16 ^ uVar25;\n    uVar11 = uVar11 ^ uVar21;\n    uVar15 = uVar15 ^ uVar20;\n    uVar14 = uVar14 ^ uVar18;\n    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;\n    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;\n    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar6 = uVar6 + uVar11;\n    uVar27 = uVar27 + uVar15;\n    uVar26 = uVar26 + uVar14;\n    uVar19 = uVar16 + uVar19;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ uVar27;\n    uVar13 = uVar13 ^ uVar26;\n    uVar10 = uVar10 ^ uVar19;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar20 = uVar20 + uVar8;\n    uVar18 = uVar18 + uVar12;\n    uVar25 = uVar25 + uVar13;\n    uVar21 = uVar21 + uVar10;\n    uVar11 = uVar11 ^ uVar20;\n    uVar15 = uVar15 ^ uVar18;\n    uVar14 = uVar14 ^ uVar25;\n    uVar16 = uVar16 ^ uVar21;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar6 = uVar6 + uVar11;\n    local_5c[1] = uVar27 + uVar15;\n    local_5c[2] = uVar26 + uVar14;\n    local_5c[3] = uVar19 + uVar16;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ local_5c[1];\n    uVar13 = uVar13 ^ local_5c[2];\n    uVar10 = uVar10 ^ local_5c[3];\n    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;\n    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;\n    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    local_5c[10] = uVar20 + local_5c[0xf];\n    local_5c[0xb] = uVar18 + local_5c[0xc];\n    local_5c[8] = uVar25 + local_5c[0xd];\n    local_5c[9] = uVar21 + local_5c[0xe];\n    iVar17 = iVar17 + -1;\n    uVar11 = uVar11 ^ local_5c[10];\n    uVar15 = uVar15 ^ local_5c[0xb];\n    uVar14 = uVar14 ^ local_5c[8];\n    uVar16 = uVar16 ^ local_5c[9];\n    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;\n    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;\n    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;\n  } while (iVar17 != 0);\n  local_5c[0] = uVar6;\n  puVar4 = puVar7;\n  puVar5 = param_1;\n  while( true ) {\n    uVar8 = *puVar5;\n    puVar24 = puVar4 + 1;\n    puVar5 = puVar5 + 1;\n    *puVar4 = uVar8 + uVar6;\n    puVar4 = puVar7;\n    puVar23 = param_1 + 0x10;\n    if (&local_1c == puVar24) break;\n    uVar6 = *puVar24;\n    puVar4 = puVar24;\n  }\n  do {\n    uVar6 = *puVar4;\n    puVar4 = puVar4 + 1;\n    *(char *)puVar23 = (char)uVar6;\n    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);\n    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);\n    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);\n    puVar2 = PTR_smemclr_00111398;\n    puVar23 = puVar23 + 1;\n  } while (&local_1c != puVar4);\n  pbVar9 = &DAT_00000040;\n  param_1[0x20] = 0;\n  (*(code *)puVar2)();\n  uVar6 = param_1[0xc];\n  param_1[0xc] = uVar6 + 1;\n  if (uVar6 + 1 == 0) {\n    param_1[0xd] = param_1[0xd] + 1;\n  }\n  if (local_1c == *(uint *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  if (puVar24 == (uint *)0x0) {\n    return;\n  }\n  uVar6 = puVar7[0x20];\n  bVar1 = (int)uVar6 < 0x40;\nLAB_0006c064:\n  do {\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  } while( true );\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type 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 "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "uint *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "uint local_5c [16];" type_identifier (array_declarator "local_5c [16]" identifier [ number_literal ]) ;) (declaration "uint local_1c;" type_identifier identifier ;) (expression_statement "puVar3 = PTR___stack_chk_guard_00112630;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00112630" identifier = identifier) ;) (expression_statement "puVar7 = local_5c;" (assignment_expression "puVar7 = local_5c" identifier = identifier) ;) (expression_statement "local_1c = *(uint *)PTR___stack_chk_guard_00112630;" (assignment_expression "local_1c = *(uint *)PTR___stack_chk_guard_00112630" identifier = (pointer_expression "*(uint *)PTR___stack_chk_guard_00112630" * (cast_expression "(uint *)PTR___stack_chk_guard_00112630" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar4 = param_1;" (assignment_expression "puVar4 = param_1" identifier = identifier) ;) (expression_statement "puVar5 = puVar7;" (assignment_expression "puVar5 = puVar7" identifier = identifier) ;) (do_statement "do {\n    uVar13 = *puVar4;\n    uVar10 = puVar4[1];\n    uVar8 = puVar4[2];\n    uVar6 = puVar4[3];\n    puVar4 = puVar4 + 4;\n    *puVar5 = uVar13;\n    puVar5[1] = uVar10;\n    puVar5[2] = uVar8;\n    puVar5[3] = uVar6;\n    puVar5 = puVar5 + 4;\n  } while (puVar4 != param_1 + 0x10);" do (compound_statement "{\n    uVar13 = *puVar4;\n    uVar10 = puVar4[1];\n    uVar8 = puVar4[2];\n    uVar6 = puVar4[3];\n    puVar4 = puVar4 + 4;\n    *puVar5 = uVar13;\n    puVar5[1] = uVar10;\n    puVar5[2] = uVar8;\n    puVar5[3] = uVar6;\n    puVar5 = puVar5 + 4;\n  }" { (expression_statement "uVar13 = *puVar4;" (assignment_expression "uVar13 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "uVar10 = puVar4[1];" (assignment_expression "uVar10 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar4[2];" (assignment_expression "uVar8 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar4[3];" (assignment_expression "uVar6 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "puVar4 = puVar4 + 4;" (assignment_expression "puVar4 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (expression_statement "*puVar5 = uVar13;" (assignment_expression "*puVar5 = uVar13" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = uVar10;" (assignment_expression "puVar5[1] = uVar10" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = uVar8;" (assignment_expression "puVar5[2] = uVar8" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = uVar6;" (assignment_expression "puVar5[3] = uVar6" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = puVar5 + 4;" (assignment_expression "puVar5 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar4 != param_1 + 0x10)" ( (binary_expression "puVar4 != param_1 + 0x10" identifier != (binary_expression "param_1 + 0x10" identifier + number_literal)) )) ;) (expression_statement "iVar17 = 10;" (assignment_expression "iVar17 = 10" identifier = number_literal) ;) (expression_statement "uVar6 = local_5c[0];" (assignment_expression "uVar6 = local_5c[0]" identifier = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) (do_statement "do {\n    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];\n    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];\n    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];\n    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];\n    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar25 = uVar12 + local_5c[8];\n    uVar21 = uVar13 + local_5c[9];\n    uVar20 = uVar10 + local_5c[10];\n    uVar18 = uVar8 + local_5c[0xb];\n    uVar16 = uVar25 ^ local_5c[4];\n    uVar11 = uVar21 ^ local_5c[5];\n    uVar15 = uVar20 ^ local_5c[6];\n    uVar14 = uVar18 ^ local_5c[7];\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar6 = local_5c[4] + uVar6 + uVar16;\n    uVar27 = local_5c[1] + local_5c[5] + uVar11;\n    uVar26 = local_5c[6] + local_5c[2] + uVar15;\n    uVar19 = local_5c[7] + local_5c[3] + uVar14;\n    uVar12 = uVar12 ^ uVar6;\n    uVar13 = uVar13 ^ uVar27;\n    uVar10 = uVar10 ^ uVar26;\n    uVar8 = uVar8 ^ uVar19;\n    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;\n    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar25 = uVar25 + uVar12;\n    uVar21 = uVar21 + uVar13;\n    uVar20 = uVar20 + uVar10;\n    uVar18 = uVar18 + uVar8;\n    uVar16 = uVar16 ^ uVar25;\n    uVar11 = uVar11 ^ uVar21;\n    uVar15 = uVar15 ^ uVar20;\n    uVar14 = uVar14 ^ uVar18;\n    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;\n    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;\n    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar6 = uVar6 + uVar11;\n    uVar27 = uVar27 + uVar15;\n    uVar26 = uVar26 + uVar14;\n    uVar19 = uVar16 + uVar19;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ uVar27;\n    uVar13 = uVar13 ^ uVar26;\n    uVar10 = uVar10 ^ uVar19;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar20 = uVar20 + uVar8;\n    uVar18 = uVar18 + uVar12;\n    uVar25 = uVar25 + uVar13;\n    uVar21 = uVar21 + uVar10;\n    uVar11 = uVar11 ^ uVar20;\n    uVar15 = uVar15 ^ uVar18;\n    uVar14 = uVar14 ^ uVar25;\n    uVar16 = uVar16 ^ uVar21;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar6 = uVar6 + uVar11;\n    local_5c[1] = uVar27 + uVar15;\n    local_5c[2] = uVar26 + uVar14;\n    local_5c[3] = uVar19 + uVar16;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ local_5c[1];\n    uVar13 = uVar13 ^ local_5c[2];\n    uVar10 = uVar10 ^ local_5c[3];\n    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;\n    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;\n    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    local_5c[10] = uVar20 + local_5c[0xf];\n    local_5c[0xb] = uVar18 + local_5c[0xc];\n    local_5c[8] = uVar25 + local_5c[0xd];\n    local_5c[9] = uVar21 + local_5c[0xe];\n    iVar17 = iVar17 + -1;\n    uVar11 = uVar11 ^ local_5c[10];\n    uVar15 = uVar15 ^ local_5c[0xb];\n    uVar14 = uVar14 ^ local_5c[8];\n    uVar16 = uVar16 ^ local_5c[9];\n    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;\n    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;\n    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;\n  } while (iVar17 != 0);" do (compound_statement "{\n    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];\n    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];\n    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];\n    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];\n    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar25 = uVar12 + local_5c[8];\n    uVar21 = uVar13 + local_5c[9];\n    uVar20 = uVar10 + local_5c[10];\n    uVar18 = uVar8 + local_5c[0xb];\n    uVar16 = uVar25 ^ local_5c[4];\n    uVar11 = uVar21 ^ local_5c[5];\n    uVar15 = uVar20 ^ local_5c[6];\n    uVar14 = uVar18 ^ local_5c[7];\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar6 = local_5c[4] + uVar6 + uVar16;\n    uVar27 = local_5c[1] + local_5c[5] + uVar11;\n    uVar26 = local_5c[6] + local_5c[2] + uVar15;\n    uVar19 = local_5c[7] + local_5c[3] + uVar14;\n    uVar12 = uVar12 ^ uVar6;\n    uVar13 = uVar13 ^ uVar27;\n    uVar10 = uVar10 ^ uVar26;\n    uVar8 = uVar8 ^ uVar19;\n    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;\n    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar25 = uVar25 + uVar12;\n    uVar21 = uVar21 + uVar13;\n    uVar20 = uVar20 + uVar10;\n    uVar18 = uVar18 + uVar8;\n    uVar16 = uVar16 ^ uVar25;\n    uVar11 = uVar11 ^ uVar21;\n    uVar15 = uVar15 ^ uVar20;\n    uVar14 = uVar14 ^ uVar18;\n    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;\n    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;\n    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar6 = uVar6 + uVar11;\n    uVar27 = uVar27 + uVar15;\n    uVar26 = uVar26 + uVar14;\n    uVar19 = uVar16 + uVar19;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ uVar27;\n    uVar13 = uVar13 ^ uVar26;\n    uVar10 = uVar10 ^ uVar19;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar20 = uVar20 + uVar8;\n    uVar18 = uVar18 + uVar12;\n    uVar25 = uVar25 + uVar13;\n    uVar21 = uVar21 + uVar10;\n    uVar11 = uVar11 ^ uVar20;\n    uVar15 = uVar15 ^ uVar18;\n    uVar14 = uVar14 ^ uVar25;\n    uVar16 = uVar16 ^ uVar21;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar6 = uVar6 + uVar11;\n    local_5c[1] = uVar27 + uVar15;\n    local_5c[2] = uVar26 + uVar14;\n    local_5c[3] = uVar19 + uVar16;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ local_5c[1];\n    uVar13 = uVar13 ^ local_5c[2];\n    uVar10 = uVar10 ^ local_5c[3];\n    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;\n    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;\n    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    local_5c[10] = uVar20 + local_5c[0xf];\n    local_5c[0xb] = uVar18 + local_5c[0xc];\n    local_5c[8] = uVar25 + local_5c[0xd];\n    local_5c[9] = uVar21 + local_5c[0xe];\n    iVar17 = iVar17 + -1;\n    uVar11 = uVar11 ^ local_5c[10];\n    uVar15 = uVar15 ^ local_5c[0xb];\n    uVar14 = uVar14 ^ local_5c[8];\n    uVar16 = uVar16 ^ local_5c[9];\n    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;\n    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;\n    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;\n  }" { (expression_statement "uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];" (assignment_expression "uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc]" identifier = (binary_expression "local_5c[4] + uVar6 ^ local_5c[0xc]" (binary_expression "local_5c[4] + uVar6" (subscript_expression "local_5c[4]" identifier [ number_literal ]) + identifier) ^ (subscript_expression "local_5c[0xc]" identifier [ number_literal ]))) ;) (expression_statement "uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];" (assignment_expression "uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd]" identifier = (binary_expression "local_5c[1] + local_5c[5] ^ local_5c[0xd]" (binary_expression "local_5c[1] + local_5c[5]" (subscript_expression "local_5c[1]" identifier [ number_literal ]) + (subscript_expression "local_5c[5]" identifier [ number_literal ])) ^ (subscript_expression "local_5c[0xd]" identifier [ number_literal ]))) ;) (expression_statement "uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];" (assignment_expression "uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe]" identifier = (binary_expression "local_5c[6] + local_5c[2] ^ local_5c[0xe]" (binary_expression "local_5c[6] + local_5c[2]" (subscript_expression "local_5c[6]" identifier [ number_literal ]) + (subscript_expression "local_5c[2]" identifier [ number_literal ])) ^ (subscript_expression "local_5c[0xe]" identifier [ number_literal ]))) ;) (expression_statement "uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];" (assignment_expression "uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf]" identifier = (binary_expression "local_5c[7] + local_5c[3] ^ local_5c[0xf]" (binary_expression "local_5c[7] + local_5c[3]" (subscript_expression "local_5c[7]" identifier [ number_literal ]) + (subscript_expression "local_5c[3]" identifier [ number_literal ])) ^ (subscript_expression "local_5c[0xf]" identifier [ number_literal ]))) ;) (expression_statement "uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;" (assignment_expression "uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000" identifier = (binary_expression "(uVar11 >> 0x10) + uVar11 * 0x10000" (parenthesized_expression "(uVar11 >> 0x10)" ( (binary_expression "uVar11 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar11 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;" (assignment_expression "uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000" identifier = (binary_expression "(uVar13 >> 0x10) + uVar13 * 0x10000" (parenthesized_expression "(uVar13 >> 0x10)" ( (binary_expression "uVar13 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar13 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;" (assignment_expression "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000" identifier = (binary_expression "(uVar10 >> 0x10) + uVar10 * 0x10000" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar10 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;" (assignment_expression "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000" identifier = (binary_expression "(uVar8 >> 0x10) + uVar8 * 0x10000" (parenthesized_expression "(uVar8 >> 0x10)" ( (binary_expression "uVar8 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar8 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar25 = uVar12 + local_5c[8];" (assignment_expression "uVar25 = uVar12 + local_5c[8]" identifier = (binary_expression "uVar12 + local_5c[8]" identifier + (subscript_expression "local_5c[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar21 = uVar13 + local_5c[9];" (assignment_expression "uVar21 = uVar13 + local_5c[9]" identifier = (binary_expression "uVar13 + local_5c[9]" identifier + (subscript_expression "local_5c[9]" identifier [ number_literal ]))) ;) (expression_statement "uVar20 = uVar10 + local_5c[10];" (assignment_expression "uVar20 = uVar10 + local_5c[10]" identifier = (binary_expression "uVar10 + local_5c[10]" identifier + (subscript_expression "local_5c[10]" identifier [ number_literal ]))) ;) (expression_statement "uVar18 = uVar8 + local_5c[0xb];" (assignment_expression "uVar18 = uVar8 + local_5c[0xb]" identifier = (binary_expression "uVar8 + local_5c[0xb]" identifier + (subscript_expression "local_5c[0xb]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = uVar25 ^ local_5c[4];" (assignment_expression "uVar16 = uVar25 ^ local_5c[4]" identifier = (binary_expression "uVar25 ^ local_5c[4]" identifier ^ (subscript_expression "local_5c[4]" identifier [ number_literal ]))) ;) (expression_statement "uVar11 = uVar21 ^ local_5c[5];" (assignment_expression "uVar11 = uVar21 ^ local_5c[5]" identifier = (binary_expression "uVar21 ^ local_5c[5]" identifier ^ (subscript_expression "local_5c[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar15 = uVar20 ^ local_5c[6];" (assignment_expression "uVar15 = uVar20 ^ local_5c[6]" identifier = (binary_expression "uVar20 ^ local_5c[6]" identifier ^ (subscript_expression "local_5c[6]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = uVar18 ^ local_5c[7];" (assignment_expression "uVar14 = uVar18 ^ local_5c[7]" identifier = (binary_expression "uVar18 ^ local_5c[7]" identifier ^ (subscript_expression "local_5c[7]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;" (assignment_expression "uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000" identifier = (binary_expression "(uVar16 >> 0x14) + uVar16 * 0x1000" (parenthesized_expression "(uVar16 >> 0x14)" ( (binary_expression "uVar16 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar16 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;" (assignment_expression "uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000" identifier = (binary_expression "(uVar11 >> 0x14) + uVar11 * 0x1000" (parenthesized_expression "(uVar11 >> 0x14)" ( (binary_expression "uVar11 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar11 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;" (assignment_expression "uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000" identifier = (binary_expression "(uVar15 >> 0x14) + uVar15 * 0x1000" (parenthesized_expression "(uVar15 >> 0x14)" ( (binary_expression "uVar15 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar15 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;" (assignment_expression "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000" identifier = (binary_expression "(uVar14 >> 0x14) + uVar14 * 0x1000" (parenthesized_expression "(uVar14 >> 0x14)" ( (binary_expression "uVar14 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar14 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar6 = local_5c[4] + uVar6 + uVar16;" (assignment_expression "uVar6 = local_5c[4] + uVar6 + uVar16" identifier = (binary_expression "local_5c[4] + uVar6 + uVar16" (binary_expression "local_5c[4] + uVar6" (subscript_expression "local_5c[4]" identifier [ number_literal ]) + identifier) + identifier)) ;) (expression_statement "uVar27 = local_5c[1] + local_5c[5] + uVar11;" (assignment_expression "uVar27 = local_5c[1] + local_5c[5] + uVar11" identifier = (binary_expression "local_5c[1] + local_5c[5] + uVar11" (binary_expression "local_5c[1] + local_5c[5]" (subscript_expression "local_5c[1]" identifier [ number_literal ]) + (subscript_expression "local_5c[5]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar26 = local_5c[6] + local_5c[2] + uVar15;" (assignment_expression "uVar26 = local_5c[6] + local_5c[2] + uVar15" identifier = (binary_expression "local_5c[6] + local_5c[2] + uVar15" (binary_expression "local_5c[6] + local_5c[2]" (subscript_expression "local_5c[6]" identifier [ number_literal ]) + (subscript_expression "local_5c[2]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar19 = local_5c[7] + local_5c[3] + uVar14;" (assignment_expression "uVar19 = local_5c[7] + local_5c[3] + uVar14" identifier = (binary_expression "local_5c[7] + local_5c[3] + uVar14" (binary_expression "local_5c[7] + local_5c[3]" (subscript_expression "local_5c[7]" identifier [ number_literal ]) + (subscript_expression "local_5c[3]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "uVar12 = uVar12 ^ uVar6;" (assignment_expression "uVar12 = uVar12 ^ uVar6" identifier = (binary_expression "uVar12 ^ uVar6" identifier ^ identifier)) ;) (expression_statement "uVar13 = uVar13 ^ uVar27;" (assignment_expression "uVar13 = uVar13 ^ uVar27" identifier = (binary_expression "uVar13 ^ uVar27" identifier ^ identifier)) ;) (expression_statement "uVar10 = uVar10 ^ uVar26;" (assignment_expression "uVar10 = uVar10 ^ uVar26" identifier = (binary_expression "uVar10 ^ uVar26" identifier ^ identifier)) ;) (expression_statement "uVar8 = uVar8 ^ uVar19;" (assignment_expression "uVar8 = uVar8 ^ uVar19" identifier = (binary_expression "uVar8 ^ uVar19" identifier ^ identifier)) ;) (expression_statement "uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;" (assignment_expression "uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100" identifier = (binary_expression "(uVar12 >> 0x18) + uVar12 * 0x100" (parenthesized_expression "(uVar12 >> 0x18)" ( (binary_expression "uVar12 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar12 * 0x100" identifier * number_literal))) ;) (expression_statement "uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;" (assignment_expression "uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100" identifier = (binary_expression "(uVar13 >> 0x18) + uVar13 * 0x100" (parenthesized_expression "(uVar13 >> 0x18)" ( (binary_expression "uVar13 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar13 * 0x100" identifier * number_literal))) ;) (expression_statement "uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;" (assignment_expression "uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100" identifier = (binary_expression "(uVar10 >> 0x18) + uVar10 * 0x100" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar10 * 0x100" identifier * number_literal))) ;) (expression_statement "uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;" (assignment_expression "uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100" identifier = (binary_expression "(uVar8 >> 0x18) + uVar8 * 0x100" (parenthesized_expression "(uVar8 >> 0x18)" ( (binary_expression "uVar8 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar8 * 0x100" identifier * number_literal))) ;) (expression_statement "uVar25 = uVar25 + uVar12;" (assignment_expression "uVar25 = uVar25 + uVar12" identifier = (binary_expression "uVar25 + uVar12" identifier + identifier)) ;) (expression_statement "uVar21 = uVar21 + uVar13;" (assignment_expression "uVar21 = uVar21 + uVar13" identifier = (binary_expression "uVar21 + uVar13" identifier + identifier)) ;) (expression_statement "uVar20 = uVar20 + uVar10;" (assignment_expression "uVar20 = uVar20 + uVar10" identifier = (binary_expression "uVar20 + uVar10" identifier + identifier)) ;) (expression_statement "uVar18 = uVar18 + uVar8;" (assignment_expression "uVar18 = uVar18 + uVar8" identifier = (binary_expression "uVar18 + uVar8" identifier + identifier)) ;) (expression_statement "uVar16 = uVar16 ^ uVar25;" (assignment_expression "uVar16 = uVar16 ^ uVar25" identifier = (binary_expression "uVar16 ^ uVar25" identifier ^ identifier)) ;) (expression_statement "uVar11 = uVar11 ^ uVar21;" (assignment_expression "uVar11 = uVar11 ^ uVar21" identifier = (binary_expression "uVar11 ^ uVar21" identifier ^ identifier)) ;) (expression_statement "uVar15 = uVar15 ^ uVar20;" (assignment_expression "uVar15 = uVar15 ^ uVar20" identifier = (binary_expression "uVar15 ^ uVar20" identifier ^ identifier)) ;) (expression_statement "uVar14 = uVar14 ^ uVar18;" (assignment_expression "uVar14 = uVar14 ^ uVar18" identifier = (binary_expression "uVar14 ^ uVar18" identifier ^ identifier)) ;) (expression_statement "uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;" (assignment_expression "uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80" identifier = (binary_expression "(uVar16 >> 0x19) + uVar16 * 0x80" (parenthesized_expression "(uVar16 >> 0x19)" ( (binary_expression "uVar16 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar16 * 0x80" identifier * number_literal))) ;) (expression_statement "uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;" (assignment_expression "uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80" identifier = (binary_expression "(uVar11 >> 0x19) + uVar11 * 0x80" (parenthesized_expression "(uVar11 >> 0x19)" ( (binary_expression "uVar11 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar11 * 0x80" identifier * number_literal))) ;) (expression_statement "uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;" (assignment_expression "uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80" identifier = (binary_expression "(uVar15 >> 0x19) + uVar15 * 0x80" (parenthesized_expression "(uVar15 >> 0x19)" ( (binary_expression "uVar15 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar15 * 0x80" identifier * number_literal))) ;) (expression_statement "uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;" (assignment_expression "uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80" identifier = (binary_expression "(uVar14 >> 0x19) + uVar14 * 0x80" (parenthesized_expression "(uVar14 >> 0x19)" ( (binary_expression "uVar14 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar14 * 0x80" identifier * number_literal))) ;) (expression_statement "uVar6 = uVar6 + uVar11;" (assignment_expression "uVar6 = uVar6 + uVar11" identifier = (binary_expression "uVar6 + uVar11" identifier + identifier)) ;) (expression_statement "uVar27 = uVar27 + uVar15;" (assignment_expression "uVar27 = uVar27 + uVar15" identifier = (binary_expression "uVar27 + uVar15" identifier + identifier)) ;) (expression_statement "uVar26 = uVar26 + uVar14;" (assignment_expression "uVar26 = uVar26 + uVar14" identifier = (binary_expression "uVar26 + uVar14" identifier + identifier)) ;) (expression_statement "uVar19 = uVar16 + uVar19;" (assignment_expression "uVar19 = uVar16 + uVar19" identifier = (binary_expression "uVar16 + uVar19" identifier + identifier)) ;) (expression_statement "uVar8 = uVar8 ^ uVar6;" (assignment_expression "uVar8 = uVar8 ^ uVar6" identifier = (binary_expression "uVar8 ^ uVar6" identifier ^ identifier)) ;) (expression_statement "uVar12 = uVar12 ^ uVar27;" (assignment_expression "uVar12 = uVar12 ^ uVar27" identifier = (binary_expression "uVar12 ^ uVar27" identifier ^ identifier)) ;) (expression_statement "uVar13 = uVar13 ^ uVar26;" (assignment_expression "uVar13 = uVar13 ^ uVar26" identifier = (binary_expression "uVar13 ^ uVar26" identifier ^ identifier)) ;) (expression_statement "uVar10 = uVar10 ^ uVar19;" (assignment_expression "uVar10 = uVar10 ^ uVar19" identifier = (binary_expression "uVar10 ^ uVar19" identifier ^ identifier)) ;) (expression_statement "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;" (assignment_expression "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000" identifier = (binary_expression "(uVar8 >> 0x10) + uVar8 * 0x10000" (parenthesized_expression "(uVar8 >> 0x10)" ( (binary_expression "uVar8 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar8 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;" (assignment_expression "uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000" identifier = (binary_expression "(uVar12 >> 0x10) + uVar12 * 0x10000" (parenthesized_expression "(uVar12 >> 0x10)" ( (binary_expression "uVar12 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar12 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;" (assignment_expression "uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000" identifier = (binary_expression "(uVar13 >> 0x10) + uVar13 * 0x10000" (parenthesized_expression "(uVar13 >> 0x10)" ( (binary_expression "uVar13 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar13 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;" (assignment_expression "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000" identifier = (binary_expression "(uVar10 >> 0x10) + uVar10 * 0x10000" (parenthesized_expression "(uVar10 >> 0x10)" ( (binary_expression "uVar10 >> 0x10" identifier >> number_literal) )) + (binary_expression "uVar10 * 0x10000" identifier * number_literal))) ;) (expression_statement "uVar20 = uVar20 + uVar8;" (assignment_expression "uVar20 = uVar20 + uVar8" identifier = (binary_expression "uVar20 + uVar8" identifier + identifier)) ;) (expression_statement "uVar18 = uVar18 + uVar12;" (assignment_expression "uVar18 = uVar18 + uVar12" identifier = (binary_expression "uVar18 + uVar12" identifier + identifier)) ;) (expression_statement "uVar25 = uVar25 + uVar13;" (assignment_expression "uVar25 = uVar25 + uVar13" identifier = (binary_expression "uVar25 + uVar13" identifier + identifier)) ;) (expression_statement "uVar21 = uVar21 + uVar10;" (assignment_expression "uVar21 = uVar21 + uVar10" identifier = (binary_expression "uVar21 + uVar10" identifier + identifier)) ;) (expression_statement "uVar11 = uVar11 ^ uVar20;" (assignment_expression "uVar11 = uVar11 ^ uVar20" identifier = (binary_expression "uVar11 ^ uVar20" identifier ^ identifier)) ;) (expression_statement "uVar15 = uVar15 ^ uVar18;" (assignment_expression "uVar15 = uVar15 ^ uVar18" identifier = (binary_expression "uVar15 ^ uVar18" identifier ^ identifier)) ;) (expression_statement "uVar14 = uVar14 ^ uVar25;" (assignment_expression "uVar14 = uVar14 ^ uVar25" identifier = (binary_expression "uVar14 ^ uVar25" identifier ^ identifier)) ;) (expression_statement "uVar16 = uVar16 ^ uVar21;" (assignment_expression "uVar16 = uVar16 ^ uVar21" identifier = (binary_expression "uVar16 ^ uVar21" identifier ^ identifier)) ;) (expression_statement "uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;" (assignment_expression "uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000" identifier = (binary_expression "(uVar11 >> 0x14) + uVar11 * 0x1000" (parenthesized_expression "(uVar11 >> 0x14)" ( (binary_expression "uVar11 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar11 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;" (assignment_expression "uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000" identifier = (binary_expression "(uVar15 >> 0x14) + uVar15 * 0x1000" (parenthesized_expression "(uVar15 >> 0x14)" ( (binary_expression "uVar15 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar15 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;" (assignment_expression "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000" identifier = (binary_expression "(uVar14 >> 0x14) + uVar14 * 0x1000" (parenthesized_expression "(uVar14 >> 0x14)" ( (binary_expression "uVar14 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar14 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;" (assignment_expression "uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000" identifier = (binary_expression "(uVar16 >> 0x14) + uVar16 * 0x1000" (parenthesized_expression "(uVar16 >> 0x14)" ( (binary_expression "uVar16 >> 0x14" identifier >> number_literal) )) + (binary_expression "uVar16 * 0x1000" identifier * number_literal))) ;) (expression_statement "uVar6 = uVar6 + uVar11;" (assignment_expression "uVar6 = uVar6 + uVar11" identifier = (binary_expression "uVar6 + uVar11" identifier + identifier)) ;) (expression_statement "local_5c[1] = uVar27 + uVar15;" (assignment_expression "local_5c[1] = uVar27 + uVar15" (subscript_expression "local_5c[1]" identifier [ number_literal ]) = (binary_expression "uVar27 + uVar15" identifier + identifier)) ;) (expression_statement "local_5c[2] = uVar26 + uVar14;" (assignment_expression "local_5c[2] = uVar26 + uVar14" (subscript_expression "local_5c[2]" identifier [ number_literal ]) = (binary_expression "uVar26 + uVar14" identifier + identifier)) ;) (expression_statement "local_5c[3] = uVar19 + uVar16;" (assignment_expression "local_5c[3] = uVar19 + uVar16" (subscript_expression "local_5c[3]" identifier [ number_literal ]) = (binary_expression "uVar19 + uVar16" identifier + identifier)) ;) (expression_statement "uVar8 = uVar8 ^ uVar6;" (assignment_expression "uVar8 = uVar8 ^ uVar6" identifier = (binary_expression "uVar8 ^ uVar6" identifier ^ identifier)) ;) (expression_statement "uVar12 = uVar12 ^ local_5c[1];" (assignment_expression "uVar12 = uVar12 ^ local_5c[1]" identifier = (binary_expression "uVar12 ^ local_5c[1]" identifier ^ (subscript_expression "local_5c[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar13 = uVar13 ^ local_5c[2];" (assignment_expression "uVar13 = uVar13 ^ local_5c[2]" identifier = (binary_expression "uVar13 ^ local_5c[2]" identifier ^ (subscript_expression "local_5c[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar10 = uVar10 ^ local_5c[3];" (assignment_expression "uVar10 = uVar10 ^ local_5c[3]" identifier = (binary_expression "uVar10 ^ local_5c[3]" identifier ^ (subscript_expression "local_5c[3]" identifier [ number_literal ]))) ;) (expression_statement "local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;" (assignment_expression "local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100" (subscript_expression "local_5c[0xf]" identifier [ number_literal ]) = (binary_expression "(uVar8 >> 0x18) + uVar8 * 0x100" (parenthesized_expression "(uVar8 >> 0x18)" ( (binary_expression "uVar8 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar8 * 0x100" identifier * number_literal))) ;) (expression_statement "local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;" (assignment_expression "local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100" (subscript_expression "local_5c[0xc]" identifier [ number_literal ]) = (binary_expression "(uVar12 >> 0x18) + uVar12 * 0x100" (parenthesized_expression "(uVar12 >> 0x18)" ( (binary_expression "uVar12 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar12 * 0x100" identifier * number_literal))) ;) (expression_statement "local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;" (assignment_expression "local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100" (subscript_expression "local_5c[0xd]" identifier [ number_literal ]) = (binary_expression "(uVar13 >> 0x18) + uVar13 * 0x100" (parenthesized_expression "(uVar13 >> 0x18)" ( (binary_expression "uVar13 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar13 * 0x100" identifier * number_literal))) ;) (expression_statement "local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;" (assignment_expression "local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100" (subscript_expression "local_5c[0xe]" identifier [ number_literal ]) = (binary_expression "(uVar10 >> 0x18) + uVar10 * 0x100" (parenthesized_expression "(uVar10 >> 0x18)" ( (binary_expression "uVar10 >> 0x18" identifier >> number_literal) )) + (binary_expression "uVar10 * 0x100" identifier * number_literal))) ;) (expression_statement "local_5c[10] = uVar20 + local_5c[0xf];" (assignment_expression "local_5c[10] = uVar20 + local_5c[0xf]" (subscript_expression "local_5c[10]" identifier [ number_literal ]) = (binary_expression "uVar20 + local_5c[0xf]" identifier + (subscript_expression "local_5c[0xf]" identifier [ number_literal ]))) ;) (expression_statement "local_5c[0xb] = uVar18 + local_5c[0xc];" (assignment_expression "local_5c[0xb] = uVar18 + local_5c[0xc]" (subscript_expression "local_5c[0xb]" identifier [ number_literal ]) = (binary_expression "uVar18 + local_5c[0xc]" identifier + (subscript_expression "local_5c[0xc]" identifier [ number_literal ]))) ;) (expression_statement "local_5c[8] = uVar25 + local_5c[0xd];" (assignment_expression "local_5c[8] = uVar25 + local_5c[0xd]" (subscript_expression "local_5c[8]" identifier [ number_literal ]) = (binary_expression "uVar25 + local_5c[0xd]" identifier + (subscript_expression "local_5c[0xd]" identifier [ number_literal ]))) ;) (expression_statement "local_5c[9] = uVar21 + local_5c[0xe];" (assignment_expression "local_5c[9] = uVar21 + local_5c[0xe]" (subscript_expression "local_5c[9]" identifier [ number_literal ]) = (binary_expression "uVar21 + local_5c[0xe]" identifier + (subscript_expression "local_5c[0xe]" identifier [ number_literal ]))) ;) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "uVar11 = uVar11 ^ local_5c[10];" (assignment_expression "uVar11 = uVar11 ^ local_5c[10]" identifier = (binary_expression "uVar11 ^ local_5c[10]" identifier ^ (subscript_expression "local_5c[10]" identifier [ number_literal ]))) ;) (expression_statement "uVar15 = uVar15 ^ local_5c[0xb];" (assignment_expression "uVar15 = uVar15 ^ local_5c[0xb]" identifier = (binary_expression "uVar15 ^ local_5c[0xb]" identifier ^ (subscript_expression "local_5c[0xb]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = uVar14 ^ local_5c[8];" (assignment_expression "uVar14 = uVar14 ^ local_5c[8]" identifier = (binary_expression "uVar14 ^ local_5c[8]" identifier ^ (subscript_expression "local_5c[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = uVar16 ^ local_5c[9];" (assignment_expression "uVar16 = uVar16 ^ local_5c[9]" identifier = (binary_expression "uVar16 ^ local_5c[9]" identifier ^ (subscript_expression "local_5c[9]" identifier [ number_literal ]))) ;) (expression_statement "local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;" (assignment_expression "local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80" (subscript_expression "local_5c[5]" identifier [ number_literal ]) = (binary_expression "(uVar11 >> 0x19) + uVar11 * 0x80" (parenthesized_expression "(uVar11 >> 0x19)" ( (binary_expression "uVar11 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar11 * 0x80" identifier * number_literal))) ;) (expression_statement "local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;" (assignment_expression "local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80" (subscript_expression "local_5c[6]" identifier [ number_literal ]) = (binary_expression "(uVar15 >> 0x19) + uVar15 * 0x80" (parenthesized_expression "(uVar15 >> 0x19)" ( (binary_expression "uVar15 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar15 * 0x80" identifier * number_literal))) ;) (expression_statement "local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;" (assignment_expression "local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80" (subscript_expression "local_5c[7]" identifier [ number_literal ]) = (binary_expression "(uVar14 >> 0x19) + uVar14 * 0x80" (parenthesized_expression "(uVar14 >> 0x19)" ( (binary_expression "uVar14 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar14 * 0x80" identifier * number_literal))) ;) (expression_statement "local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;" (assignment_expression "local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80" (subscript_expression "local_5c[4]" identifier [ number_literal ]) = (binary_expression "(uVar16 >> 0x19) + uVar16 * 0x80" (parenthesized_expression "(uVar16 >> 0x19)" ( (binary_expression "uVar16 >> 0x19" identifier >> number_literal) )) + (binary_expression "uVar16 * 0x80" identifier * number_literal))) ;) }) while (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) ;) (expression_statement "local_5c[0] = uVar6;" (assignment_expression "local_5c[0] = uVar6" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" identifier = identifier) ;) (expression_statement "puVar5 = param_1;" (assignment_expression "puVar5 = param_1" identifier = identifier) ;) (while_statement "while( true ) {\n    uVar8 = *puVar5;\n    puVar24 = puVar4 + 1;\n    puVar5 = puVar5 + 1;\n    *puVar4 = uVar8 + uVar6;\n    puVar4 = puVar7;\n    puVar23 = param_1 + 0x10;\n    if (&local_1c == puVar24) break;\n    uVar6 = *puVar24;\n    puVar4 = puVar24;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar8 = *puVar5;\n    puVar24 = puVar4 + 1;\n    puVar5 = puVar5 + 1;\n    *puVar4 = uVar8 + uVar6;\n    puVar4 = puVar7;\n    puVar23 = param_1 + 0x10;\n    if (&local_1c == puVar24) break;\n    uVar6 = *puVar24;\n    puVar4 = puVar24;\n  }" { (expression_statement "uVar8 = *puVar5;" (assignment_expression "uVar8 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar24 = puVar4 + 1;" (assignment_expression "puVar24 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (expression_statement "*puVar4 = uVar8 + uVar6;" (assignment_expression "*puVar4 = uVar8 + uVar6" (pointer_expression "*puVar4" * identifier) = (binary_expression "uVar8 + uVar6" identifier + identifier)) ;) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" identifier = identifier) ;) (expression_statement "puVar23 = param_1 + 0x10;" (assignment_expression "puVar23 = param_1 + 0x10" identifier = (binary_expression "param_1 + 0x10" identifier + number_literal)) ;) (if_statement "if (&local_1c == puVar24) break;" if (parenthesized_expression "(&local_1c == puVar24)" ( (binary_expression "&local_1c == puVar24" (pointer_expression "&local_1c" & identifier) == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = *puVar24;" (assignment_expression "uVar6 = *puVar24" identifier = (pointer_expression "*puVar24" * identifier)) ;) (expression_statement "puVar4 = puVar24;" (assignment_expression "puVar4 = puVar24" identifier = identifier) ;) })) (do_statement "do {\n    uVar6 = *puVar4;\n    puVar4 = puVar4 + 1;\n    *(char *)puVar23 = (char)uVar6;\n    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);\n    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);\n    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);\n    puVar2 = PTR_smemclr_00111398;\n    puVar23 = puVar23 + 1;\n  } while (&local_1c != puVar4);" do (compound_statement "{\n    uVar6 = *puVar4;\n    puVar4 = puVar4 + 1;\n    *(char *)puVar23 = (char)uVar6;\n    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);\n    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);\n    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);\n    puVar2 = PTR_smemclr_00111398;\n    puVar23 = puVar23 + 1;\n  }" { (expression_statement "uVar6 = *puVar4;" (assignment_expression "uVar6 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "*(char *)puVar23 = (char)uVar6;" (assignment_expression "*(char *)puVar23 = (char)uVar6" (pointer_expression "*(char *)puVar23" * (cast_expression "(char *)puVar23" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(char)uVar6" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);" (assignment_expression "*(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8)" (pointer_expression "*(char *)((int)puVar23 + 1)" * (cast_expression "(char *)((int)puVar23 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 1)" ( (binary_expression "(int)puVar23 + 1" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)(uVar6 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar6 >> 8)" ( (binary_expression "uVar6 >> 8" identifier >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);" (assignment_expression "*(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10)" (pointer_expression "*(char *)((int)puVar23 + 2)" * (cast_expression "(char *)((int)puVar23 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 2)" ( (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)(uVar6 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar6 >> 0x10)" ( (binary_expression "uVar6 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "*(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);" (assignment_expression "*(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18)" (pointer_expression "*(char *)((int)puVar23 + 3)" * (cast_expression "(char *)((int)puVar23 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 + 3)" ( (binary_expression "(int)puVar23 + 3" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)(uVar6 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar6 >> 0x18)" ( (binary_expression "uVar6 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "puVar2 = PTR_smemclr_00111398;" (assignment_expression "puVar2 = PTR_smemclr_00111398" identifier = identifier) ;) (expression_statement "puVar23 = puVar23 + 1;" (assignment_expression "puVar23 = puVar23 + 1" identifier = (binary_expression "puVar23 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(&local_1c != puVar4)" ( (binary_expression "&local_1c != puVar4" (pointer_expression "&local_1c" & identifier) != identifier) )) ;) (expression_statement "pbVar9 = &DAT_00000040;" (assignment_expression "pbVar9 = &DAT_00000040" identifier = (pointer_expression "&DAT_00000040" & identifier)) ;) (expression_statement "param_1[0x20] = 0;" (assignment_expression "param_1[0x20] = 0" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)puVar2)();" (call_expression "(*(code *)puVar2)()" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar6 = param_1[0xc];" (assignment_expression "uVar6 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xc] = uVar6 + 1;" (assignment_expression "param_1[0xc] = uVar6 + 1" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (if_statement "if (uVar6 + 1 == 0) {\n    param_1[0xd] = param_1[0xd] + 1;\n  }" if (parenthesized_expression "(uVar6 + 1 == 0)" ( (binary_expression "uVar6 + 1 == 0" (binary_expression "uVar6 + 1" identifier + number_literal) == number_literal) )) (compound_statement "{\n    param_1[0xd] = param_1[0xd] + 1;\n  }" { (expression_statement "param_1[0xd] = param_1[0xd] + 1;" (assignment_expression "param_1[0xd] = param_1[0xd] + 1" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) = (binary_expression "param_1[0xd] + 1" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) + number_literal)) ;) })) (if_statement "if (local_1c == *(uint *)puVar3) {\n    return;\n  }" if (parenthesized_expression "(local_1c == *(uint *)puVar3)" ( (binary_expression "local_1c == *(uint *)puVar3" identifier == (pointer_expression "*(uint *)puVar3" * (cast_expression "(uint *)puVar3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_001122c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_001122c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001122c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001122c8" * (cast_expression "(code *)PTR___stack_chk_fail_001122c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (puVar24 == (uint *)0x0) {\n    return;\n  }" if (parenthesized_expression "(puVar24 == (uint *)0x0)" ( (binary_expression "puVar24 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar6 = puVar7[0x20];" (assignment_expression "uVar6 = puVar7[0x20]" identifier = (subscript_expression "puVar7[0x20]" identifier [ number_literal ])) ;) (expression_statement "bVar1 = (int)uVar6 < 0x40;" (assignment_expression "bVar1 = (int)uVar6 < 0x40" identifier = (binary_expression "(int)uVar6 < 0x40" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (labeled_statement "LAB_0006c064:\n  do {\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  }" { (expression_statement "pbVar22 = pbVar9;" (assignment_expression "pbVar22 = pbVar9" identifier = identifier) ;) (if_statement "if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }" { (expression_statement "FUN_0006bcbc(puVar7);" (call_expression "FUN_0006bcbc(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;) (expression_statement "uVar6 = puVar7[0x20];" (assignment_expression "uVar6 = puVar7[0x20]" identifier = (subscript_expression "puVar7[0x20]" identifier [ number_literal ])) ;) (expression_statement "bVar1 = (int)uVar6 < 0x40;" (assignment_expression "bVar1 = (int)uVar6 < 0x40" identifier = (binary_expression "(int)uVar6 < 0x40" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (if_statement "if (!bVar1) goto LAB_0006c064;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (goto_statement "goto LAB_0006c064;" goto statement_identifier ;)) })) (while_statement "while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }" { (expression_statement "pbVar9 = pbVar22 + 1;" (assignment_expression "pbVar9 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "puVar7[0x20] = uVar6 + 1;" (assignment_expression "puVar7[0x20] = uVar6 + 1" (subscript_expression "puVar7[0x20]" identifier [ number_literal ]) = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);" (assignment_expression "*pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40)" (pointer_expression "*pbVar22" * identifier) = (binary_expression "*pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40)" (pointer_expression "*pbVar22" * identifier) ^ (pointer_expression "*(byte *)((int)puVar7 + uVar6 + 0x40)" * (cast_expression "(byte *)((int)puVar7 + uVar6 + 0x40)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + uVar6 + 0x40)" ( (binary_expression "(int)puVar7 + uVar6 + 0x40" (binary_expression "(int)puVar7 + uVar6" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))))) ;) (expression_statement "uVar6 = puVar7[0x20];" (assignment_expression "uVar6 = puVar7[0x20]" identifier = (subscript_expression "puVar7[0x20]" identifier [ number_literal ])) ;) (expression_statement "bVar1 = (int)uVar6 < 0x40;" (assignment_expression "bVar1 = (int)uVar6 < 0x40" identifier = (binary_expression "(int)uVar6 < 0x40" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "puVar24 = (uint *)((int)puVar24 + -1);" (assignment_expression "puVar24 = (uint *)((int)puVar24 + -1)" identifier = (cast_expression "(uint *)((int)puVar24 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar24 + -1)" ( (binary_expression "(int)puVar24 + -1" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (!bVar1) break;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar22 = pbVar9;" (assignment_expression "pbVar22 = pbVar9" identifier = identifier) ;) (if_statement "if (puVar24 == (uint *)0x0) {\n        return;\n      }" if (parenthesized_expression "(puVar24 == (uint *)0x0)" ( (binary_expression "puVar24 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) })) (if_statement "if (puVar24 == (uint *)0x0) {\n      return;\n    }" if (parenthesized_expression "(puVar24 == (uint *)0x0)" ( (binary_expression "puVar24 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) + 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 IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (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 = (binary_expression 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 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) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (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 = (binary_expression 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 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) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (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 = (binary_expression 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 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) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + (binary_expression IDENT * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) })) }) while (parenthesized_expression ( BOOL )) ;)) })))
(function_definition "void FUN_0006bcbc(uint *param_1)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  byte *pbVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  byte *pbVar22;\n  uint *puVar23;\n  uint *puVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint local_5c [16];\n  uint local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00112630;\n  puVar7 = local_5c;\n  local_1c = *(uint *)PTR___stack_chk_guard_00112630;\n  puVar4 = param_1;\n  puVar5 = puVar7;\n  do {\n    uVar13 = *puVar4;\n    uVar10 = puVar4[1];\n    uVar8 = puVar4[2];\n    uVar6 = puVar4[3];\n    puVar4 = puVar4 + 4;\n    *puVar5 = uVar13;\n    puVar5[1] = uVar10;\n    puVar5[2] = uVar8;\n    puVar5[3] = uVar6;\n    puVar5 = puVar5 + 4;\n  } while (puVar4 != param_1 + 0x10);\n  iVar17 = 10;\n  uVar6 = local_5c[0];\n  do {\n    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];\n    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];\n    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];\n    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];\n    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar25 = uVar12 + local_5c[8];\n    uVar21 = uVar13 + local_5c[9];\n    uVar20 = uVar10 + local_5c[10];\n    uVar18 = uVar8 + local_5c[0xb];\n    uVar16 = uVar25 ^ local_5c[4];\n    uVar11 = uVar21 ^ local_5c[5];\n    uVar15 = uVar20 ^ local_5c[6];\n    uVar14 = uVar18 ^ local_5c[7];\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar6 = local_5c[4] + uVar6 + uVar16;\n    uVar27 = local_5c[1] + local_5c[5] + uVar11;\n    uVar26 = local_5c[6] + local_5c[2] + uVar15;\n    uVar19 = local_5c[7] + local_5c[3] + uVar14;\n    uVar12 = uVar12 ^ uVar6;\n    uVar13 = uVar13 ^ uVar27;\n    uVar10 = uVar10 ^ uVar26;\n    uVar8 = uVar8 ^ uVar19;\n    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;\n    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar25 = uVar25 + uVar12;\n    uVar21 = uVar21 + uVar13;\n    uVar20 = uVar20 + uVar10;\n    uVar18 = uVar18 + uVar8;\n    uVar16 = uVar16 ^ uVar25;\n    uVar11 = uVar11 ^ uVar21;\n    uVar15 = uVar15 ^ uVar20;\n    uVar14 = uVar14 ^ uVar18;\n    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;\n    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;\n    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar6 = uVar6 + uVar11;\n    uVar27 = uVar27 + uVar15;\n    uVar26 = uVar26 + uVar14;\n    uVar19 = uVar16 + uVar19;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ uVar27;\n    uVar13 = uVar13 ^ uVar26;\n    uVar10 = uVar10 ^ uVar19;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar20 = uVar20 + uVar8;\n    uVar18 = uVar18 + uVar12;\n    uVar25 = uVar25 + uVar13;\n    uVar21 = uVar21 + uVar10;\n    uVar11 = uVar11 ^ uVar20;\n    uVar15 = uVar15 ^ uVar18;\n    uVar14 = uVar14 ^ uVar25;\n    uVar16 = uVar16 ^ uVar21;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar6 = uVar6 + uVar11;\n    local_5c[1] = uVar27 + uVar15;\n    local_5c[2] = uVar26 + uVar14;\n    local_5c[3] = uVar19 + uVar16;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ local_5c[1];\n    uVar13 = uVar13 ^ local_5c[2];\n    uVar10 = uVar10 ^ local_5c[3];\n    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;\n    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;\n    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    local_5c[10] = uVar20 + local_5c[0xf];\n    local_5c[0xb] = uVar18 + local_5c[0xc];\n    local_5c[8] = uVar25 + local_5c[0xd];\n    local_5c[9] = uVar21 + local_5c[0xe];\n    iVar17 = iVar17 + -1;\n    uVar11 = uVar11 ^ local_5c[10];\n    uVar15 = uVar15 ^ local_5c[0xb];\n    uVar14 = uVar14 ^ local_5c[8];\n    uVar16 = uVar16 ^ local_5c[9];\n    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;\n    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;\n    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;\n  } while (iVar17 != 0);\n  local_5c[0] = uVar6;\n  puVar4 = puVar7;\n  puVar5 = param_1;\n  while( true ) {\n    uVar8 = *puVar5;\n    puVar24 = puVar4 + 1;\n    puVar5 = puVar5 + 1;\n    *puVar4 = uVar8 + uVar6;\n    puVar4 = puVar7;\n    puVar23 = param_1 + 0x10;\n    if (&local_1c == puVar24) break;\n    uVar6 = *puVar24;\n    puVar4 = puVar24;\n  }\n  do {\n    uVar6 = *puVar4;\n    puVar4 = puVar4 + 1;\n    *(char *)puVar23 = (char)uVar6;\n    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);\n    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);\n    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);\n    puVar2 = PTR_smemclr_00111398;\n    puVar23 = puVar23 + 1;\n  } while (&local_1c != puVar4);\n  pbVar9 = &DAT_00000040;\n  param_1[0x20] = 0;\n  (*(code *)puVar2)();\n  uVar6 = param_1[0xc];\n  param_1[0xc] = uVar6 + 1;\n  if (uVar6 + 1 == 0) {\n    param_1[0xd] = param_1[0xd] + 1;\n  }\n  if (local_1c == *(uint *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  if (puVar24 == (uint *)0x0) {\n    return;\n  }\n  uVar6 = puVar7[0x20];\n  bVar1 = (int)uVar6 < 0x40;\nLAB_0006c064:\n  do {\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_0006bcbc(uint *param_1)" (identifier "FUN_0006bcbc") (parameter_list "(uint *param_1)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  byte *pbVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int iVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  byte *pbVar22;\n  uint *puVar23;\n  uint *puVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  uint local_5c [16];\n  uint local_1c;\n  \n  puVar3 = PTR___stack_chk_guard_00112630;\n  puVar7 = local_5c;\n  local_1c = *(uint *)PTR___stack_chk_guard_00112630;\n  puVar4 = param_1;\n  puVar5 = puVar7;\n  do {\n    uVar13 = *puVar4;\n    uVar10 = puVar4[1];\n    uVar8 = puVar4[2];\n    uVar6 = puVar4[3];\n    puVar4 = puVar4 + 4;\n    *puVar5 = uVar13;\n    puVar5[1] = uVar10;\n    puVar5[2] = uVar8;\n    puVar5[3] = uVar6;\n    puVar5 = puVar5 + 4;\n  } while (puVar4 != param_1 + 0x10);\n  iVar17 = 10;\n  uVar6 = local_5c[0];\n  do {\n    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];\n    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];\n    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];\n    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];\n    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar25 = uVar12 + local_5c[8];\n    uVar21 = uVar13 + local_5c[9];\n    uVar20 = uVar10 + local_5c[10];\n    uVar18 = uVar8 + local_5c[0xb];\n    uVar16 = uVar25 ^ local_5c[4];\n    uVar11 = uVar21 ^ local_5c[5];\n    uVar15 = uVar20 ^ local_5c[6];\n    uVar14 = uVar18 ^ local_5c[7];\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar6 = local_5c[4] + uVar6 + uVar16;\n    uVar27 = local_5c[1] + local_5c[5] + uVar11;\n    uVar26 = local_5c[6] + local_5c[2] + uVar15;\n    uVar19 = local_5c[7] + local_5c[3] + uVar14;\n    uVar12 = uVar12 ^ uVar6;\n    uVar13 = uVar13 ^ uVar27;\n    uVar10 = uVar10 ^ uVar26;\n    uVar8 = uVar8 ^ uVar19;\n    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;\n    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar25 = uVar25 + uVar12;\n    uVar21 = uVar21 + uVar13;\n    uVar20 = uVar20 + uVar10;\n    uVar18 = uVar18 + uVar8;\n    uVar16 = uVar16 ^ uVar25;\n    uVar11 = uVar11 ^ uVar21;\n    uVar15 = uVar15 ^ uVar20;\n    uVar14 = uVar14 ^ uVar18;\n    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;\n    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;\n    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar6 = uVar6 + uVar11;\n    uVar27 = uVar27 + uVar15;\n    uVar26 = uVar26 + uVar14;\n    uVar19 = uVar16 + uVar19;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ uVar27;\n    uVar13 = uVar13 ^ uVar26;\n    uVar10 = uVar10 ^ uVar19;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar20 = uVar20 + uVar8;\n    uVar18 = uVar18 + uVar12;\n    uVar25 = uVar25 + uVar13;\n    uVar21 = uVar21 + uVar10;\n    uVar11 = uVar11 ^ uVar20;\n    uVar15 = uVar15 ^ uVar18;\n    uVar14 = uVar14 ^ uVar25;\n    uVar16 = uVar16 ^ uVar21;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar6 = uVar6 + uVar11;\n    local_5c[1] = uVar27 + uVar15;\n    local_5c[2] = uVar26 + uVar14;\n    local_5c[3] = uVar19 + uVar16;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ local_5c[1];\n    uVar13 = uVar13 ^ local_5c[2];\n    uVar10 = uVar10 ^ local_5c[3];\n    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;\n    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;\n    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    local_5c[10] = uVar20 + local_5c[0xf];\n    local_5c[0xb] = uVar18 + local_5c[0xc];\n    local_5c[8] = uVar25 + local_5c[0xd];\n    local_5c[9] = uVar21 + local_5c[0xe];\n    iVar17 = iVar17 + -1;\n    uVar11 = uVar11 ^ local_5c[10];\n    uVar15 = uVar15 ^ local_5c[0xb];\n    uVar14 = uVar14 ^ local_5c[8];\n    uVar16 = uVar16 ^ local_5c[9];\n    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;\n    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;\n    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;\n  } while (iVar17 != 0);\n  local_5c[0] = uVar6;\n  puVar4 = puVar7;\n  puVar5 = param_1;\n  while( true ) {\n    uVar8 = *puVar5;\n    puVar24 = puVar4 + 1;\n    puVar5 = puVar5 + 1;\n    *puVar4 = uVar8 + uVar6;\n    puVar4 = puVar7;\n    puVar23 = param_1 + 0x10;\n    if (&local_1c == puVar24) break;\n    uVar6 = *puVar24;\n    puVar4 = puVar24;\n  }\n  do {\n    uVar6 = *puVar4;\n    puVar4 = puVar4 + 1;\n    *(char *)puVar23 = (char)uVar6;\n    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);\n    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);\n    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);\n    puVar2 = PTR_smemclr_00111398;\n    puVar23 = puVar23 + 1;\n  } while (&local_1c != puVar4);\n  pbVar9 = &DAT_00000040;\n  param_1[0x20] = 0;\n  (*(code *)puVar2)();\n  uVar6 = param_1[0xc];\n  param_1[0xc] = uVar6 + 1;\n  if (uVar6 + 1 == 0) {\n    param_1[0xd] = param_1[0xd] + 1;\n  }\n  if (local_1c == *(uint *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_001122c8)();\n  if (puVar24 == (uint *)0x0) {\n    return;\n  }\n  uVar6 = puVar7[0x20];\n  bVar1 = (int)uVar6 < 0x40;\nLAB_0006c064:\n  do {\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  } while( true );\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "uint *puVar4;" (type_identifier "uint") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint *puVar5;" (type_identifier "uint") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (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 "byte *pbVar22;" (type_identifier "byte") (pointer_declarator "*pbVar22" (* "*") (identifier "pbVar22")) (; ";")) (declaration "uint *puVar23;" (type_identifier "uint") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "uint *puVar24;" (type_identifier "uint") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (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 local_5c [16];" (type_identifier "uint") (array_declarator "local_5c [16]" (identifier "local_5c") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "uint local_1c;" (type_identifier "uint") (identifier "local_1c") (; ";")) (expression_statement "puVar3 = PTR___stack_chk_guard_00112630;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00112630" (identifier "puVar3") (= "=") (identifier "PTR___stack_chk_guard_00112630")) (; ";")) (expression_statement "puVar7 = local_5c;" (assignment_expression "puVar7 = local_5c" (identifier "puVar7") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "local_1c = *(uint *)PTR___stack_chk_guard_00112630;" (assignment_expression "local_1c = *(uint *)PTR___stack_chk_guard_00112630" (identifier "local_1c") (= "=") (pointer_expression "*(uint *)PTR___stack_chk_guard_00112630" (* "*") (cast_expression "(uint *)PTR___stack_chk_guard_00112630" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00112630")))) (; ";")) (expression_statement "puVar4 = param_1;" (assignment_expression "puVar4 = param_1" (identifier "puVar4") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puVar5 = puVar7;" (assignment_expression "puVar5 = puVar7" (identifier "puVar5") (= "=") (identifier "puVar7")) (; ";")) (do_statement "do {\n    uVar13 = *puVar4;\n    uVar10 = puVar4[1];\n    uVar8 = puVar4[2];\n    uVar6 = puVar4[3];\n    puVar4 = puVar4 + 4;\n    *puVar5 = uVar13;\n    puVar5[1] = uVar10;\n    puVar5[2] = uVar8;\n    puVar5[3] = uVar6;\n    puVar5 = puVar5 + 4;\n  } while (puVar4 != param_1 + 0x10);" (do "do") (compound_statement "{\n    uVar13 = *puVar4;\n    uVar10 = puVar4[1];\n    uVar8 = puVar4[2];\n    uVar6 = puVar4[3];\n    puVar4 = puVar4 + 4;\n    *puVar5 = uVar13;\n    puVar5[1] = uVar10;\n    puVar5[2] = uVar8;\n    puVar5[3] = uVar6;\n    puVar5 = puVar5 + 4;\n  }" ({ "{") (expression_statement "uVar13 = *puVar4;" (assignment_expression "uVar13 = *puVar4" (identifier "uVar13") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "uVar10 = puVar4[1];" (assignment_expression "uVar10 = puVar4[1]" (identifier "uVar10") (= "=") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar8 = puVar4[2];" (assignment_expression "uVar8 = puVar4[2]" (identifier "uVar8") (= "=") (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar6 = puVar4[3];" (assignment_expression "uVar6 = puVar4[3]" (identifier "uVar6") (= "=") (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar4 = puVar4 + 4;" (assignment_expression "puVar4 = puVar4 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*puVar5 = uVar13;" (assignment_expression "*puVar5 = uVar13" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar5[1] = uVar10;" (assignment_expression "puVar5[1] = uVar10" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar5[2] = uVar8;" (assignment_expression "puVar5[2] = uVar8" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar5[3] = uVar6;" (assignment_expression "puVar5[3] = uVar6" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar5 = puVar5 + 4;" (assignment_expression "puVar5 = puVar5 + 4" (identifier "puVar5") (= "=") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar4 != param_1 + 0x10)" (( "(") (binary_expression "puVar4 != param_1 + 0x10" (identifier "puVar4") (!= "!=") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10"))) () ")")) (; ";")) (expression_statement "iVar17 = 10;" (assignment_expression "iVar17 = 10" (identifier "iVar17") (= "=") (number_literal "10")) (; ";")) (expression_statement "uVar6 = local_5c[0];" (assignment_expression "uVar6 = local_5c[0]" (identifier "uVar6") (= "=") (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];\n    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];\n    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];\n    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];\n    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar25 = uVar12 + local_5c[8];\n    uVar21 = uVar13 + local_5c[9];\n    uVar20 = uVar10 + local_5c[10];\n    uVar18 = uVar8 + local_5c[0xb];\n    uVar16 = uVar25 ^ local_5c[4];\n    uVar11 = uVar21 ^ local_5c[5];\n    uVar15 = uVar20 ^ local_5c[6];\n    uVar14 = uVar18 ^ local_5c[7];\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar6 = local_5c[4] + uVar6 + uVar16;\n    uVar27 = local_5c[1] + local_5c[5] + uVar11;\n    uVar26 = local_5c[6] + local_5c[2] + uVar15;\n    uVar19 = local_5c[7] + local_5c[3] + uVar14;\n    uVar12 = uVar12 ^ uVar6;\n    uVar13 = uVar13 ^ uVar27;\n    uVar10 = uVar10 ^ uVar26;\n    uVar8 = uVar8 ^ uVar19;\n    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;\n    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar25 = uVar25 + uVar12;\n    uVar21 = uVar21 + uVar13;\n    uVar20 = uVar20 + uVar10;\n    uVar18 = uVar18 + uVar8;\n    uVar16 = uVar16 ^ uVar25;\n    uVar11 = uVar11 ^ uVar21;\n    uVar15 = uVar15 ^ uVar20;\n    uVar14 = uVar14 ^ uVar18;\n    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;\n    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;\n    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar6 = uVar6 + uVar11;\n    uVar27 = uVar27 + uVar15;\n    uVar26 = uVar26 + uVar14;\n    uVar19 = uVar16 + uVar19;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ uVar27;\n    uVar13 = uVar13 ^ uVar26;\n    uVar10 = uVar10 ^ uVar19;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar20 = uVar20 + uVar8;\n    uVar18 = uVar18 + uVar12;\n    uVar25 = uVar25 + uVar13;\n    uVar21 = uVar21 + uVar10;\n    uVar11 = uVar11 ^ uVar20;\n    uVar15 = uVar15 ^ uVar18;\n    uVar14 = uVar14 ^ uVar25;\n    uVar16 = uVar16 ^ uVar21;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar6 = uVar6 + uVar11;\n    local_5c[1] = uVar27 + uVar15;\n    local_5c[2] = uVar26 + uVar14;\n    local_5c[3] = uVar19 + uVar16;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ local_5c[1];\n    uVar13 = uVar13 ^ local_5c[2];\n    uVar10 = uVar10 ^ local_5c[3];\n    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;\n    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;\n    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    local_5c[10] = uVar20 + local_5c[0xf];\n    local_5c[0xb] = uVar18 + local_5c[0xc];\n    local_5c[8] = uVar25 + local_5c[0xd];\n    local_5c[9] = uVar21 + local_5c[0xe];\n    iVar17 = iVar17 + -1;\n    uVar11 = uVar11 ^ local_5c[10];\n    uVar15 = uVar15 ^ local_5c[0xb];\n    uVar14 = uVar14 ^ local_5c[8];\n    uVar16 = uVar16 ^ local_5c[9];\n    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;\n    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;\n    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;\n  } while (iVar17 != 0);" (do "do") (compound_statement "{\n    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];\n    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];\n    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];\n    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];\n    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar25 = uVar12 + local_5c[8];\n    uVar21 = uVar13 + local_5c[9];\n    uVar20 = uVar10 + local_5c[10];\n    uVar18 = uVar8 + local_5c[0xb];\n    uVar16 = uVar25 ^ local_5c[4];\n    uVar11 = uVar21 ^ local_5c[5];\n    uVar15 = uVar20 ^ local_5c[6];\n    uVar14 = uVar18 ^ local_5c[7];\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar6 = local_5c[4] + uVar6 + uVar16;\n    uVar27 = local_5c[1] + local_5c[5] + uVar11;\n    uVar26 = local_5c[6] + local_5c[2] + uVar15;\n    uVar19 = local_5c[7] + local_5c[3] + uVar14;\n    uVar12 = uVar12 ^ uVar6;\n    uVar13 = uVar13 ^ uVar27;\n    uVar10 = uVar10 ^ uVar26;\n    uVar8 = uVar8 ^ uVar19;\n    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;\n    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;\n    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;\n    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;\n    uVar25 = uVar25 + uVar12;\n    uVar21 = uVar21 + uVar13;\n    uVar20 = uVar20 + uVar10;\n    uVar18 = uVar18 + uVar8;\n    uVar16 = uVar16 ^ uVar25;\n    uVar11 = uVar11 ^ uVar21;\n    uVar15 = uVar15 ^ uVar20;\n    uVar14 = uVar14 ^ uVar18;\n    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;\n    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;\n    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;\n    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;\n    uVar6 = uVar6 + uVar11;\n    uVar27 = uVar27 + uVar15;\n    uVar26 = uVar26 + uVar14;\n    uVar19 = uVar16 + uVar19;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ uVar27;\n    uVar13 = uVar13 ^ uVar26;\n    uVar10 = uVar10 ^ uVar19;\n    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;\n    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;\n    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;\n    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;\n    uVar20 = uVar20 + uVar8;\n    uVar18 = uVar18 + uVar12;\n    uVar25 = uVar25 + uVar13;\n    uVar21 = uVar21 + uVar10;\n    uVar11 = uVar11 ^ uVar20;\n    uVar15 = uVar15 ^ uVar18;\n    uVar14 = uVar14 ^ uVar25;\n    uVar16 = uVar16 ^ uVar21;\n    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;\n    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;\n    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;\n    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;\n    uVar6 = uVar6 + uVar11;\n    local_5c[1] = uVar27 + uVar15;\n    local_5c[2] = uVar26 + uVar14;\n    local_5c[3] = uVar19 + uVar16;\n    uVar8 = uVar8 ^ uVar6;\n    uVar12 = uVar12 ^ local_5c[1];\n    uVar13 = uVar13 ^ local_5c[2];\n    uVar10 = uVar10 ^ local_5c[3];\n    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;\n    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;\n    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;\n    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;\n    local_5c[10] = uVar20 + local_5c[0xf];\n    local_5c[0xb] = uVar18 + local_5c[0xc];\n    local_5c[8] = uVar25 + local_5c[0xd];\n    local_5c[9] = uVar21 + local_5c[0xe];\n    iVar17 = iVar17 + -1;\n    uVar11 = uVar11 ^ local_5c[10];\n    uVar15 = uVar15 ^ local_5c[0xb];\n    uVar14 = uVar14 ^ local_5c[8];\n    uVar16 = uVar16 ^ local_5c[9];\n    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;\n    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;\n    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;\n    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;\n  }" ({ "{") (expression_statement "uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];" (assignment_expression "uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc]" (identifier "uVar11") (= "=") (binary_expression "local_5c[4] + uVar6 ^ local_5c[0xc]" (binary_expression "local_5c[4] + uVar6" (subscript_expression "local_5c[4]" (identifier "local_5c") ([ "[") (number_literal "4") (] "]")) (+ "+") (identifier "uVar6")) (^ "^") (subscript_expression "local_5c[0xc]" (identifier "local_5c") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (expression_statement "uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];" (assignment_expression "uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd]" (identifier "uVar13") (= "=") (binary_expression "local_5c[1] + local_5c[5] ^ local_5c[0xd]" (binary_expression "local_5c[1] + local_5c[5]" (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]")) (+ "+") (subscript_expression "local_5c[5]" (identifier "local_5c") ([ "[") (number_literal "5") (] "]"))) (^ "^") (subscript_expression "local_5c[0xd]" (identifier "local_5c") ([ "[") (number_literal "0xd") (] "]")))) (; ";")) (expression_statement "uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];" (assignment_expression "uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe]" (identifier "uVar10") (= "=") (binary_expression "local_5c[6] + local_5c[2] ^ local_5c[0xe]" (binary_expression "local_5c[6] + local_5c[2]" (subscript_expression "local_5c[6]" (identifier "local_5c") ([ "[") (number_literal "6") (] "]")) (+ "+") (subscript_expression "local_5c[2]" (identifier "local_5c") ([ "[") (number_literal "2") (] "]"))) (^ "^") (subscript_expression "local_5c[0xe]" (identifier "local_5c") ([ "[") (number_literal "0xe") (] "]")))) (; ";")) (expression_statement "uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];" (assignment_expression "uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf]" (identifier "uVar8") (= "=") (binary_expression "local_5c[7] + local_5c[3] ^ local_5c[0xf]" (binary_expression "local_5c[7] + local_5c[3]" (subscript_expression "local_5c[7]" (identifier "local_5c") ([ "[") (number_literal "7") (] "]")) (+ "+") (subscript_expression "local_5c[3]" (identifier "local_5c") ([ "[") (number_literal "3") (] "]"))) (^ "^") (subscript_expression "local_5c[0xf]" (identifier "local_5c") ([ "[") (number_literal "0xf") (] "]")))) (; ";")) (expression_statement "uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;" (assignment_expression "uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000" (identifier "uVar12") (= "=") (binary_expression "(uVar11 >> 0x10) + uVar11 * 0x10000" (parenthesized_expression "(uVar11 >> 0x10)" (( "(") (binary_expression "uVar11 >> 0x10" (identifier "uVar11") (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "uVar11 * 0x10000" (identifier "uVar11") (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;" (assignment_expression "uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000" (identifier "uVar13") (= "=") (binary_expression "(uVar13 >> 0x10) + uVar13 * 0x10000" (parenthesized_expression "(uVar13 >> 0x10)" (( "(") (binary_expression "uVar13 >> 0x10" (identifier "uVar13") (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "uVar13 * 0x10000" (identifier "uVar13") (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;" (assignment_expression "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000" (identifier "uVar10") (= "=") (binary_expression "(uVar10 >> 0x10) + uVar10 * 0x10000" (parenthesized_expression "(uVar10 >> 0x10)" (( "(") (binary_expression "uVar10 >> 0x10" (identifier "uVar10") (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "uVar10 * 0x10000" (identifier "uVar10") (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;" (assignment_expression "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000" (identifier "uVar8") (= "=") (binary_expression "(uVar8 >> 0x10) + uVar8 * 0x10000" (parenthesized_expression "(uVar8 >> 0x10)" (( "(") (binary_expression "uVar8 >> 0x10" (identifier "uVar8") (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "uVar8 * 0x10000" (identifier "uVar8") (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "uVar25 = uVar12 + local_5c[8];" (assignment_expression "uVar25 = uVar12 + local_5c[8]" (identifier "uVar25") (= "=") (binary_expression "uVar12 + local_5c[8]" (identifier "uVar12") (+ "+") (subscript_expression "local_5c[8]" (identifier "local_5c") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "uVar21 = uVar13 + local_5c[9];" (assignment_expression "uVar21 = uVar13 + local_5c[9]" (identifier "uVar21") (= "=") (binary_expression "uVar13 + local_5c[9]" (identifier "uVar13") (+ "+") (subscript_expression "local_5c[9]" (identifier "local_5c") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "uVar20 = uVar10 + local_5c[10];" (assignment_expression "uVar20 = uVar10 + local_5c[10]" (identifier "uVar20") (= "=") (binary_expression "uVar10 + local_5c[10]" (identifier "uVar10") (+ "+") (subscript_expression "local_5c[10]" (identifier "local_5c") ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "uVar18 = uVar8 + local_5c[0xb];" (assignment_expression "uVar18 = uVar8 + local_5c[0xb]" (identifier "uVar18") (= "=") (binary_expression "uVar8 + local_5c[0xb]" (identifier "uVar8") (+ "+") (subscript_expression "local_5c[0xb]" (identifier "local_5c") ([ "[") (number_literal "0xb") (] "]")))) (; ";")) (expression_statement "uVar16 = uVar25 ^ local_5c[4];" (assignment_expression "uVar16 = uVar25 ^ local_5c[4]" (identifier "uVar16") (= "=") (binary_expression "uVar25 ^ local_5c[4]" (identifier "uVar25") (^ "^") (subscript_expression "local_5c[4]" (identifier "local_5c") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "uVar11 = uVar21 ^ local_5c[5];" (assignment_expression "uVar11 = uVar21 ^ local_5c[5]" (identifier "uVar11") (= "=") (binary_expression "uVar21 ^ local_5c[5]" (identifier "uVar21") (^ "^") (subscript_expression "local_5c[5]" (identifier "local_5c") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "uVar15 = uVar20 ^ local_5c[6];" (assignment_expression "uVar15 = uVar20 ^ local_5c[6]" (identifier "uVar15") (= "=") (binary_expression "uVar20 ^ local_5c[6]" (identifier "uVar20") (^ "^") (subscript_expression "local_5c[6]" (identifier "local_5c") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "uVar14 = uVar18 ^ local_5c[7];" (assignment_expression "uVar14 = uVar18 ^ local_5c[7]" (identifier "uVar14") (= "=") (binary_expression "uVar18 ^ local_5c[7]" (identifier "uVar18") (^ "^") (subscript_expression "local_5c[7]" (identifier "local_5c") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;" (assignment_expression "uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000" (identifier "uVar16") (= "=") (binary_expression "(uVar16 >> 0x14) + uVar16 * 0x1000" (parenthesized_expression "(uVar16 >> 0x14)" (( "(") (binary_expression "uVar16 >> 0x14" (identifier "uVar16") (>> ">>") (number_literal "0x14")) () ")")) (+ "+") (binary_expression "uVar16 * 0x1000" (identifier "uVar16") (* "*") (number_literal "0x1000")))) (; ";")) (expression_statement "uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;" (assignment_expression "uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000" (identifier "uVar11") (= "=") (binary_expression "(uVar11 >> 0x14) + uVar11 * 0x1000" (parenthesized_expression "(uVar11 >> 0x14)" (( "(") (binary_expression "uVar11 >> 0x14" (identifier "uVar11") (>> ">>") (number_literal "0x14")) () ")")) (+ "+") (binary_expression "uVar11 * 0x1000" (identifier "uVar11") (* "*") (number_literal "0x1000")))) (; ";")) (expression_statement "uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;" (assignment_expression "uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000" (identifier "uVar15") (= "=") (binary_expression "(uVar15 >> 0x14) + uVar15 * 0x1000" (parenthesized_expression "(uVar15 >> 0x14)" (( "(") (binary_expression "uVar15 >> 0x14" (identifier "uVar15") (>> ">>") (number_literal "0x14")) () ")")) (+ "+") (binary_expression "uVar15 * 0x1000" (identifier "uVar15") (* "*") (number_literal "0x1000")))) (; ";")) (expression_statement "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;" (assignment_expression "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000" (identifier "uVar14") (= "=") (binary_expression "(uVar14 >> 0x14) + uVar14 * 0x1000" (parenthesized_expression "(uVar14 >> 0x14)" (( "(") (binary_expression "uVar14 >> 0x14" (identifier "uVar14") (>> ">>") (number_literal "0x14")) () ")")) (+ "+") (binary_expression "uVar14 * 0x1000" (identifier "uVar14") (* "*") (number_literal "0x1000")))) (; ";")) (expression_statement "uVar6 = local_5c[4] + uVar6 + uVar16;" (assignment_expression "uVar6 = local_5c[4] + uVar6 + uVar16" (identifier "uVar6") (= "=") (binary_expression "local_5c[4] + uVar6 + uVar16" (binary_expression "local_5c[4] + uVar6" (subscript_expression "local_5c[4]" (identifier "local_5c") ([ "[") (number_literal "4") (] "]")) (+ "+") (identifier "uVar6")) (+ "+") (identifier "uVar16"))) (; ";")) (expression_statement "uVar27 = local_5c[1] + local_5c[5] + uVar11;" (assignment_expression "uVar27 = local_5c[1] + local_5c[5] + uVar11" (identifier "uVar27") (= "=") (binary_expression "local_5c[1] + local_5c[5] + uVar11" (binary_expression "local_5c[1] + local_5c[5]" (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]")) (+ "+") (subscript_expression "local_5c[5]" (identifier "local_5c") ([ "[") (number_literal "5") (] "]"))) (+ "+") (identifier "uVar11"))) (; ";")) (expression_statement "uVar26 = local_5c[6] + local_5c[2] + uVar15;" (assignment_expression "uVar26 = local_5c[6] + local_5c[2] + uVar15" (identifier "uVar26") (= "=") (binary_expression "local_5c[6] + local_5c[2] + uVar15" (binary_expression "local_5c[6] + local_5c[2]" (subscript_expression "local_5c[6]" (identifier "local_5c") ([ "[") (number_literal "6") (] "]")) (+ "+") (subscript_expression "local_5c[2]" (identifier "local_5c") ([ "[") (number_literal "2") (] "]"))) (+ "+") (identifier "uVar15"))) (; ";")) (expression_statement "uVar19 = local_5c[7] + local_5c[3] + uVar14;" (assignment_expression "uVar19 = local_5c[7] + local_5c[3] + uVar14" (identifier "uVar19") (= "=") (binary_expression "local_5c[7] + local_5c[3] + uVar14" (binary_expression "local_5c[7] + local_5c[3]" (subscript_expression "local_5c[7]" (identifier "local_5c") ([ "[") (number_literal "7") (] "]")) (+ "+") (subscript_expression "local_5c[3]" (identifier "local_5c") ([ "[") (number_literal "3") (] "]"))) (+ "+") (identifier "uVar14"))) (; ";")) (expression_statement "uVar12 = uVar12 ^ uVar6;" (assignment_expression "uVar12 = uVar12 ^ uVar6" (identifier "uVar12") (= "=") (binary_expression "uVar12 ^ uVar6" (identifier "uVar12") (^ "^") (identifier "uVar6"))) (; ";")) (expression_statement "uVar13 = uVar13 ^ uVar27;" (assignment_expression "uVar13 = uVar13 ^ uVar27" (identifier "uVar13") (= "=") (binary_expression "uVar13 ^ uVar27" (identifier "uVar13") (^ "^") (identifier "uVar27"))) (; ";")) (expression_statement "uVar10 = uVar10 ^ uVar26;" (assignment_expression "uVar10 = uVar10 ^ uVar26" (identifier "uVar10") (= "=") (binary_expression "uVar10 ^ uVar26" (identifier "uVar10") (^ "^") (identifier "uVar26"))) (; ";")) (expression_statement "uVar8 = uVar8 ^ uVar19;" (assignment_expression "uVar8 = uVar8 ^ uVar19" (identifier "uVar8") (= "=") (binary_expression "uVar8 ^ uVar19" (identifier "uVar8") (^ "^") (identifier "uVar19"))) (; ";")) (expression_statement "uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;" (assignment_expression "uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100" (identifier "uVar12") (= "=") (binary_expression "(uVar12 >> 0x18) + uVar12 * 0x100" (parenthesized_expression "(uVar12 >> 0x18)" (( "(") (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) () ")")) (+ "+") (binary_expression "uVar12 * 0x100" (identifier "uVar12") (* "*") (number_literal "0x100")))) (; ";")) (expression_statement "uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;" (assignment_expression "uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100" (identifier "uVar13") (= "=") (binary_expression "(uVar13 >> 0x18) + uVar13 * 0x100" (parenthesized_expression "(uVar13 >> 0x18)" (( "(") (binary_expression "uVar13 >> 0x18" (identifier "uVar13") (>> ">>") (number_literal "0x18")) () ")")) (+ "+") (binary_expression "uVar13 * 0x100" (identifier "uVar13") (* "*") (number_literal "0x100")))) (; ";")) (expression_statement "uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;" (assignment_expression "uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100" (identifier "uVar10") (= "=") (binary_expression "(uVar10 >> 0x18) + uVar10 * 0x100" (parenthesized_expression "(uVar10 >> 0x18)" (( "(") (binary_expression "uVar10 >> 0x18" (identifier "uVar10") (>> ">>") (number_literal "0x18")) () ")")) (+ "+") (binary_expression "uVar10 * 0x100" (identifier "uVar10") (* "*") (number_literal "0x100")))) (; ";")) (expression_statement "uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;" (assignment_expression "uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100" (identifier "uVar8") (= "=") (binary_expression "(uVar8 >> 0x18) + uVar8 * 0x100" (parenthesized_expression "(uVar8 >> 0x18)" (( "(") (binary_expression "uVar8 >> 0x18" (identifier "uVar8") (>> ">>") (number_literal "0x18")) () ")")) (+ "+") (binary_expression "uVar8 * 0x100" (identifier "uVar8") (* "*") (number_literal "0x100")))) (; ";")) (expression_statement "uVar25 = uVar25 + uVar12;" (assignment_expression "uVar25 = uVar25 + uVar12" (identifier "uVar25") (= "=") (binary_expression "uVar25 + uVar12" (identifier "uVar25") (+ "+") (identifier "uVar12"))) (; ";")) (expression_statement "uVar21 = uVar21 + uVar13;" (assignment_expression "uVar21 = uVar21 + uVar13" (identifier "uVar21") (= "=") (binary_expression "uVar21 + uVar13" (identifier "uVar21") (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "uVar20 = uVar20 + uVar10;" (assignment_expression "uVar20 = uVar20 + uVar10" (identifier "uVar20") (= "=") (binary_expression "uVar20 + uVar10" (identifier "uVar20") (+ "+") (identifier "uVar10"))) (; ";")) (expression_statement "uVar18 = uVar18 + uVar8;" (assignment_expression "uVar18 = uVar18 + uVar8" (identifier "uVar18") (= "=") (binary_expression "uVar18 + uVar8" (identifier "uVar18") (+ "+") (identifier "uVar8"))) (; ";")) (expression_statement "uVar16 = uVar16 ^ uVar25;" (assignment_expression "uVar16 = uVar16 ^ uVar25" (identifier "uVar16") (= "=") (binary_expression "uVar16 ^ uVar25" (identifier "uVar16") (^ "^") (identifier "uVar25"))) (; ";")) (expression_statement "uVar11 = uVar11 ^ uVar21;" (assignment_expression "uVar11 = uVar11 ^ uVar21" (identifier "uVar11") (= "=") (binary_expression "uVar11 ^ uVar21" (identifier "uVar11") (^ "^") (identifier "uVar21"))) (; ";")) (expression_statement "uVar15 = uVar15 ^ uVar20;" (assignment_expression "uVar15 = uVar15 ^ uVar20" (identifier "uVar15") (= "=") (binary_expression "uVar15 ^ uVar20" (identifier "uVar15") (^ "^") (identifier "uVar20"))) (; ";")) (expression_statement "uVar14 = uVar14 ^ uVar18;" (assignment_expression "uVar14 = uVar14 ^ uVar18" (identifier "uVar14") (= "=") (binary_expression "uVar14 ^ uVar18" (identifier "uVar14") (^ "^") (identifier "uVar18"))) (; ";")) (expression_statement "uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;" (assignment_expression "uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80" (identifier "uVar16") (= "=") (binary_expression "(uVar16 >> 0x19) + uVar16 * 0x80" (parenthesized_expression "(uVar16 >> 0x19)" (( "(") (binary_expression "uVar16 >> 0x19" (identifier "uVar16") (>> ">>") (number_literal "0x19")) () ")")) (+ "+") (binary_expression "uVar16 * 0x80" (identifier "uVar16") (* "*") (number_literal "0x80")))) (; ";")) (expression_statement "uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;" (assignment_expression "uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80" (identifier "uVar11") (= "=") (binary_expression "(uVar11 >> 0x19) + uVar11 * 0x80" (parenthesized_expression "(uVar11 >> 0x19)" (( "(") (binary_expression "uVar11 >> 0x19" (identifier "uVar11") (>> ">>") (number_literal "0x19")) () ")")) (+ "+") (binary_expression "uVar11 * 0x80" (identifier "uVar11") (* "*") (number_literal "0x80")))) (; ";")) (expression_statement "uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;" (assignment_expression "uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80" (identifier "uVar15") (= "=") (binary_expression "(uVar15 >> 0x19) + uVar15 * 0x80" (parenthesized_expression "(uVar15 >> 0x19)" (( "(") (binary_expression "uVar15 >> 0x19" (identifier "uVar15") (>> ">>") (number_literal "0x19")) () ")")) (+ "+") (binary_expression "uVar15 * 0x80" (identifier "uVar15") (* "*") (number_literal "0x80")))) (; ";")) (expression_statement "uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;" (assignment_expression "uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80" (identifier "uVar14") (= "=") (binary_expression "(uVar14 >> 0x19) + uVar14 * 0x80" (parenthesized_expression "(uVar14 >> 0x19)" (( "(") (binary_expression "uVar14 >> 0x19" (identifier "uVar14") (>> ">>") (number_literal "0x19")) () ")")) (+ "+") (binary_expression "uVar14 * 0x80" (identifier "uVar14") (* "*") (number_literal "0x80")))) (; ";")) (expression_statement "uVar6 = uVar6 + uVar11;" (assignment_expression "uVar6 = uVar6 + uVar11" (identifier "uVar6") (= "=") (binary_expression "uVar6 + uVar11" (identifier "uVar6") (+ "+") (identifier "uVar11"))) (; ";")) (expression_statement "uVar27 = uVar27 + uVar15;" (assignment_expression "uVar27 = uVar27 + uVar15" (identifier "uVar27") (= "=") (binary_expression "uVar27 + uVar15" (identifier "uVar27") (+ "+") (identifier "uVar15"))) (; ";")) (expression_statement "uVar26 = uVar26 + uVar14;" (assignment_expression "uVar26 = uVar26 + uVar14" (identifier "uVar26") (= "=") (binary_expression "uVar26 + uVar14" (identifier "uVar26") (+ "+") (identifier "uVar14"))) (; ";")) (expression_statement "uVar19 = uVar16 + uVar19;" (assignment_expression "uVar19 = uVar16 + uVar19" (identifier "uVar19") (= "=") (binary_expression "uVar16 + uVar19" (identifier "uVar16") (+ "+") (identifier "uVar19"))) (; ";")) (expression_statement "uVar8 = uVar8 ^ uVar6;" (assignment_expression "uVar8 = uVar8 ^ uVar6" (identifier "uVar8") (= "=") (binary_expression "uVar8 ^ uVar6" (identifier "uVar8") (^ "^") (identifier "uVar6"))) (; ";")) (expression_statement "uVar12 = uVar12 ^ uVar27;" (assignment_expression "uVar12 = uVar12 ^ uVar27" (identifier "uVar12") (= "=") (binary_expression "uVar12 ^ uVar27" (identifier "uVar12") (^ "^") (identifier "uVar27"))) (; ";")) (expression_statement "uVar13 = uVar13 ^ uVar26;" (assignment_expression "uVar13 = uVar13 ^ uVar26" (identifier "uVar13") (= "=") (binary_expression "uVar13 ^ uVar26" (identifier "uVar13") (^ "^") (identifier "uVar26"))) (; ";")) (expression_statement "uVar10 = uVar10 ^ uVar19;" (assignment_expression "uVar10 = uVar10 ^ uVar19" (identifier "uVar10") (= "=") (binary_expression "uVar10 ^ uVar19" (identifier "uVar10") (^ "^") (identifier "uVar19"))) (; ";")) (expression_statement "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;" (assignment_expression "uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000" (identifier "uVar8") (= "=") (binary_expression "(uVar8 >> 0x10) + uVar8 * 0x10000" (parenthesized_expression "(uVar8 >> 0x10)" (( "(") (binary_expression "uVar8 >> 0x10" (identifier "uVar8") (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "uVar8 * 0x10000" (identifier "uVar8") (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;" (assignment_expression "uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000" (identifier "uVar12") (= "=") (binary_expression "(uVar12 >> 0x10) + uVar12 * 0x10000" (parenthesized_expression "(uVar12 >> 0x10)" (( "(") (binary_expression "uVar12 >> 0x10" (identifier "uVar12") (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "uVar12 * 0x10000" (identifier "uVar12") (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;" (assignment_expression "uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000" (identifier "uVar13") (= "=") (binary_expression "(uVar13 >> 0x10) + uVar13 * 0x10000" (parenthesized_expression "(uVar13 >> 0x10)" (( "(") (binary_expression "uVar13 >> 0x10" (identifier "uVar13") (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "uVar13 * 0x10000" (identifier "uVar13") (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;" (assignment_expression "uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000" (identifier "uVar10") (= "=") (binary_expression "(uVar10 >> 0x10) + uVar10 * 0x10000" (parenthesized_expression "(uVar10 >> 0x10)" (( "(") (binary_expression "uVar10 >> 0x10" (identifier "uVar10") (>> ">>") (number_literal "0x10")) () ")")) (+ "+") (binary_expression "uVar10 * 0x10000" (identifier "uVar10") (* "*") (number_literal "0x10000")))) (; ";")) (expression_statement "uVar20 = uVar20 + uVar8;" (assignment_expression "uVar20 = uVar20 + uVar8" (identifier "uVar20") (= "=") (binary_expression "uVar20 + uVar8" (identifier "uVar20") (+ "+") (identifier "uVar8"))) (; ";")) (expression_statement "uVar18 = uVar18 + uVar12;" (assignment_expression "uVar18 = uVar18 + uVar12" (identifier "uVar18") (= "=") (binary_expression "uVar18 + uVar12" (identifier "uVar18") (+ "+") (identifier "uVar12"))) (; ";")) (expression_statement "uVar25 = uVar25 + uVar13;" (assignment_expression "uVar25 = uVar25 + uVar13" (identifier "uVar25") (= "=") (binary_expression "uVar25 + uVar13" (identifier "uVar25") (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "uVar21 = uVar21 + uVar10;" (assignment_expression "uVar21 = uVar21 + uVar10" (identifier "uVar21") (= "=") (binary_expression "uVar21 + uVar10" (identifier "uVar21") (+ "+") (identifier "uVar10"))) (; ";")) (expression_statement "uVar11 = uVar11 ^ uVar20;" (assignment_expression "uVar11 = uVar11 ^ uVar20" (identifier "uVar11") (= "=") (binary_expression "uVar11 ^ uVar20" (identifier "uVar11") (^ "^") (identifier "uVar20"))) (; ";")) (expression_statement "uVar15 = uVar15 ^ uVar18;" (assignment_expression "uVar15 = uVar15 ^ uVar18" (identifier "uVar15") (= "=") (binary_expression "uVar15 ^ uVar18" (identifier "uVar15") (^ "^") (identifier "uVar18"))) (; ";")) (expression_statement "uVar14 = uVar14 ^ uVar25;" (assignment_expression "uVar14 = uVar14 ^ uVar25" (identifier "uVar14") (= "=") (binary_expression "uVar14 ^ uVar25" (identifier "uVar14") (^ "^") (identifier "uVar25"))) (; ";")) (expression_statement "uVar16 = uVar16 ^ uVar21;" (assignment_expression "uVar16 = uVar16 ^ uVar21" (identifier "uVar16") (= "=") (binary_expression "uVar16 ^ uVar21" (identifier "uVar16") (^ "^") (identifier "uVar21"))) (; ";")) (expression_statement "uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;" (assignment_expression "uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000" (identifier "uVar11") (= "=") (binary_expression "(uVar11 >> 0x14) + uVar11 * 0x1000" (parenthesized_expression "(uVar11 >> 0x14)" (( "(") (binary_expression "uVar11 >> 0x14" (identifier "uVar11") (>> ">>") (number_literal "0x14")) () ")")) (+ "+") (binary_expression "uVar11 * 0x1000" (identifier "uVar11") (* "*") (number_literal "0x1000")))) (; ";")) (expression_statement "uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;" (assignment_expression "uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000" (identifier "uVar15") (= "=") (binary_expression "(uVar15 >> 0x14) + uVar15 * 0x1000" (parenthesized_expression "(uVar15 >> 0x14)" (( "(") (binary_expression "uVar15 >> 0x14" (identifier "uVar15") (>> ">>") (number_literal "0x14")) () ")")) (+ "+") (binary_expression "uVar15 * 0x1000" (identifier "uVar15") (* "*") (number_literal "0x1000")))) (; ";")) (expression_statement "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;" (assignment_expression "uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000" (identifier "uVar14") (= "=") (binary_expression "(uVar14 >> 0x14) + uVar14 * 0x1000" (parenthesized_expression "(uVar14 >> 0x14)" (( "(") (binary_expression "uVar14 >> 0x14" (identifier "uVar14") (>> ">>") (number_literal "0x14")) () ")")) (+ "+") (binary_expression "uVar14 * 0x1000" (identifier "uVar14") (* "*") (number_literal "0x1000")))) (; ";")) (expression_statement "uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;" (assignment_expression "uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000" (identifier "uVar16") (= "=") (binary_expression "(uVar16 >> 0x14) + uVar16 * 0x1000" (parenthesized_expression "(uVar16 >> 0x14)" (( "(") (binary_expression "uVar16 >> 0x14" (identifier "uVar16") (>> ">>") (number_literal "0x14")) () ")")) (+ "+") (binary_expression "uVar16 * 0x1000" (identifier "uVar16") (* "*") (number_literal "0x1000")))) (; ";")) (expression_statement "uVar6 = uVar6 + uVar11;" (assignment_expression "uVar6 = uVar6 + uVar11" (identifier "uVar6") (= "=") (binary_expression "uVar6 + uVar11" (identifier "uVar6") (+ "+") (identifier "uVar11"))) (; ";")) (expression_statement "local_5c[1] = uVar27 + uVar15;" (assignment_expression "local_5c[1] = uVar27 + uVar15" (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar27 + uVar15" (identifier "uVar27") (+ "+") (identifier "uVar15"))) (; ";")) (expression_statement "local_5c[2] = uVar26 + uVar14;" (assignment_expression "local_5c[2] = uVar26 + uVar14" (subscript_expression "local_5c[2]" (identifier "local_5c") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar26 + uVar14" (identifier "uVar26") (+ "+") (identifier "uVar14"))) (; ";")) (expression_statement "local_5c[3] = uVar19 + uVar16;" (assignment_expression "local_5c[3] = uVar19 + uVar16" (subscript_expression "local_5c[3]" (identifier "local_5c") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "uVar19 + uVar16" (identifier "uVar19") (+ "+") (identifier "uVar16"))) (; ";")) (expression_statement "uVar8 = uVar8 ^ uVar6;" (assignment_expression "uVar8 = uVar8 ^ uVar6" (identifier "uVar8") (= "=") (binary_expression "uVar8 ^ uVar6" (identifier "uVar8") (^ "^") (identifier "uVar6"))) (; ";")) (expression_statement "uVar12 = uVar12 ^ local_5c[1];" (assignment_expression "uVar12 = uVar12 ^ local_5c[1]" (identifier "uVar12") (= "=") (binary_expression "uVar12 ^ local_5c[1]" (identifier "uVar12") (^ "^") (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "uVar13 = uVar13 ^ local_5c[2];" (assignment_expression "uVar13 = uVar13 ^ local_5c[2]" (identifier "uVar13") (= "=") (binary_expression "uVar13 ^ local_5c[2]" (identifier "uVar13") (^ "^") (subscript_expression "local_5c[2]" (identifier "local_5c") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "uVar10 = uVar10 ^ local_5c[3];" (assignment_expression "uVar10 = uVar10 ^ local_5c[3]" (identifier "uVar10") (= "=") (binary_expression "uVar10 ^ local_5c[3]" (identifier "uVar10") (^ "^") (subscript_expression "local_5c[3]" (identifier "local_5c") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;" (assignment_expression "local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100" (subscript_expression "local_5c[0xf]" (identifier "local_5c") ([ "[") (number_literal "0xf") (] "]")) (= "=") (binary_expression "(uVar8 >> 0x18) + uVar8 * 0x100" (parenthesized_expression "(uVar8 >> 0x18)" (( "(") (binary_expression "uVar8 >> 0x18" (identifier "uVar8") (>> ">>") (number_literal "0x18")) () ")")) (+ "+") (binary_expression "uVar8 * 0x100" (identifier "uVar8") (* "*") (number_literal "0x100")))) (; ";")) (expression_statement "local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;" (assignment_expression "local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100" (subscript_expression "local_5c[0xc]" (identifier "local_5c") ([ "[") (number_literal "0xc") (] "]")) (= "=") (binary_expression "(uVar12 >> 0x18) + uVar12 * 0x100" (parenthesized_expression "(uVar12 >> 0x18)" (( "(") (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) () ")")) (+ "+") (binary_expression "uVar12 * 0x100" (identifier "uVar12") (* "*") (number_literal "0x100")))) (; ";")) (expression_statement "local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;" (assignment_expression "local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100" (subscript_expression "local_5c[0xd]" (identifier "local_5c") ([ "[") (number_literal "0xd") (] "]")) (= "=") (binary_expression "(uVar13 >> 0x18) + uVar13 * 0x100" (parenthesized_expression "(uVar13 >> 0x18)" (( "(") (binary_expression "uVar13 >> 0x18" (identifier "uVar13") (>> ">>") (number_literal "0x18")) () ")")) (+ "+") (binary_expression "uVar13 * 0x100" (identifier "uVar13") (* "*") (number_literal "0x100")))) (; ";")) (expression_statement "local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;" (assignment_expression "local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100" (subscript_expression "local_5c[0xe]" (identifier "local_5c") ([ "[") (number_literal "0xe") (] "]")) (= "=") (binary_expression "(uVar10 >> 0x18) + uVar10 * 0x100" (parenthesized_expression "(uVar10 >> 0x18)" (( "(") (binary_expression "uVar10 >> 0x18" (identifier "uVar10") (>> ">>") (number_literal "0x18")) () ")")) (+ "+") (binary_expression "uVar10 * 0x100" (identifier "uVar10") (* "*") (number_literal "0x100")))) (; ";")) (expression_statement "local_5c[10] = uVar20 + local_5c[0xf];" (assignment_expression "local_5c[10] = uVar20 + local_5c[0xf]" (subscript_expression "local_5c[10]" (identifier "local_5c") ([ "[") (number_literal "10") (] "]")) (= "=") (binary_expression "uVar20 + local_5c[0xf]" (identifier "uVar20") (+ "+") (subscript_expression "local_5c[0xf]" (identifier "local_5c") ([ "[") (number_literal "0xf") (] "]")))) (; ";")) (expression_statement "local_5c[0xb] = uVar18 + local_5c[0xc];" (assignment_expression "local_5c[0xb] = uVar18 + local_5c[0xc]" (subscript_expression "local_5c[0xb]" (identifier "local_5c") ([ "[") (number_literal "0xb") (] "]")) (= "=") (binary_expression "uVar18 + local_5c[0xc]" (identifier "uVar18") (+ "+") (subscript_expression "local_5c[0xc]" (identifier "local_5c") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (expression_statement "local_5c[8] = uVar25 + local_5c[0xd];" (assignment_expression "local_5c[8] = uVar25 + local_5c[0xd]" (subscript_expression "local_5c[8]" (identifier "local_5c") ([ "[") (number_literal "8") (] "]")) (= "=") (binary_expression "uVar25 + local_5c[0xd]" (identifier "uVar25") (+ "+") (subscript_expression "local_5c[0xd]" (identifier "local_5c") ([ "[") (number_literal "0xd") (] "]")))) (; ";")) (expression_statement "local_5c[9] = uVar21 + local_5c[0xe];" (assignment_expression "local_5c[9] = uVar21 + local_5c[0xe]" (subscript_expression "local_5c[9]" (identifier "local_5c") ([ "[") (number_literal "9") (] "]")) (= "=") (binary_expression "uVar21 + local_5c[0xe]" (identifier "uVar21") (+ "+") (subscript_expression "local_5c[0xe]" (identifier "local_5c") ([ "[") (number_literal "0xe") (] "]")))) (; ";")) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar11 = uVar11 ^ local_5c[10];" (assignment_expression "uVar11 = uVar11 ^ local_5c[10]" (identifier "uVar11") (= "=") (binary_expression "uVar11 ^ local_5c[10]" (identifier "uVar11") (^ "^") (subscript_expression "local_5c[10]" (identifier "local_5c") ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "uVar15 = uVar15 ^ local_5c[0xb];" (assignment_expression "uVar15 = uVar15 ^ local_5c[0xb]" (identifier "uVar15") (= "=") (binary_expression "uVar15 ^ local_5c[0xb]" (identifier "uVar15") (^ "^") (subscript_expression "local_5c[0xb]" (identifier "local_5c") ([ "[") (number_literal "0xb") (] "]")))) (; ";")) (expression_statement "uVar14 = uVar14 ^ local_5c[8];" (assignment_expression "uVar14 = uVar14 ^ local_5c[8]" (identifier "uVar14") (= "=") (binary_expression "uVar14 ^ local_5c[8]" (identifier "uVar14") (^ "^") (subscript_expression "local_5c[8]" (identifier "local_5c") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "uVar16 = uVar16 ^ local_5c[9];" (assignment_expression "uVar16 = uVar16 ^ local_5c[9]" (identifier "uVar16") (= "=") (binary_expression "uVar16 ^ local_5c[9]" (identifier "uVar16") (^ "^") (subscript_expression "local_5c[9]" (identifier "local_5c") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;" (assignment_expression "local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80" (subscript_expression "local_5c[5]" (identifier "local_5c") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "(uVar11 >> 0x19) + uVar11 * 0x80" (parenthesized_expression "(uVar11 >> 0x19)" (( "(") (binary_expression "uVar11 >> 0x19" (identifier "uVar11") (>> ">>") (number_literal "0x19")) () ")")) (+ "+") (binary_expression "uVar11 * 0x80" (identifier "uVar11") (* "*") (number_literal "0x80")))) (; ";")) (expression_statement "local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;" (assignment_expression "local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80" (subscript_expression "local_5c[6]" (identifier "local_5c") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "(uVar15 >> 0x19) + uVar15 * 0x80" (parenthesized_expression "(uVar15 >> 0x19)" (( "(") (binary_expression "uVar15 >> 0x19" (identifier "uVar15") (>> ">>") (number_literal "0x19")) () ")")) (+ "+") (binary_expression "uVar15 * 0x80" (identifier "uVar15") (* "*") (number_literal "0x80")))) (; ";")) (expression_statement "local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;" (assignment_expression "local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80" (subscript_expression "local_5c[7]" (identifier "local_5c") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "(uVar14 >> 0x19) + uVar14 * 0x80" (parenthesized_expression "(uVar14 >> 0x19)" (( "(") (binary_expression "uVar14 >> 0x19" (identifier "uVar14") (>> ">>") (number_literal "0x19")) () ")")) (+ "+") (binary_expression "uVar14 * 0x80" (identifier "uVar14") (* "*") (number_literal "0x80")))) (; ";")) (expression_statement "local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;" (assignment_expression "local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80" (subscript_expression "local_5c[4]" (identifier "local_5c") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "(uVar16 >> 0x19) + uVar16 * 0x80" (parenthesized_expression "(uVar16 >> 0x19)" (( "(") (binary_expression "uVar16 >> 0x19" (identifier "uVar16") (>> ">>") (number_literal "0x19")) () ")")) (+ "+") (binary_expression "uVar16 * 0x80" (identifier "uVar16") (* "*") (number_literal "0x80")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "local_5c[0] = uVar6;" (assignment_expression "local_5c[0] = uVar6" (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" (identifier "puVar4") (= "=") (identifier "puVar7")) (; ";")) (expression_statement "puVar5 = param_1;" (assignment_expression "puVar5 = param_1" (identifier "puVar5") (= "=") (identifier "param_1")) (; ";")) (while_statement "while( true ) {\n    uVar8 = *puVar5;\n    puVar24 = puVar4 + 1;\n    puVar5 = puVar5 + 1;\n    *puVar4 = uVar8 + uVar6;\n    puVar4 = puVar7;\n    puVar23 = param_1 + 0x10;\n    if (&local_1c == puVar24) break;\n    uVar6 = *puVar24;\n    puVar4 = puVar24;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    uVar8 = *puVar5;\n    puVar24 = puVar4 + 1;\n    puVar5 = puVar5 + 1;\n    *puVar4 = uVar8 + uVar6;\n    puVar4 = puVar7;\n    puVar23 = param_1 + 0x10;\n    if (&local_1c == puVar24) break;\n    uVar6 = *puVar24;\n    puVar4 = puVar24;\n  }" ({ "{") (expression_statement "uVar8 = *puVar5;" (assignment_expression "uVar8 = *puVar5" (identifier "uVar8") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "puVar24 = puVar4 + 1;" (assignment_expression "puVar24 = puVar4 + 1" (identifier "puVar24") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" (identifier "puVar5") (= "=") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar4 = uVar8 + uVar6;" (assignment_expression "*puVar4 = uVar8 + uVar6" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (binary_expression "uVar8 + uVar6" (identifier "uVar8") (+ "+") (identifier "uVar6"))) (; ";")) (expression_statement "puVar4 = puVar7;" (assignment_expression "puVar4 = puVar7" (identifier "puVar4") (= "=") (identifier "puVar7")) (; ";")) (expression_statement "puVar23 = param_1 + 0x10;" (assignment_expression "puVar23 = param_1 + 0x10" (identifier "puVar23") (= "=") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10"))) (; ";")) (if_statement "if (&local_1c == puVar24) break;" (if "if") (parenthesized_expression "(&local_1c == puVar24)" (( "(") (binary_expression "&local_1c == puVar24" (pointer_expression "&local_1c" (& "&") (identifier "local_1c")) (== "==") (identifier "puVar24")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar6 = *puVar24;" (assignment_expression "uVar6 = *puVar24" (identifier "uVar6") (= "=") (pointer_expression "*puVar24" (* "*") (identifier "puVar24"))) (; ";")) (expression_statement "puVar4 = puVar24;" (assignment_expression "puVar4 = puVar24" (identifier "puVar4") (= "=") (identifier "puVar24")) (; ";")) (} "}"))) (do_statement "do {\n    uVar6 = *puVar4;\n    puVar4 = puVar4 + 1;\n    *(char *)puVar23 = (char)uVar6;\n    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);\n    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);\n    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);\n    puVar2 = PTR_smemclr_00111398;\n    puVar23 = puVar23 + 1;\n  } while (&local_1c != puVar4);" (do "do") (compound_statement "{\n    uVar6 = *puVar4;\n    puVar4 = puVar4 + 1;\n    *(char *)puVar23 = (char)uVar6;\n    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);\n    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);\n    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);\n    puVar2 = PTR_smemclr_00111398;\n    puVar23 = puVar23 + 1;\n  }" ({ "{") (expression_statement "uVar6 = *puVar4;" (assignment_expression "uVar6 = *puVar4" (identifier "uVar6") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "puVar4 = puVar4 + 1;" (assignment_expression "puVar4 = puVar4 + 1" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(char *)puVar23 = (char)uVar6;" (assignment_expression "*(char *)puVar23 = (char)uVar6" (pointer_expression "*(char *)puVar23" (* "*") (cast_expression "(char *)puVar23" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar23"))) (= "=") (cast_expression "(char)uVar6" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar6"))) (; ";")) (expression_statement "*(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);" (assignment_expression "*(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8)" (pointer_expression "*(char *)((int)puVar23 + 1)" (* "*") (cast_expression "(char *)((int)puVar23 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar23 + 1)" (( "(") (binary_expression "(int)puVar23 + 1" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (+ "+") (number_literal "1")) () ")")))) (= "=") (cast_expression "(char)(uVar6 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar6 >> 8)" (( "(") (binary_expression "uVar6 >> 8" (identifier "uVar6") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);" (assignment_expression "*(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10)" (pointer_expression "*(char *)((int)puVar23 + 2)" (* "*") (cast_expression "(char *)((int)puVar23 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar23 + 2)" (( "(") (binary_expression "(int)puVar23 + 2" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (+ "+") (number_literal "2")) () ")")))) (= "=") (cast_expression "(char)(uVar6 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar6 >> 0x10)" (( "(") (binary_expression "uVar6 >> 0x10" (identifier "uVar6") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);" (assignment_expression "*(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18)" (pointer_expression "*(char *)((int)puVar23 + 3)" (* "*") (cast_expression "(char *)((int)puVar23 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar23 + 3)" (( "(") (binary_expression "(int)puVar23 + 3" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (+ "+") (number_literal "3")) () ")")))) (= "=") (cast_expression "(char)(uVar6 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar6 >> 0x18)" (( "(") (binary_expression "uVar6 >> 0x18" (identifier "uVar6") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar2 = PTR_smemclr_00111398;" (assignment_expression "puVar2 = PTR_smemclr_00111398" (identifier "puVar2") (= "=") (identifier "PTR_smemclr_00111398")) (; ";")) (expression_statement "puVar23 = puVar23 + 1;" (assignment_expression "puVar23 = puVar23 + 1" (identifier "puVar23") (= "=") (binary_expression "puVar23 + 1" (identifier "puVar23") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&local_1c != puVar4)" (( "(") (binary_expression "&local_1c != puVar4" (pointer_expression "&local_1c" (& "&") (identifier "local_1c")) (!= "!=") (identifier "puVar4")) () ")")) (; ";")) (expression_statement "pbVar9 = &DAT_00000040;" (assignment_expression "pbVar9 = &DAT_00000040" (identifier "pbVar9") (= "=") (pointer_expression "&DAT_00000040" (& "&") (identifier "DAT_00000040"))) (; ";")) (expression_statement "param_1[0x20] = 0;" (assignment_expression "param_1[0x20] = 0" (subscript_expression "param_1[0x20]" (identifier "param_1") ([ "[") (number_literal "0x20") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)puVar2)();" (call_expression "(*(code *)puVar2)()" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar6 = param_1[0xc];" (assignment_expression "uVar6 = param_1[0xc]" (identifier "uVar6") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "param_1[0xc] = uVar6 + 1;" (assignment_expression "param_1[0xc] = uVar6 + 1" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar6 + 1 == 0) {\n    param_1[0xd] = param_1[0xd] + 1;\n  }" (if "if") (parenthesized_expression "(uVar6 + 1 == 0)" (( "(") (binary_expression "uVar6 + 1 == 0" (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    param_1[0xd] = param_1[0xd] + 1;\n  }" ({ "{") (expression_statement "param_1[0xd] = param_1[0xd] + 1;" (assignment_expression "param_1[0xd] = param_1[0xd] + 1" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (binary_expression "param_1[0xd] + 1" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (local_1c == *(uint *)puVar3) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_1c == *(uint *)puVar3)" (( "(") (binary_expression "local_1c == *(uint *)puVar3" (identifier "local_1c") (== "==") (pointer_expression "*(uint *)puVar3" (* "*") (cast_expression "(uint *)puVar3" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_001122c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_001122c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001122c8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_001122c8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_001122c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_001122c8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (puVar24 == (uint *)0x0) {\n    return;\n  }" (if "if") (parenthesized_expression "(puVar24 == (uint *)0x0)" (( "(") (binary_expression "puVar24 == (uint *)0x0" (identifier "puVar24") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar6 = puVar7[0x20];" (assignment_expression "uVar6 = puVar7[0x20]" (identifier "uVar6") (= "=") (subscript_expression "puVar7[0x20]" (identifier "puVar7") ([ "[") (number_literal "0x20") (] "]"))) (; ";")) (expression_statement "bVar1 = (int)uVar6 < 0x40;" (assignment_expression "bVar1 = (int)uVar6 < 0x40" (identifier "bVar1") (= "=") (binary_expression "(int)uVar6 < 0x40" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (number_literal "0x40"))) (; ";")) (labeled_statement "LAB_0006c064:\n  do {\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  } while( true );" (statement_identifier "LAB_0006c064") (: ":") (do_statement "do {\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    pbVar22 = pbVar9;\n    if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }\n    while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }\n    if (puVar24 == (uint *)0x0) {\n      return;\n    }\n  }" ({ "{") (expression_statement "pbVar22 = pbVar9;" (assignment_expression "pbVar22 = pbVar9" (identifier "pbVar22") (= "=") (identifier "pbVar9")) (; ";")) (if_statement "if (!bVar1) {\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (compound_statement "{\n      FUN_0006bcbc(puVar7);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      if (!bVar1) goto LAB_0006c064;\n    }" ({ "{") (expression_statement "FUN_0006bcbc(puVar7);" (call_expression "FUN_0006bcbc(puVar7)" (identifier "FUN_0006bcbc") (argument_list "(puVar7)" (( "(") (identifier "puVar7") () ")"))) (; ";")) (expression_statement "uVar6 = puVar7[0x20];" (assignment_expression "uVar6 = puVar7[0x20]" (identifier "uVar6") (= "=") (subscript_expression "puVar7[0x20]" (identifier "puVar7") ([ "[") (number_literal "0x20") (] "]"))) (; ";")) (expression_statement "bVar1 = (int)uVar6 < 0x40;" (assignment_expression "bVar1 = (int)uVar6 < 0x40" (identifier "bVar1") (= "=") (binary_expression "(int)uVar6 < 0x40" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (number_literal "0x40"))) (; ";")) (if_statement "if (!bVar1) goto LAB_0006c064;" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (goto_statement "goto LAB_0006c064;" (goto "goto") (statement_identifier "LAB_0006c064") (; ";"))) (} "}"))) (while_statement "while( true ) {\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      pbVar9 = pbVar22 + 1;\n      puVar7[0x20] = uVar6 + 1;\n      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);\n      uVar6 = puVar7[0x20];\n      bVar1 = (int)uVar6 < 0x40;\n      puVar24 = (uint *)((int)puVar24 + -1);\n      if (!bVar1) break;\n      pbVar22 = pbVar9;\n      if (puVar24 == (uint *)0x0) {\n        return;\n      }\n    }" ({ "{") (expression_statement "pbVar9 = pbVar22 + 1;" (assignment_expression "pbVar9 = pbVar22 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar7[0x20] = uVar6 + 1;" (assignment_expression "puVar7[0x20] = uVar6 + 1" (subscript_expression "puVar7[0x20]" (identifier "puVar7") ([ "[") (number_literal "0x20") (] "]")) (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);" (assignment_expression "*pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40)" (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (= "=") (binary_expression "*pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40)" (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (^ "^") (pointer_expression "*(byte *)((int)puVar7 + uVar6 + 0x40)" (* "*") (cast_expression "(byte *)((int)puVar7 + uVar6 + 0x40)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + uVar6 + 0x40)" (( "(") (binary_expression "(int)puVar7 + uVar6 + 0x40" (binary_expression "(int)puVar7 + uVar6" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (identifier "uVar6")) (+ "+") (number_literal "0x40")) () ")")))))) (; ";")) (expression_statement "uVar6 = puVar7[0x20];" (assignment_expression "uVar6 = puVar7[0x20]" (identifier "uVar6") (= "=") (subscript_expression "puVar7[0x20]" (identifier "puVar7") ([ "[") (number_literal "0x20") (] "]"))) (; ";")) (expression_statement "bVar1 = (int)uVar6 < 0x40;" (assignment_expression "bVar1 = (int)uVar6 < 0x40" (identifier "bVar1") (= "=") (binary_expression "(int)uVar6 < 0x40" (cast_expression "(int)uVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar6")) (< "<") (number_literal "0x40"))) (; ";")) (expression_statement "puVar24 = (uint *)((int)puVar24 + -1);" (assignment_expression "puVar24 = (uint *)((int)puVar24 + -1)" (identifier "puVar24") (= "=") (cast_expression "(uint *)((int)puVar24 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar24 + -1)" (( "(") (binary_expression "(int)puVar24 + -1" (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (!bVar1) break;" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar22 = pbVar9;" (assignment_expression "pbVar22 = pbVar9" (identifier "pbVar22") (= "=") (identifier "pbVar9")) (; ";")) (if_statement "if (puVar24 == (uint *)0x0) {\n        return;\n      }" (if "if") (parenthesized_expression "(puVar24 == (uint *)0x0)" (( "(") (binary_expression "puVar24 == (uint *)0x0" (identifier "puVar24") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (if_statement "if (puVar24 == (uint *)0x0) {\n      return;\n    }" (if "if") (parenthesized_expression "(puVar24 == (uint *)0x0)" (( "(") (binary_expression "puVar24 == (uint *)0x0" (identifier "puVar24") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))

void function_1(type_1 *ctx)

{
  bool bVar1;
  type_2 *puVar2;
  type_3 *puVar3;
  type_3 *puVar4;
  type_1 *var_1;
  type_4 var_6;
  type_1 *pcVar7;
  type_4 var_5;
  type_2 var_2;
  type_4 var_4;
  type_1 *ctx_00;
  type_2 uVar11;
  type_5 *pbVar12;
  type_2 uVar13;
  type_4 var_3;
  type_4 var_7;
  type_1 *var_20;
  type_4 var_14;
  type_4 var_13;
  type_4 var_12;
  int var_19;
  type_4 var_15;
  type_4 var_11;
  type_4 var_18;
  type_4 var_10;
  type_4 var_9;
  type_5 *var_23;
  type_6 *var_21;
  type_4 var_8;
  type_4 var_17;
  type_4 var_16;
  type_2 copy [16];
  type_2 var_22;
  
  puVar4 = PTR___stack_chk_guard_00112630;
  ctx_00 = (type_1 *)copy;
  var_22 = *(type_2 *)PTR___stack_chk_guard_00112630;
  var_1 = ctx;
  pcVar7 = ctx_00;
  do {
    puVar2 = var_1->state;
    uVar13 = var_1->state[1];
    uVar11 = var_1->state[2];
    var_2 = var_1->state[3];
    var_1 = (type_1 *)(var_1->state + 4);
    pcVar7->state[0] = *puVar2;
    pcVar7->state[1] = uVar13;
    pcVar7->state[2] = uVar11;
    pcVar7->state[3] = var_2;
    pcVar7 = (type_1 *)(pcVar7->state + 4);
  } while (var_1 != (type_1 *)ctx->current);
  var_19 = 10;
  var_2 = copy[0];
  do {
    var_3 = copy[4] + var_2 ^ copy[0xc];
    var_4 = copy[1] + copy[5] ^ copy[0xd];
    var_5 = copy[6] + copy[2] ^ copy[0xe];
    var_6 = copy[7] + copy[3] ^ copy[0xf];
    var_7 = (var_3 >> 0x10) + var_3 * 0x10000;
    var_4 = (var_4 >> 0x10) + var_4 * 0x10000;
    var_5 = (var_5 >> 0x10) + var_5 * 0x10000;
    var_6 = (var_6 >> 0x10) + var_6 * 0x10000;
    var_8 = var_7 + copy[8];
    var_9 = var_4 + copy[9];
    var_10 = var_5 + copy[10];
    var_11 = var_6 + copy[0xb];
    var_12 = var_8 ^ copy[4];
    var_3 = var_9 ^ copy[5];
    var_13 = var_10 ^ copy[6];
    var_14 = var_11 ^ copy[7];
    var_12 = (var_12 >> 0x14) + var_12 * 0x1000;
    var_3 = (var_3 >> 0x14) + var_3 * 0x1000;
    var_13 = (var_13 >> 0x14) + var_13 * 0x1000;
    var_14 = (var_14 >> 0x14) + var_14 * 0x1000;
    var_15 = copy[4] + var_2 + var_12;
    var_16 = copy[1] + copy[5] + var_3;
    var_17 = copy[6] + copy[2] + var_13;
    var_18 = copy[7] + copy[3] + var_14;
    var_7 = var_7 ^ var_15;
    var_4 = var_4 ^ var_16;
    var_5 = var_5 ^ var_17;
    var_6 = var_6 ^ var_18;
    var_7 = (var_7 >> 0x18) + var_7 * 0x100;
    var_4 = (var_4 >> 0x18) + var_4 * 0x100;
    var_5 = (var_5 >> 0x18) + var_5 * 0x100;
    var_6 = (var_6 >> 0x18) + var_6 * 0x100;
    var_8 = var_8 + var_7;
    var_9 = var_9 + var_4;
    var_10 = var_10 + var_5;
    var_11 = var_11 + var_6;
    var_12 = var_12 ^ var_8;
    var_3 = var_3 ^ var_9;
    var_13 = var_13 ^ var_10;
    var_14 = var_14 ^ var_11;
    var_12 = (var_12 >> 0x19) + var_12 * 0x80;
    var_3 = (var_3 >> 0x19) + var_3 * 0x80;
    var_13 = (var_13 >> 0x19) + var_13 * 0x80;
    var_14 = (var_14 >> 0x19) + var_14 * 0x80;
    var_15 = var_15 + var_3;
    var_16 = var_16 + var_13;
    var_17 = var_17 + var_14;
    var_18 = var_12 + var_18;
    var_6 = var_6 ^ var_15;
    var_7 = var_7 ^ var_16;
    var_4 = var_4 ^ var_17;
    var_5 = var_5 ^ var_18;
    var_6 = (var_6 >> 0x10) + var_6 * 0x10000;
    var_7 = (var_7 >> 0x10) + var_7 * 0x10000;
    var_4 = (var_4 >> 0x10) + var_4 * 0x10000;
    var_5 = (var_5 >> 0x10) + var_5 * 0x10000;
    var_10 = var_10 + var_6;
    var_11 = var_11 + var_7;
    var_8 = var_8 + var_4;
    var_9 = var_9 + var_5;
    var_3 = var_3 ^ var_10;
    var_13 = var_13 ^ var_11;
    var_14 = var_14 ^ var_8;
    var_12 = var_12 ^ var_9;
    var_3 = (var_3 >> 0x14) + var_3 * 0x1000;
    var_13 = (var_13 >> 0x14) + var_13 * 0x1000;
    var_14 = (var_14 >> 0x14) + var_14 * 0x1000;
    var_12 = (var_12 >> 0x14) + var_12 * 0x1000;
    var_2 = var_15 + var_3;
    copy[1] = var_16 + var_13;
    copy[2] = var_17 + var_14;
    copy[3] = var_18 + var_12;
    var_6 = var_6 ^ var_2;
    var_7 = var_7 ^ copy[1];
    var_4 = var_4 ^ copy[2];
    var_5 = var_5 ^ copy[3];
    copy[0xf] = (var_6 >> 0x18) + var_6 * 0x100;
    copy[0xc] = (var_7 >> 0x18) + var_7 * 0x100;
    copy[0xd] = (var_4 >> 0x18) + var_4 * 0x100;
    copy[0xe] = (var_5 >> 0x18) + var_5 * 0x100;
    copy[10] = var_10 + copy[0xf];
    copy[0xb] = var_11 + copy[0xc];
    copy[8] = var_8 + copy[0xd];
    copy[9] = var_9 + copy[0xe];
    var_19 = var_19 + -1;
    var_3 = var_3 ^ copy[10];
    var_13 = var_13 ^ copy[0xb];
    var_14 = var_14 ^ copy[8];
    var_12 = var_12 ^ copy[9];
    copy[5] = (var_3 >> 0x19) + var_3 * 0x80;
    copy[6] = (var_13 >> 0x19) + var_13 * 0x80;
    copy[7] = (var_14 >> 0x19) + var_14 * 0x80;
    copy[4] = (var_12 >> 0x19) + var_12 * 0x80;
  } while (var_19 != 0);
  copy[0] = var_2;
  var_1 = ctx_00;
  pcVar7 = ctx;
  while( true ) {
    puVar2 = pcVar7->state;
    var_20 = (type_1 *)(var_1->state + 1);
    pcVar7 = (type_1 *)(pcVar7->state + 1);
    var_1->state[0] = *puVar2 + var_2;
    var_1 = ctx_00;
    var_21 = ctx->current;
    if ((type_1 *)&var_22 == var_20) break;
    var_2 = var_20->state[0];
    var_1 = var_20;
  }
  do {
    var_2 = var_1->state[0];
    var_1 = (type_1 *)(var_1->state + 1);
    *var_21 = (type_6)var_2;
    var_21[1] = (type_6)(var_2 >> 8);
    var_21[2] = (type_6)(var_2 >> 0x10);
    var_21[3] = (type_6)(var_2 >> 0x18);
    puVar3 = PTR_smemclr_00111398;
    var_21 = var_21 + 4;
  } while ((type_1 *)&var_22 != var_1);
  pbVar12 = &DAT_00000040;
  ctx->currentIndex = 0;
  (*(type_7 *)puVar3)();
  var_2 = ctx->state[0xc] + 1;
  ctx->state[0xc] = var_2;
  if (var_2 == 0) {
    ctx->state[0xd] = ctx->state[0xd] + 1;
  }
  if (var_22 == *(type_2 *)puVar4) {
    return;
  }
  (*(type_7 *)PTR___stack_chk_fail_001122c8)();
  if (var_20 == (type_1 *)0x0) {
    return;
  }
  var_19 = ctx_00->currentIndex;
  bVar1 = var_19 < 0x40;
LAB_0006c064:
  do {
    var_23 = pbVar12;
    if (!bVar1) {
      function_1(ctx_00);
      var_19 = ctx_00->currentIndex;
      bVar1 = var_19 < 0x40;
      if (!bVar1) goto LAB_0006c064;
    }
    while( true ) {
      pbVar12 = var_23 + 1;
      ctx_00->currentIndex = var_19 + 1;
      *var_23 = *var_23 ^ ctx_00->current[var_19];
      var_19 = ctx_00->currentIndex;
      bVar1 = var_19 < 0x40;
      var_20 = (type_1 *)((int)&var_20[-1].currentIndex + 3);
      if (!bVar1) break;
      var_23 = pbVar12;
      if (var_20 == (type_1 *)0x0) {
        return;
      }
    }
    if (var_20 == (type_1 *)0x0) {
      return;
    }
  } while( true );
}


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

void MASKED(uint *param_1)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  uint *puVar4;
  uint *puVar5;
  uint uVar6;
  uint *puVar7;
  uint uVar8;
  byte *pbVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  int iVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  byte *pbVar22;
  uint *puVar23;
  uint *puVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  uint local_5c [16];
  uint local_1c;
  
  puVar3 = PTR___stack_chk_guard_00112630;
  puVar7 = local_5c;
  local_1c = *(uint *)PTR___stack_chk_guard_00112630;
  puVar4 = param_1;
  puVar5 = puVar7;
  do {
    uVar13 = *puVar4;
    uVar10 = puVar4[1];
    uVar8 = puVar4[2];
    uVar6 = puVar4[3];
    puVar4 = puVar4 + 4;
    *puVar5 = uVar13;
    puVar5[1] = uVar10;
    puVar5[2] = uVar8;
    puVar5[3] = uVar6;
    puVar5 = puVar5 + 4;
  } while (puVar4 != param_1 + 0x10);
  iVar17 = 10;
  uVar6 = local_5c[0];
  do {
    uVar11 = local_5c[4] + uVar6 ^ local_5c[0xc];
    uVar13 = local_5c[1] + local_5c[5] ^ local_5c[0xd];
    uVar10 = local_5c[6] + local_5c[2] ^ local_5c[0xe];
    uVar8 = local_5c[7] + local_5c[3] ^ local_5c[0xf];
    uVar12 = (uVar11 >> 0x10) + uVar11 * 0x10000;
    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;
    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;
    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;
    uVar25 = uVar12 + local_5c[8];
    uVar21 = uVar13 + local_5c[9];
    uVar20 = uVar10 + local_5c[10];
    uVar18 = uVar8 + local_5c[0xb];
    uVar16 = uVar25 ^ local_5c[4];
    uVar11 = uVar21 ^ local_5c[5];
    uVar15 = uVar20 ^ local_5c[6];
    uVar14 = uVar18 ^ local_5c[7];
    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;
    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;
    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;
    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;
    uVar6 = local_5c[4] + uVar6 + uVar16;
    uVar27 = local_5c[1] + local_5c[5] + uVar11;
    uVar26 = local_5c[6] + local_5c[2] + uVar15;
    uVar19 = local_5c[7] + local_5c[3] + uVar14;
    uVar12 = uVar12 ^ uVar6;
    uVar13 = uVar13 ^ uVar27;
    uVar10 = uVar10 ^ uVar26;
    uVar8 = uVar8 ^ uVar19;
    uVar12 = (uVar12 >> 0x18) + uVar12 * 0x100;
    uVar13 = (uVar13 >> 0x18) + uVar13 * 0x100;
    uVar10 = (uVar10 >> 0x18) + uVar10 * 0x100;
    uVar8 = (uVar8 >> 0x18) + uVar8 * 0x100;
    uVar25 = uVar25 + uVar12;
    uVar21 = uVar21 + uVar13;
    uVar20 = uVar20 + uVar10;
    uVar18 = uVar18 + uVar8;
    uVar16 = uVar16 ^ uVar25;
    uVar11 = uVar11 ^ uVar21;
    uVar15 = uVar15 ^ uVar20;
    uVar14 = uVar14 ^ uVar18;
    uVar16 = (uVar16 >> 0x19) + uVar16 * 0x80;
    uVar11 = (uVar11 >> 0x19) + uVar11 * 0x80;
    uVar15 = (uVar15 >> 0x19) + uVar15 * 0x80;
    uVar14 = (uVar14 >> 0x19) + uVar14 * 0x80;
    uVar6 = uVar6 + uVar11;
    uVar27 = uVar27 + uVar15;
    uVar26 = uVar26 + uVar14;
    uVar19 = uVar16 + uVar19;
    uVar8 = uVar8 ^ uVar6;
    uVar12 = uVar12 ^ uVar27;
    uVar13 = uVar13 ^ uVar26;
    uVar10 = uVar10 ^ uVar19;
    uVar8 = (uVar8 >> 0x10) + uVar8 * 0x10000;
    uVar12 = (uVar12 >> 0x10) + uVar12 * 0x10000;
    uVar13 = (uVar13 >> 0x10) + uVar13 * 0x10000;
    uVar10 = (uVar10 >> 0x10) + uVar10 * 0x10000;
    uVar20 = uVar20 + uVar8;
    uVar18 = uVar18 + uVar12;
    uVar25 = uVar25 + uVar13;
    uVar21 = uVar21 + uVar10;
    uVar11 = uVar11 ^ uVar20;
    uVar15 = uVar15 ^ uVar18;
    uVar14 = uVar14 ^ uVar25;
    uVar16 = uVar16 ^ uVar21;
    uVar11 = (uVar11 >> 0x14) + uVar11 * 0x1000;
    uVar15 = (uVar15 >> 0x14) + uVar15 * 0x1000;
    uVar14 = (uVar14 >> 0x14) + uVar14 * 0x1000;
    uVar16 = (uVar16 >> 0x14) + uVar16 * 0x1000;
    uVar6 = uVar6 + uVar11;
    local_5c[1] = uVar27 + uVar15;
    local_5c[2] = uVar26 + uVar14;
    local_5c[3] = uVar19 + uVar16;
    uVar8 = uVar8 ^ uVar6;
    uVar12 = uVar12 ^ local_5c[1];
    uVar13 = uVar13 ^ local_5c[2];
    uVar10 = uVar10 ^ local_5c[3];
    local_5c[0xf] = (uVar8 >> 0x18) + uVar8 * 0x100;
    local_5c[0xc] = (uVar12 >> 0x18) + uVar12 * 0x100;
    local_5c[0xd] = (uVar13 >> 0x18) + uVar13 * 0x100;
    local_5c[0xe] = (uVar10 >> 0x18) + uVar10 * 0x100;
    local_5c[10] = uVar20 + local_5c[0xf];
    local_5c[0xb] = uVar18 + local_5c[0xc];
    local_5c[8] = uVar25 + local_5c[0xd];
    local_5c[9] = uVar21 + local_5c[0xe];
    iVar17 = iVar17 + -1;
    uVar11 = uVar11 ^ local_5c[10];
    uVar15 = uVar15 ^ local_5c[0xb];
    uVar14 = uVar14 ^ local_5c[8];
    uVar16 = uVar16 ^ local_5c[9];
    local_5c[5] = (uVar11 >> 0x19) + uVar11 * 0x80;
    local_5c[6] = (uVar15 >> 0x19) + uVar15 * 0x80;
    local_5c[7] = (uVar14 >> 0x19) + uVar14 * 0x80;
    local_5c[4] = (uVar16 >> 0x19) + uVar16 * 0x80;
  } while (iVar17 != 0);
  local_5c[0] = uVar6;
  puVar4 = puVar7;
  puVar5 = param_1;
  while( true ) {
    uVar8 = *puVar5;
    puVar24 = puVar4 + 1;
    puVar5 = puVar5 + 1;
    *puVar4 = uVar8 + uVar6;
    puVar4 = puVar7;
    puVar23 = param_1 + 0x10;
    if (&local_1c == puVar24) break;
    uVar6 = *puVar24;
    puVar4 = puVar24;
  }
  do {
    uVar6 = *puVar4;
    puVar4 = puVar4 + 1;
    *(char *)puVar23 = (char)uVar6;
    *(char *)((int)puVar23 + 1) = (char)(uVar6 >> 8);
    *(char *)((int)puVar23 + 2) = (char)(uVar6 >> 0x10);
    *(char *)((int)puVar23 + 3) = (char)(uVar6 >> 0x18);
    puVar2 = PTR_smemclr_00111398;
    puVar23 = puVar23 + 1;
  } while (&local_1c != puVar4);
  pbVar9 = &DAT_00000040;
  param_1[0x20] = 0;
  (*(code *)puVar2)();
  uVar6 = param_1[0xc];
  param_1[0xc] = uVar6 + 1;
  if (uVar6 + 1 == 0) {
    param_1[0xd] = param_1[0xd] + 1;
  }
  if (local_1c == *(uint *)puVar3) {
    return;
  }
  (*(code *)PTR___stack_chk_fail_001122c8)();
  if (puVar24 == (uint *)0x0) {
    return;
  }
  uVar6 = puVar7[0x20];
  bVar1 = (int)uVar6 < 0x40;
LAB_0006c064:
  do {
    pbVar22 = pbVar9;
    if (!bVar1) {
      MASKED(puVar7);
      uVar6 = puVar7[0x20];
      bVar1 = (int)uVar6 < 0x40;
      if (!bVar1) goto LAB_0006c064;
    }
    while( true ) {
      pbVar9 = pbVar22 + 1;
      puVar7[0x20] = uVar6 + 1;
      *pbVar22 = *pbVar22 ^ *(byte *)((int)puVar7 + uVar6 + 0x40);
      uVar6 = puVar7[0x20];
      bVar1 = (int)uVar6 < 0x40;
      puVar24 = (uint *)((int)puVar24 + -1);
      if (!bVar1) break;
      pbVar22 = pbVar9;
      if (puVar24 == (uint *)0x0) {
        return;
      }
    }
    if (puVar24 == (uint *)0x0) {
      return;
    }
  } while( true );
}

