
/* std::string::append(std::initializer_list<char>) */

undefined1 * std::string::append(string *param_1,char *param_2,undefined1 *param_3,uint param_4)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  undefined1 *puVar27;
  uint *puVar28;
  uint *puVar29;
  int *piVar30;
  undefined4 *puVar31;
  undefined4 *puVar32;
  uint *puVar33;
  undefined4 uVar34;
  uint uVar35;
  uint *puVar36;
  uint in_t0;
  undefined4 uVar37;
  uint in_t1;
  undefined4 uVar38;
  uint in_t2;
  undefined4 uVar39;
  uint in_t3;
  uint in_t4;
  uint in_t5;
  undefined *puVar40;
  
  if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {
    puVar27 = (undefined1 *)_M_append(param_1,param_2,(uint)param_3);
    return puVar27;
  }
  piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);
  puVar40 = PTR___throw_length_error_00432480;
  (*(code *)PTR___throw_length_error_00432480)();
  uVar35 = piVar30[1];
  if (param_4 <= uVar35) {
    if ((undefined1 *)(uVar35 - param_4) <= param_3) {
      param_3 = (undefined1 *)(uVar35 - param_4);
    }
    if (param_3 != (undefined1 *)0x0) {
      if (param_3 == (undefined1 *)0x1) {
        *param_2 = *(char *)(*piVar30 + param_4);
        return (undefined1 *)0x1;
      }
      (**(code **)(puVar40 + 0x1747e0))(param_2);
    }
    return param_3;
  }
  puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);
  puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);
  puVar27 = (undefined1 *)
            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);
  if (puVar31 != puVar32) {
    puVar36 = (uint *)*puVar31;
    puVar29 = puVar31 + 2;
    puVar33 = (uint *)*puVar32;
    puVar28 = puVar32 + 2;
    if (puVar29 == puVar36) {
      if (puVar28 == puVar33) {
        uVar35 = puVar31[1];
        if (uVar35 == 0) {
          if (puVar32[1] == 0) {
            puVar27 = (undefined1 *)0x0;
            puVar31[1] = 0;
            puVar32[1] = 0;
          }
          else {
            uVar38 = puVar32[3];
            uVar34 = puVar32[4];
            uVar37 = puVar32[5];
            *puVar29 = *puVar28;
            puVar31[3] = uVar38;
            puVar31[4] = uVar34;
            puVar31[5] = uVar37;
            puVar31[1] = puVar32[1];
            puVar32[1] = 0;
            puVar27 = (undefined1 *)*puVar32;
            *puVar27 = 0;
          }
        }
        else if (puVar32[1] == 0) {
          uVar38 = puVar31[3];
          uVar34 = puVar31[4];
          uVar37 = puVar31[5];
          *puVar28 = *puVar29;
          puVar32[3] = uVar38;
          puVar32[4] = uVar34;
          puVar32[5] = uVar37;
          puVar32[1] = puVar31[1];
          puVar31[1] = 0;
          puVar27 = (undefined1 *)*puVar31;
          *puVar27 = 0;
        }
        else {
          uVar12 = (uint)puVar29 & 3;
          uVar20 = (uint)(puVar31 + 3) & 3;
          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);
          uVar1 = (uint)(puVar32 + 2) & 3;
          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);
          uVar2 = (uint)(puVar32 + 3) & 3;
          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);
          uVar3 = (uint)(puVar32 + 4) & 3;
          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);
          uVar37 = puVar32[5];
          uVar4 = (uint)(puVar31 + 4) & 3;
          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);
          uVar5 = (uint)(puVar31 + 5) & 3;
          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);
          uVar13 = (int)puVar31 + 0xbU & 3;
          uVar14 = (int)puVar31 + 0xfU & 3;
          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);
          uVar15 = (int)puVar32 + 0xbU & 3;
          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);
          uVar16 = (int)puVar32 + 0xfU & 3;
          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);
          uVar17 = (int)puVar32 + 0x13U & 3;
          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);
          uVar18 = (int)puVar31 + 0x13U & 3;
          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);
          uVar19 = (int)puVar31 + 0x17U & 3;
          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);
          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |
                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |
                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;
          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &
                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;
          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &
                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;
          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &
                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;
          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &
                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;
          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &
                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;
          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &
                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;
          puVar31[5] = uVar37;
          puVar27 = (undefined1 *)puVar31[1];
          puVar31[1] = puVar32[1];
          puVar32[1] = puVar27;
        }
      }
      else {
        uVar34 = puVar31[3];
        uVar35 = (uint)(puVar31 + 4) & 3;
        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);
        uVar37 = puVar31[5];
        uVar38 = puVar32[2];
        uVar12 = (int)puVar31 + 0x13U & 3;
        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);
        *puVar28 = *puVar29;
        puVar32[3] = uVar34;
        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &
                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;
        puVar32[5] = uVar37;
        *puVar31 = puVar33;
        *puVar32 = puVar28;
        puVar31[2] = uVar38;
        puVar27 = (undefined1 *)puVar31[1];
        puVar31[1] = puVar32[1];
        puVar32[1] = puVar27;
      }
    }
    else {
      uVar37 = puVar31[2];
      if (puVar28 == puVar33) {
        uVar39 = puVar32[3];
        uVar38 = puVar32[4];
        uVar34 = puVar32[5];
        *puVar29 = *puVar28;
        puVar31[3] = uVar39;
        puVar31[4] = uVar38;
        puVar31[5] = uVar34;
        *puVar32 = puVar36;
        *puVar31 = puVar29;
      }
      else {
        *puVar31 = puVar33;
        *puVar32 = puVar36;
        puVar31[2] = puVar32[2];
      }
      puVar32[2] = uVar37;
      puVar27 = (undefined1 *)puVar31[1];
      puVar31[1] = puVar32[1];
      puVar32[1] = puVar27;
    }
  }
  return puVar27;
}



undefined1 * FUN_002c1f50(string *param_1,char *param_2,undefined1 *param_3,uint param_4)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  undefined1 *puVar27;
  uint *puVar28;
  uint *puVar29;
  int *piVar30;
  undefined4 *puVar31;
  undefined4 *puVar32;
  uint *puVar33;
  undefined4 uVar34;
  uint uVar35;
  uint *puVar36;
  uint in_t0;
  undefined4 uVar37;
  uint in_t1;
  undefined4 uVar38;
  uint in_t2;
  undefined4 uVar39;
  uint in_t3;
  uint in_t4;
  uint in_t5;
  undefined *puVar40;
  
  if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {
    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);
    return puVar27;
  }
  piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);
  puVar40 = PTR___throw_length_error_00432480;
  (*(code *)PTR___throw_length_error_00432480)();
  uVar35 = piVar30[1];
  if (param_4 <= uVar35) {
    if ((undefined1 *)(uVar35 - param_4) <= param_3) {
      param_3 = (undefined1 *)(uVar35 - param_4);
    }
    if (param_3 != (undefined1 *)0x0) {
      if (param_3 == (undefined1 *)0x1) {
        *param_2 = *(char *)(*piVar30 + param_4);
        return (undefined1 *)0x1;
      }
      (**(code **)(puVar40 + 0x1747e0))(param_2);
    }
    return param_3;
  }
  puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);
  puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);
  puVar27 = (undefined1 *)
            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);
  if (puVar31 != puVar32) {
    puVar36 = (uint *)*puVar31;
    puVar29 = puVar31 + 2;
    puVar33 = (uint *)*puVar32;
    puVar28 = puVar32 + 2;
    if (puVar29 == puVar36) {
      if (puVar28 == puVar33) {
        uVar35 = puVar31[1];
        if (uVar35 == 0) {
          if (puVar32[1] == 0) {
            puVar27 = (undefined1 *)0x0;
            puVar31[1] = 0;
            puVar32[1] = 0;
          }
          else {
            uVar38 = puVar32[3];
            uVar34 = puVar32[4];
            uVar37 = puVar32[5];
            *puVar29 = *puVar28;
            puVar31[3] = uVar38;
            puVar31[4] = uVar34;
            puVar31[5] = uVar37;
            puVar31[1] = puVar32[1];
            puVar32[1] = 0;
            puVar27 = (undefined1 *)*puVar32;
            *puVar27 = 0;
          }
        }
        else if (puVar32[1] == 0) {
          uVar38 = puVar31[3];
          uVar34 = puVar31[4];
          uVar37 = puVar31[5];
          *puVar28 = *puVar29;
          puVar32[3] = uVar38;
          puVar32[4] = uVar34;
          puVar32[5] = uVar37;
          puVar32[1] = puVar31[1];
          puVar31[1] = 0;
          puVar27 = (undefined1 *)*puVar31;
          *puVar27 = 0;
        }
        else {
          uVar12 = (uint)puVar29 & 3;
          uVar20 = (uint)(puVar31 + 3) & 3;
          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);
          uVar1 = (uint)(puVar32 + 2) & 3;
          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);
          uVar2 = (uint)(puVar32 + 3) & 3;
          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);
          uVar3 = (uint)(puVar32 + 4) & 3;
          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);
          uVar37 = puVar32[5];
          uVar4 = (uint)(puVar31 + 4) & 3;
          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);
          uVar5 = (uint)(puVar31 + 5) & 3;
          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);
          uVar13 = (int)puVar31 + 0xbU & 3;
          uVar14 = (int)puVar31 + 0xfU & 3;
          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);
          uVar15 = (int)puVar32 + 0xbU & 3;
          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);
          uVar16 = (int)puVar32 + 0xfU & 3;
          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);
          uVar17 = (int)puVar32 + 0x13U & 3;
          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);
          uVar18 = (int)puVar31 + 0x13U & 3;
          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);
          uVar19 = (int)puVar31 + 0x17U & 3;
          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);
          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |
                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |
                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;
          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &
                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;
          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &
                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;
          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &
                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;
          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &
                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;
          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &
                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;
          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &
                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;
          puVar31[5] = uVar37;
          puVar27 = (undefined1 *)puVar31[1];
          puVar31[1] = puVar32[1];
          puVar32[1] = puVar27;
        }
      }
      else {
        uVar34 = puVar31[3];
        uVar35 = (uint)(puVar31 + 4) & 3;
        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);
        uVar37 = puVar31[5];
        uVar38 = puVar32[2];
        uVar12 = (int)puVar31 + 0x13U & 3;
        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);
        *puVar28 = *puVar29;
        puVar32[3] = uVar34;
        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &
                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;
        puVar32[5] = uVar37;
        *puVar31 = puVar33;
        *puVar32 = puVar28;
        puVar31[2] = uVar38;
        puVar27 = (undefined1 *)puVar31[1];
        puVar31[1] = puVar32[1];
        puVar32[1] = puVar27;
      }
    }
    else {
      uVar37 = puVar31[2];
      if (puVar28 == puVar33) {
        uVar39 = puVar32[3];
        uVar38 = puVar32[4];
        uVar34 = puVar32[5];
        *puVar29 = *puVar28;
        puVar31[3] = uVar39;
        puVar31[4] = uVar38;
        puVar31[5] = uVar34;
        *puVar32 = puVar36;
        *puVar31 = puVar29;
      }
      else {
        *puVar31 = puVar33;
        *puVar32 = puVar36;
        puVar31[2] = puVar32[2];
      }
      puVar32[2] = uVar37;
      puVar27 = (undefined1 *)puVar31[1];
      puVar31[1] = puVar32[1];
      puVar32[1] = puVar27;
    }
  }
  return puVar27;
}


lui gp,0x18
addiu gp,gp,-0x7d80
addu gp,gp,t9
addiu sp,sp,-0x20
lui v0,0x7fff
sw gp,0x10(sp)
ori v0,v0,0xffff
sw ra,0x1c(sp)
lw v1,0x4(a0)
sw a1,0x24(sp)
subu v0,v0,v1
sltu v0,v0,a2
bne v0,zero,0x002c1f98
_sw a2,0x28(sp)
lw ra,0x1c(sp)
lw t9,-0x7580(gp)
b 0x002c1bf8
_addiu sp,sp,0x20
lw a0,-0x7e1c(gp)
lw t9,-0x7d50(gp)
jalr t9
_addiu a0,a0,-0x6240
(translation_unit "undefined1 * FUN_002c1f50(string *param_1,char *param_2,undefined1 *param_3,uint param_4)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  undefined1 *puVar27;\n  uint *puVar28;\n  uint *puVar29;\n  int *piVar30;\n  undefined4 *puVar31;\n  undefined4 *puVar32;\n  uint *puVar33;\n  undefined4 uVar34;\n  uint uVar35;\n  uint *puVar36;\n  uint in_t0;\n  undefined4 uVar37;\n  uint in_t1;\n  undefined4 uVar38;\n  uint in_t2;\n  undefined4 uVar39;\n  uint in_t3;\n  uint in_t4;\n  uint in_t5;\n  undefined *puVar40;\n  \n  if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {\n    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }\n  piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);\n  puVar40 = PTR___throw_length_error_00432480;\n  (*(code *)PTR___throw_length_error_00432480)();\n  uVar35 = piVar30[1];\n  if (param_4 <= uVar35) {\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }\n  puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);\n  puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);\n  puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);\n  if (puVar31 != puVar32) {\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }\n  return puVar27;\n}\n\n" (function_definition "undefined1 * FUN_002c1f50(string *param_1,char *param_2,undefined1 *param_3,uint param_4)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  undefined1 *puVar27;\n  uint *puVar28;\n  uint *puVar29;\n  int *piVar30;\n  undefined4 *puVar31;\n  undefined4 *puVar32;\n  uint *puVar33;\n  undefined4 uVar34;\n  uint uVar35;\n  uint *puVar36;\n  uint in_t0;\n  undefined4 uVar37;\n  uint in_t1;\n  undefined4 uVar38;\n  uint in_t2;\n  undefined4 uVar39;\n  uint in_t3;\n  uint in_t4;\n  uint in_t5;\n  undefined *puVar40;\n  \n  if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {\n    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }\n  piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);\n  puVar40 = PTR___throw_length_error_00432480;\n  (*(code *)PTR___throw_length_error_00432480)();\n  uVar35 = piVar30[1];\n  if (param_4 <= uVar35) {\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }\n  puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);\n  puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);\n  puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);\n  if (puVar31 != puVar32) {\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }\n  return puVar27;\n}" type_identifier (pointer_declarator "* FUN_002c1f50(string *param_1,char *param_2,undefined1 *param_3,uint param_4)" * (function_declarator "FUN_002c1f50(string *param_1,char *param_2,undefined1 *param_3,uint param_4)" identifier (parameter_list "(string *param_1,char *param_2,undefined1 *param_3,uint param_4)" ( (parameter_declaration "string *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined1 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) )))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  undefined1 *puVar27;\n  uint *puVar28;\n  uint *puVar29;\n  int *piVar30;\n  undefined4 *puVar31;\n  undefined4 *puVar32;\n  uint *puVar33;\n  undefined4 uVar34;\n  uint uVar35;\n  uint *puVar36;\n  uint in_t0;\n  undefined4 uVar37;\n  uint in_t1;\n  undefined4 uVar38;\n  uint in_t2;\n  undefined4 uVar39;\n  uint in_t3;\n  uint in_t4;\n  uint in_t5;\n  undefined *puVar40;\n  \n  if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {\n    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }\n  piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);\n  puVar40 = PTR___throw_length_error_00432480;\n  (*(code *)PTR___throw_length_error_00432480)();\n  uVar35 = piVar30[1];\n  if (param_4 <= uVar35) {\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }\n  puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);\n  puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);\n  puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);\n  if (puVar31 != puVar32) {\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }\n  return puVar27;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type 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 "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "undefined1 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "uint *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "uint *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "int *piVar30;" primitive_type (pointer_declarator "*piVar30" * identifier) ;) (declaration "undefined4 *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "undefined4 *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "uint *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "undefined4 uVar34;" type_identifier identifier ;) (declaration "uint uVar35;" type_identifier identifier ;) (declaration "uint *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "uint in_t0;" type_identifier identifier ;) (declaration "undefined4 uVar37;" type_identifier identifier ;) (declaration "uint in_t1;" type_identifier identifier ;) (declaration "undefined4 uVar38;" type_identifier identifier ;) (declaration "uint in_t2;" type_identifier identifier ;) (declaration "undefined4 uVar39;" type_identifier identifier ;) (declaration "uint in_t3;" type_identifier identifier ;) (declaration "uint in_t4;" type_identifier identifier ;) (declaration "uint in_t5;" type_identifier identifier ;) (declaration "undefined *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (if_statement "if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {\n    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }" if (parenthesized_expression "(param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4)))" ( (binary_expression "param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))" identifier <= (cast_expression "(undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x7fffffffU - *(int *)(param_1 + 4))" ( (binary_expression "0x7fffffffU - *(int *)(param_1 + 4)" number_literal - (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) )))) )) (compound_statement "{\n    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }" { (ERROR "puVar27 = (undefined1 *)std::" (assignment_expression "puVar27 = (undefined1 *)std" identifier = (cast_expression "(undefined1 *)std" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "string::_M_append(param_1,param_2,(uint)param_3);" statement_identifier : (ERROR ":" :) (expression_statement "_M_append(param_1,param_2,(uint)param_3);" (call_expression "_M_append(param_1,param_2,(uint)param_3)" identifier (argument_list "(param_1,param_2,(uint)param_3)" ( identifier , identifier , (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;)) (return_statement "return puVar27;" return identifier ;) })) (expression_statement "piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);" (assignment_expression "piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240)" identifier = (cast_expression "(int *)(PTR_s_alize_xindex_004323b4 + -0x6240)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0x6240)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6240" identifier + number_literal) )))) ;) (expression_statement "puVar40 = PTR___throw_length_error_00432480;" (assignment_expression "puVar40 = PTR___throw_length_error_00432480" identifier = identifier) ;) (expression_statement "(*(code *)PTR___throw_length_error_00432480)();" (call_expression "(*(code *)PTR___throw_length_error_00432480)()" (parenthesized_expression "(*(code *)PTR___throw_length_error_00432480)" ( (pointer_expression "*(code *)PTR___throw_length_error_00432480" * (cast_expression "(code *)PTR___throw_length_error_00432480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar35 = piVar30[1];" (assignment_expression "uVar35 = piVar30[1]" identifier = (subscript_expression "piVar30[1]" identifier [ number_literal ])) ;) (if_statement "if (param_4 <= uVar35) {\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }" if (parenthesized_expression "(param_4 <= uVar35)" ( (binary_expression "param_4 <= uVar35" identifier <= identifier) )) (compound_statement "{\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }" { (if_statement "if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }" if (parenthesized_expression "((undefined1 *)(uVar35 - param_4) <= param_3)" ( (binary_expression "(undefined1 *)(uVar35 - param_4) <= param_3" (cast_expression "(undefined1 *)(uVar35 - param_4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar35 - param_4)" ( (binary_expression "uVar35 - param_4" identifier - identifier) ))) <= identifier) )) (compound_statement "{\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }" { (expression_statement "param_3 = (undefined1 *)(uVar35 - param_4);" (assignment_expression "param_3 = (undefined1 *)(uVar35 - param_4)" identifier = (cast_expression "(undefined1 *)(uVar35 - param_4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar35 - param_4)" ( (binary_expression "uVar35 - param_4" identifier - identifier) )))) ;) })) (if_statement "if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }" if (parenthesized_expression "(param_3 != (undefined1 *)0x0)" ( (binary_expression "param_3 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }" { (if_statement "if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }" if (parenthesized_expression "(param_3 == (undefined1 *)0x1)" ( (binary_expression "param_3 == (undefined1 *)0x1" identifier == (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }" { (expression_statement "*param_2 = *(char *)(*piVar30 + param_4);" (assignment_expression "*param_2 = *(char *)(*piVar30 + param_4)" (pointer_expression "*param_2" * identifier) = (pointer_expression "*(char *)(*piVar30 + param_4)" * (cast_expression "(char *)(*piVar30 + param_4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar30 + param_4)" ( (binary_expression "*piVar30 + param_4" (pointer_expression "*piVar30" * identifier) + identifier) ))))) ;) (return_statement "return (undefined1 *)0x1;" return (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "(**(code **)(puVar40 + 0x1747e0))(param_2);" (call_expression "(**(code **)(puVar40 + 0x1747e0))(param_2)" (parenthesized_expression "(**(code **)(puVar40 + 0x1747e0))" ( (pointer_expression "**(code **)(puVar40 + 0x1747e0)" * (pointer_expression "*(code **)(puVar40 + 0x1747e0)" * (cast_expression "(code **)(puVar40 + 0x1747e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + 0x1747e0)" ( (binary_expression "puVar40 + 0x1747e0" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier ))) ;) })) (return_statement "return param_3;" return identifier ;) })) (expression_statement "puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);" (assignment_expression "puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar40 + 0x1702c4) + 0x733c)" ( (binary_expression "*(int *)(puVar40 + 0x1702c4) + 0x733c" (pointer_expression "*(int *)(puVar40 + 0x1702c4)" * (cast_expression "(int *)(puVar40 + 0x1702c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + 0x1702c4)" ( (binary_expression "puVar40 + 0x1702c4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);" (assignment_expression "puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar40 + 0x17040c) + -0x25a4)" ( (binary_expression "*(int *)(puVar40 + 0x17040c) + -0x25a4" (pointer_expression "*(int *)(puVar40 + 0x17040c)" * (cast_expression "(int *)(puVar40 + 0x17040c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + 0x17040c)" ( (binary_expression "puVar40 + 0x17040c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);" (assignment_expression "puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" identifier = (cast_expression "(undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" (parenthesized_expression "(**(code **)(puVar40 + 0x171040))" ( (pointer_expression "**(code **)(puVar40 + 0x171040)" * (pointer_expression "*(code **)(puVar40 + 0x171040)" * (cast_expression "(code **)(puVar40 + 0x171040)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + 0x171040)" ( (binary_expression "puVar40 + 0x171040" identifier + number_literal) ))))) )) (argument_list "(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" ( identifier , identifier , identifier , identifier , (binary_expression "puVar40 + 0x178228" identifier + number_literal) ))))) ;) (if_statement "if (puVar31 != puVar32) {\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }" if (parenthesized_expression "(puVar31 != puVar32)" ( (binary_expression "puVar31 != puVar32" identifier != identifier) )) (compound_statement "{\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }" { (expression_statement "puVar36 = (uint *)*puVar31;" (assignment_expression "puVar36 = (uint *)*puVar31" identifier = (cast_expression "(uint *)*puVar31" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar31" * identifier))) ;) (expression_statement "puVar29 = puVar31 + 2;" (assignment_expression "puVar29 = puVar31 + 2" identifier = (binary_expression "puVar31 + 2" identifier + number_literal)) ;) (expression_statement "puVar33 = (uint *)*puVar32;" (assignment_expression "puVar33 = (uint *)*puVar32" identifier = (cast_expression "(uint *)*puVar32" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar32" * identifier))) ;) (expression_statement "puVar28 = puVar32 + 2;" (assignment_expression "puVar28 = puVar32 + 2" identifier = (binary_expression "puVar32 + 2" identifier + number_literal)) ;) (if_statement "if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }" if (parenthesized_expression "(puVar29 == puVar36)" ( (binary_expression "puVar29 == puVar36" identifier == identifier) )) (compound_statement "{\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }" { (if_statement "if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }" if (parenthesized_expression "(puVar28 == puVar33)" ( (binary_expression "puVar28 == puVar33" identifier == identifier) )) (compound_statement "{\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }" { (expression_statement "uVar35 = puVar31[1];" (assignment_expression "uVar35 = puVar31[1]" identifier = (subscript_expression "puVar31[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" if (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) )) (compound_statement "{\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }" { (if_statement "if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }" if (parenthesized_expression "(puVar32[1] == 0)" ( (binary_expression "puVar32[1] == 0" (subscript_expression "puVar32[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }" { (expression_statement "puVar27 = (undefined1 *)0x0;" (assignment_expression "puVar27 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar31[1] = 0;" (assignment_expression "puVar31[1] = 0" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[1] = 0;" (assignment_expression "puVar32[1] = 0" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }" else (compound_statement "{\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }" { (expression_statement "uVar38 = puVar32[3];" (assignment_expression "uVar38 = puVar32[3]" identifier = (subscript_expression "puVar32[3]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = puVar32[4];" (assignment_expression "uVar34 = puVar32[4]" identifier = (subscript_expression "puVar32[4]" identifier [ number_literal ])) ;) (expression_statement "uVar37 = puVar32[5];" (assignment_expression "uVar37 = puVar32[5]" identifier = (subscript_expression "puVar32[5]" identifier [ number_literal ])) ;) (expression_statement "*puVar29 = *puVar28;" (assignment_expression "*puVar29 = *puVar28" (pointer_expression "*puVar29" * identifier) = (pointer_expression "*puVar28" * identifier)) ;) (expression_statement "puVar31[3] = uVar38;" (assignment_expression "puVar31[3] = uVar38" (subscript_expression "puVar31[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31[4] = uVar34;" (assignment_expression "puVar31[4] = uVar34" (subscript_expression "puVar31[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31[5] = uVar37;" (assignment_expression "puVar31[5] = uVar37" (subscript_expression "puVar31[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = (subscript_expression "puVar32[1]" identifier [ number_literal ])) ;) (expression_statement "puVar32[1] = 0;" (assignment_expression "puVar32[1] = 0" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar27 = (undefined1 *)*puVar32;" (assignment_expression "puVar27 = (undefined1 *)*puVar32" identifier = (cast_expression "(undefined1 *)*puVar32" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar32" * identifier))) ;) (expression_statement "*puVar27 = 0;" (assignment_expression "*puVar27 = 0" (pointer_expression "*puVar27" * identifier) = number_literal) ;) }))) }) (else_clause "else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" else (if_statement "if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" if (parenthesized_expression "(puVar32[1] == 0)" ( (binary_expression "puVar32[1] == 0" (subscript_expression "puVar32[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }" { (expression_statement "uVar38 = puVar31[3];" (assignment_expression "uVar38 = puVar31[3]" identifier = (subscript_expression "puVar31[3]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = puVar31[4];" (assignment_expression "uVar34 = puVar31[4]" identifier = (subscript_expression "puVar31[4]" identifier [ number_literal ])) ;) (expression_statement "uVar37 = puVar31[5];" (assignment_expression "uVar37 = puVar31[5]" identifier = (subscript_expression "puVar31[5]" identifier [ number_literal ])) ;) (expression_statement "*puVar28 = *puVar29;" (assignment_expression "*puVar28 = *puVar29" (pointer_expression "*puVar28" * identifier) = (pointer_expression "*puVar29" * identifier)) ;) (expression_statement "puVar32[3] = uVar38;" (assignment_expression "puVar32[3] = uVar38" (subscript_expression "puVar32[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar32[4] = uVar34;" (assignment_expression "puVar32[4] = uVar34" (subscript_expression "puVar32[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar32[5] = uVar37;" (assignment_expression "puVar32[5] = uVar37" (subscript_expression "puVar32[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar32[1] = puVar31[1];" (assignment_expression "puVar32[1] = puVar31[1]" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = (subscript_expression "puVar31[1]" identifier [ number_literal ])) ;) (expression_statement "puVar31[1] = 0;" (assignment_expression "puVar31[1] = 0" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar27 = (undefined1 *)*puVar31;" (assignment_expression "puVar27 = (undefined1 *)*puVar31" identifier = (cast_expression "(undefined1 *)*puVar31" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar31" * identifier))) ;) (expression_statement "*puVar27 = 0;" (assignment_expression "*puVar27 = 0" (pointer_expression "*puVar27" * identifier) = number_literal) ;) }) (else_clause "else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" else (compound_statement "{\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" { (expression_statement "uVar12 = (uint)puVar29 & 3;" (assignment_expression "uVar12 = (uint)puVar29 & 3" identifier = (binary_expression "(uint)puVar29 & 3" (cast_expression "(uint)puVar29" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar20 = (uint)(puVar31 + 3) & 3;" (assignment_expression "uVar20 = (uint)(puVar31 + 3) & 3" identifier = (binary_expression "(uint)(puVar31 + 3) & 3" (call_expression "(uint)(puVar31 + 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar31 + 3)" ( (binary_expression "puVar31 + 3" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);" (assignment_expression "iVar6 = *(int *)((int)(puVar31 + 3) - uVar20)" identifier = (pointer_expression "*(int *)((int)(puVar31 + 3) - uVar20)" * (cast_expression "(int *)((int)(puVar31 + 3) - uVar20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar31 + 3) - uVar20)" ( (binary_expression "(int)(puVar31 + 3) - uVar20" (cast_expression "(int)(puVar31 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar31 + 3)" ( (binary_expression "puVar31 + 3" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar1 = (uint)(puVar32 + 2) & 3;" (assignment_expression "uVar1 = (uint)(puVar32 + 2) & 3" identifier = (binary_expression "(uint)(puVar32 + 2) & 3" (call_expression "(uint)(puVar32 + 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar32 + 2)" ( (binary_expression "puVar32 + 2" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);" (assignment_expression "iVar7 = *(int *)((int)(puVar32 + 2) - uVar1)" identifier = (pointer_expression "*(int *)((int)(puVar32 + 2) - uVar1)" * (cast_expression "(int *)((int)(puVar32 + 2) - uVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar32 + 2) - uVar1)" ( (binary_expression "(int)(puVar32 + 2) - uVar1" (cast_expression "(int)(puVar32 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar32 + 2)" ( (binary_expression "puVar32 + 2" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar2 = (uint)(puVar32 + 3) & 3;" (assignment_expression "uVar2 = (uint)(puVar32 + 3) & 3" identifier = (binary_expression "(uint)(puVar32 + 3) & 3" (call_expression "(uint)(puVar32 + 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar32 + 3)" ( (binary_expression "puVar32 + 3" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);" (assignment_expression "iVar8 = *(int *)((int)(puVar32 + 3) - uVar2)" identifier = (pointer_expression "*(int *)((int)(puVar32 + 3) - uVar2)" * (cast_expression "(int *)((int)(puVar32 + 3) - uVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar32 + 3) - uVar2)" ( (binary_expression "(int)(puVar32 + 3) - uVar2" (cast_expression "(int)(puVar32 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar32 + 3)" ( (binary_expression "puVar32 + 3" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar3 = (uint)(puVar32 + 4) & 3;" (assignment_expression "uVar3 = (uint)(puVar32 + 4) & 3" identifier = (binary_expression "(uint)(puVar32 + 4) & 3" (call_expression "(uint)(puVar32 + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar32 + 4)" ( (binary_expression "puVar32 + 4" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);" (assignment_expression "iVar9 = *(int *)((int)(puVar32 + 4) - uVar3)" identifier = (pointer_expression "*(int *)((int)(puVar32 + 4) - uVar3)" * (cast_expression "(int *)((int)(puVar32 + 4) - uVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar32 + 4) - uVar3)" ( (binary_expression "(int)(puVar32 + 4) - uVar3" (cast_expression "(int)(puVar32 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar32 + 4)" ( (binary_expression "puVar32 + 4" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar37 = puVar32[5];" (assignment_expression "uVar37 = puVar32[5]" identifier = (subscript_expression "puVar32[5]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = (uint)(puVar31 + 4) & 3;" (assignment_expression "uVar4 = (uint)(puVar31 + 4) & 3" identifier = (binary_expression "(uint)(puVar31 + 4) & 3" (call_expression "(uint)(puVar31 + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar31 + 4)" ( (binary_expression "puVar31 + 4" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);" (assignment_expression "iVar10 = *(int *)((int)(puVar31 + 4) - uVar4)" identifier = (pointer_expression "*(int *)((int)(puVar31 + 4) - uVar4)" * (cast_expression "(int *)((int)(puVar31 + 4) - uVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar31 + 4) - uVar4)" ( (binary_expression "(int)(puVar31 + 4) - uVar4" (cast_expression "(int)(puVar31 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar31 + 4)" ( (binary_expression "puVar31 + 4" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar5 = (uint)(puVar31 + 5) & 3;" (assignment_expression "uVar5 = (uint)(puVar31 + 5) & 3" identifier = (binary_expression "(uint)(puVar31 + 5) & 3" (call_expression "(uint)(puVar31 + 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar31 + 5)" ( (binary_expression "puVar31 + 5" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);" (assignment_expression "iVar11 = *(int *)((int)(puVar31 + 5) - uVar5)" identifier = (pointer_expression "*(int *)((int)(puVar31 + 5) - uVar5)" * (cast_expression "(int *)((int)(puVar31 + 5) - uVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar31 + 5) - uVar5)" ( (binary_expression "(int)(puVar31 + 5) - uVar5" (cast_expression "(int)(puVar31 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar31 + 5)" ( (binary_expression "puVar31 + 5" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar13 = (int)puVar31 + 0xbU & 3;" (assignment_expression "uVar13 = (int)puVar31 + 0xbU & 3" identifier = (binary_expression "(int)puVar31 + 0xbU & 3" (binary_expression "(int)puVar31 + 0xbU" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar14 = (int)puVar31 + 0xfU & 3;" (assignment_expression "uVar14 = (int)puVar31 + 0xfU & 3" identifier = (binary_expression "(int)puVar31 + 0xfU & 3" (binary_expression "(int)puVar31 + 0xfU" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);" (assignment_expression "uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14)" identifier = (pointer_expression "*(uint *)(((int)puVar31 + 0xfU) - uVar14)" * (cast_expression "(uint *)(((int)puVar31 + 0xfU) - uVar14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar31 + 0xfU) - uVar14)" ( (binary_expression "((int)puVar31 + 0xfU) - uVar14" (parenthesized_expression "((int)puVar31 + 0xfU)" ( (binary_expression "(int)puVar31 + 0xfU" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "uVar15 = (int)puVar32 + 0xbU & 3;" (assignment_expression "uVar15 = (int)puVar32 + 0xbU & 3" identifier = (binary_expression "(int)puVar32 + 0xbU & 3" (binary_expression "(int)puVar32 + 0xbU" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);" (assignment_expression "uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15)" identifier = (pointer_expression "*(uint *)(((int)puVar32 + 0xbU) - uVar15)" * (cast_expression "(uint *)(((int)puVar32 + 0xbU) - uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar32 + 0xbU) - uVar15)" ( (binary_expression "((int)puVar32 + 0xbU) - uVar15" (parenthesized_expression "((int)puVar32 + 0xbU)" ( (binary_expression "(int)puVar32 + 0xbU" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "uVar16 = (int)puVar32 + 0xfU & 3;" (assignment_expression "uVar16 = (int)puVar32 + 0xfU & 3" identifier = (binary_expression "(int)puVar32 + 0xfU & 3" (binary_expression "(int)puVar32 + 0xfU" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);" (assignment_expression "uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16)" identifier = (pointer_expression "*(uint *)(((int)puVar32 + 0xfU) - uVar16)" * (cast_expression "(uint *)(((int)puVar32 + 0xfU) - uVar16)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar32 + 0xfU) - uVar16)" ( (binary_expression "((int)puVar32 + 0xfU) - uVar16" (parenthesized_expression "((int)puVar32 + 0xfU)" ( (binary_expression "(int)puVar32 + 0xfU" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "uVar17 = (int)puVar32 + 0x13U & 3;" (assignment_expression "uVar17 = (int)puVar32 + 0x13U & 3" identifier = (binary_expression "(int)puVar32 + 0x13U & 3" (binary_expression "(int)puVar32 + 0x13U" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);" (assignment_expression "uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17)" identifier = (pointer_expression "*(uint *)(((int)puVar32 + 0x13U) - uVar17)" * (cast_expression "(uint *)(((int)puVar32 + 0x13U) - uVar17)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar32 + 0x13U) - uVar17)" ( (binary_expression "((int)puVar32 + 0x13U) - uVar17" (parenthesized_expression "((int)puVar32 + 0x13U)" ( (binary_expression "(int)puVar32 + 0x13U" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "uVar18 = (int)puVar31 + 0x13U & 3;" (assignment_expression "uVar18 = (int)puVar31 + 0x13U & 3" identifier = (binary_expression "(int)puVar31 + 0x13U & 3" (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);" (assignment_expression "uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18)" identifier = (pointer_expression "*(uint *)(((int)puVar31 + 0x13U) - uVar18)" * (cast_expression "(uint *)(((int)puVar31 + 0x13U) - uVar18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar31 + 0x13U) - uVar18)" ( (binary_expression "((int)puVar31 + 0x13U) - uVar18" (parenthesized_expression "((int)puVar31 + 0x13U)" ( (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "uVar19 = (int)puVar31 + 0x17U & 3;" (assignment_expression "uVar19 = (int)puVar31 + 0x17U & 3" identifier = (binary_expression "(int)puVar31 + 0x17U & 3" (binary_expression "(int)puVar31 + 0x17U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);" (assignment_expression "uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19)" identifier = (pointer_expression "*(uint *)(((int)puVar31 + 0x17U) - uVar19)" * (cast_expression "(uint *)(((int)puVar31 + 0x17U) - uVar19)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar31 + 0x17U) - uVar19)" ( (binary_expression "((int)puVar31 + 0x17U) - uVar19" (parenthesized_expression "((int)puVar31 + 0x17U)" ( (binary_expression "(int)puVar31 + 0x17U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "*puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;" (assignment_expression "*puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8" (pointer_expression "*puVar28" * identifier) = (binary_expression "(*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8" (binary_expression "(*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8" (parenthesized_expression "(*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8)" ( (binary_expression "*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8" (binary_expression "*(int *)((int)puVar29 - uVar12) << uVar12 * 8" (pointer_expression "*(int *)((int)puVar29 - uVar12)" * (cast_expression "(int *)((int)puVar29 - uVar12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 - uVar12)" ( (binary_expression "(int)puVar29 - uVar12" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) << (binary_expression "uVar12 * 8" identifier * number_literal)) | (binary_expression "in_t5 & 0xffffffffU >> (4 - uVar12) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar12) * 8" number_literal >> (binary_expression "(4 - uVar12) * 8" (parenthesized_expression "(4 - uVar12)" ( (binary_expression "4 - uVar12" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar13 + 1) * 8" number_literal << (binary_expression "(uVar13 + 1) * 8" (parenthesized_expression "(uVar13 + 1)" ( (binary_expression "uVar13 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8" (pointer_expression "*(uint *)(((int)puVar31 + 0xbU) - uVar13)" * (cast_expression "(uint *)(((int)puVar31 + 0xbU) - uVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar31 + 0xbU) - uVar13)" ( (binary_expression "((int)puVar31 + 0xbU) - uVar13" (parenthesized_expression "((int)puVar31 + 0xbU)" ( (binary_expression "(int)puVar31 + 0xbU" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar13) * 8" (parenthesized_expression "(3 - uVar13)" ( (binary_expression "3 - uVar13" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;" (assignment_expression "puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8" (subscript_expression "puVar32[3]" identifier [ number_literal ]) = (binary_expression "(iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8" (binary_expression "(iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8" (parenthesized_expression "(iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8)" ( (binary_expression "iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8" (binary_expression "iVar6 << uVar20 * 8" identifier << (binary_expression "uVar20 * 8" identifier * number_literal)) | (binary_expression "in_t4 & 0xffffffffU >> (4 - uVar20) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar20) * 8" number_literal >> (binary_expression "(4 - uVar20) * 8" (parenthesized_expression "(4 - uVar20)" ( (binary_expression "4 - uVar20" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar14 + 1) * 8" number_literal << (binary_expression "(uVar14 + 1) * 8" (parenthesized_expression "(uVar14 + 1)" ( (binary_expression "uVar14 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar21 >> (3 - uVar14) * 8" identifier >> (binary_expression "(3 - uVar14) * 8" (parenthesized_expression "(3 - uVar14)" ( (binary_expression "3 - uVar14" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;" (assignment_expression "puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8" (subscript_expression "puVar32[4]" identifier [ number_literal ]) = (binary_expression "(iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8" (binary_expression "(iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8" (parenthesized_expression "(iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8)" ( (binary_expression "iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8" (binary_expression "iVar10 << uVar4 * 8" identifier << (binary_expression "uVar4 * 8" identifier * number_literal)) | (binary_expression "in_t3 & 0xffffffffU >> (4 - uVar4) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar4) * 8" number_literal >> (binary_expression "(4 - uVar4) * 8" (parenthesized_expression "(4 - uVar4)" ( (binary_expression "4 - uVar4" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar18 + 1) * 8" number_literal << (binary_expression "(uVar18 + 1) * 8" (parenthesized_expression "(uVar18 + 1)" ( (binary_expression "uVar18 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar25 >> (3 - uVar18) * 8" identifier >> (binary_expression "(3 - uVar18) * 8" (parenthesized_expression "(3 - uVar18)" ( (binary_expression "3 - uVar18" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;" (assignment_expression "puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8" (subscript_expression "puVar32[5]" identifier [ number_literal ]) = (binary_expression "(iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8" (binary_expression "(iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8" (parenthesized_expression "(iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8)" ( (binary_expression "iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8" (binary_expression "iVar11 << uVar5 * 8" identifier << (binary_expression "uVar5 * 8" identifier * number_literal)) | (binary_expression "in_t2 & 0xffffffffU >> (4 - uVar5) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar5) * 8" number_literal >> (binary_expression "(4 - uVar5) * 8" (parenthesized_expression "(4 - uVar5)" ( (binary_expression "4 - uVar5" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar19 + 1) * 8" number_literal << (binary_expression "(uVar19 + 1) * 8" (parenthesized_expression "(uVar19 + 1)" ( (binary_expression "uVar19 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar26 >> (3 - uVar19) * 8" identifier >> (binary_expression "(3 - uVar19) * 8" (parenthesized_expression "(3 - uVar19)" ( (binary_expression "3 - uVar19" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;" (assignment_expression "puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8" (subscript_expression "puVar31[2]" identifier [ number_literal ]) = (binary_expression "(iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8" (binary_expression "(iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8" (parenthesized_expression "(iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8)" ( (binary_expression "iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8" (binary_expression "iVar7 << uVar1 * 8" identifier << (binary_expression "uVar1 * 8" identifier * number_literal)) | (binary_expression "in_t1 & 0xffffffffU >> (4 - uVar1) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar1) * 8" number_literal >> (binary_expression "(4 - uVar1) * 8" (parenthesized_expression "(4 - uVar1)" ( (binary_expression "4 - uVar1" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar15 + 1) * 8" number_literal << (binary_expression "(uVar15 + 1) * 8" (parenthesized_expression "(uVar15 + 1)" ( (binary_expression "uVar15 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar22 >> (3 - uVar15) * 8" identifier >> (binary_expression "(3 - uVar15) * 8" (parenthesized_expression "(3 - uVar15)" ( (binary_expression "3 - uVar15" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;" (assignment_expression "puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8" (subscript_expression "puVar31[3]" identifier [ number_literal ]) = (binary_expression "(iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8" (binary_expression "(iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8" (parenthesized_expression "(iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8)" ( (binary_expression "iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8" (binary_expression "iVar8 << uVar2 * 8" identifier << (binary_expression "uVar2 * 8" identifier * number_literal)) | (binary_expression "in_t0 & 0xffffffffU >> (4 - uVar2) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar2) * 8" number_literal >> (binary_expression "(4 - uVar2) * 8" (parenthesized_expression "(4 - uVar2)" ( (binary_expression "4 - uVar2" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar16 + 1) * 8" number_literal << (binary_expression "(uVar16 + 1) * 8" (parenthesized_expression "(uVar16 + 1)" ( (binary_expression "uVar16 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar23 >> (3 - uVar16) * 8" identifier >> (binary_expression "(3 - uVar16) * 8" (parenthesized_expression "(3 - uVar16)" ( (binary_expression "3 - uVar16" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;" (assignment_expression "puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8" (subscript_expression "puVar31[4]" identifier [ number_literal ]) = (binary_expression "(iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8" (binary_expression "(iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8" (parenthesized_expression "(iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8)" ( (binary_expression "iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8" (binary_expression "iVar9 << uVar3 * 8" identifier << (binary_expression "uVar3 * 8" identifier * number_literal)) | (binary_expression "uVar35 & 0xffffffffU >> (4 - uVar3) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar3) * 8" number_literal >> (binary_expression "(4 - uVar3) * 8" (parenthesized_expression "(4 - uVar3)" ( (binary_expression "4 - uVar3" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar17 + 1) * 8" number_literal << (binary_expression "(uVar17 + 1) * 8" (parenthesized_expression "(uVar17 + 1)" ( (binary_expression "uVar17 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar24 >> (3 - uVar17) * 8" identifier >> (binary_expression "(3 - uVar17) * 8" (parenthesized_expression "(3 - uVar17)" ( (binary_expression "3 - uVar17" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar31[5] = uVar37;" (assignment_expression "puVar31[5] = uVar37" (subscript_expression "puVar31[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27 = (undefined1 *)puVar31[1];" (assignment_expression "puVar27 = (undefined1 *)puVar31[1]" identifier = (cast_expression "(undefined1 *)puVar31[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar31[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = (subscript_expression "puVar32[1]" identifier [ number_literal ])) ;) (expression_statement "puVar32[1] = puVar27;" (assignment_expression "puVar32[1] = puVar27" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = identifier) ;) }))))) }) (else_clause "else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }" else (compound_statement "{\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }" { (expression_statement "uVar34 = puVar31[3];" (assignment_expression "uVar34 = puVar31[3]" identifier = (subscript_expression "puVar31[3]" identifier [ number_literal ])) ;) (expression_statement "uVar35 = (uint)(puVar31 + 4) & 3;" (assignment_expression "uVar35 = (uint)(puVar31 + 4) & 3" identifier = (binary_expression "(uint)(puVar31 + 4) & 3" (call_expression "(uint)(puVar31 + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar31 + 4)" ( (binary_expression "puVar31 + 4" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);" (assignment_expression "iVar6 = *(int *)((int)(puVar31 + 4) - uVar35)" identifier = (pointer_expression "*(int *)((int)(puVar31 + 4) - uVar35)" * (cast_expression "(int *)((int)(puVar31 + 4) - uVar35)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar31 + 4) - uVar35)" ( (binary_expression "(int)(puVar31 + 4) - uVar35" (cast_expression "(int)(puVar31 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar31 + 4)" ( (binary_expression "puVar31 + 4" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar37 = puVar31[5];" (assignment_expression "uVar37 = puVar31[5]" identifier = (subscript_expression "puVar31[5]" identifier [ number_literal ])) ;) (expression_statement "uVar38 = puVar32[2];" (assignment_expression "uVar38 = puVar32[2]" identifier = (subscript_expression "puVar32[2]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = (int)puVar31 + 0x13U & 3;" (assignment_expression "uVar12 = (int)puVar31 + 0x13U & 3" identifier = (binary_expression "(int)puVar31 + 0x13U & 3" (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);" (assignment_expression "uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12)" identifier = (pointer_expression "*(uint *)(((int)puVar31 + 0x13U) - uVar12)" * (cast_expression "(uint *)(((int)puVar31 + 0x13U) - uVar12)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar31 + 0x13U) - uVar12)" ( (binary_expression "((int)puVar31 + 0x13U) - uVar12" (parenthesized_expression "((int)puVar31 + 0x13U)" ( (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "*puVar28 = *puVar29;" (assignment_expression "*puVar28 = *puVar29" (pointer_expression "*puVar28" * identifier) = (pointer_expression "*puVar29" * identifier)) ;) (expression_statement "puVar32[3] = uVar34;" (assignment_expression "puVar32[3] = uVar34" (subscript_expression "puVar32[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;" (assignment_expression "puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8" (subscript_expression "puVar32[4]" identifier [ number_literal ]) = (binary_expression "(iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8" (binary_expression "(iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8" (parenthesized_expression "(iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8)" ( (binary_expression "iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8" (binary_expression "iVar6 << uVar35 * 8" identifier << (binary_expression "uVar35 * 8" identifier * number_literal)) | (binary_expression "in_t0 & 0xffffffffU >> (4 - uVar35) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar35) * 8" number_literal >> (binary_expression "(4 - uVar35) * 8" (parenthesized_expression "(4 - uVar35)" ( (binary_expression "4 - uVar35" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar12 + 1) * 8" number_literal << (binary_expression "(uVar12 + 1) * 8" (parenthesized_expression "(uVar12 + 1)" ( (binary_expression "uVar12 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar20 >> (3 - uVar12) * 8" identifier >> (binary_expression "(3 - uVar12) * 8" (parenthesized_expression "(3 - uVar12)" ( (binary_expression "3 - uVar12" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar32[5] = uVar37;" (assignment_expression "puVar32[5] = uVar37" (subscript_expression "puVar32[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar31 = puVar33;" (assignment_expression "*puVar31 = puVar33" (pointer_expression "*puVar31" * identifier) = identifier) ;) (expression_statement "*puVar32 = puVar28;" (assignment_expression "*puVar32 = puVar28" (pointer_expression "*puVar32" * identifier) = identifier) ;) (expression_statement "puVar31[2] = uVar38;" (assignment_expression "puVar31[2] = uVar38" (subscript_expression "puVar31[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27 = (undefined1 *)puVar31[1];" (assignment_expression "puVar27 = (undefined1 *)puVar31[1]" identifier = (cast_expression "(undefined1 *)puVar31[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar31[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = (subscript_expression "puVar32[1]" identifier [ number_literal ])) ;) (expression_statement "puVar32[1] = puVar27;" (assignment_expression "puVar32[1] = puVar27" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }" else (compound_statement "{\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }" { (expression_statement "uVar37 = puVar31[2];" (assignment_expression "uVar37 = puVar31[2]" identifier = (subscript_expression "puVar31[2]" identifier [ number_literal ])) ;) (if_statement "if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }" if (parenthesized_expression "(puVar28 == puVar33)" ( (binary_expression "puVar28 == puVar33" identifier == identifier) )) (compound_statement "{\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }" { (expression_statement "uVar39 = puVar32[3];" (assignment_expression "uVar39 = puVar32[3]" identifier = (subscript_expression "puVar32[3]" identifier [ number_literal ])) ;) (expression_statement "uVar38 = puVar32[4];" (assignment_expression "uVar38 = puVar32[4]" identifier = (subscript_expression "puVar32[4]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = puVar32[5];" (assignment_expression "uVar34 = puVar32[5]" identifier = (subscript_expression "puVar32[5]" identifier [ number_literal ])) ;) (expression_statement "*puVar29 = *puVar28;" (assignment_expression "*puVar29 = *puVar28" (pointer_expression "*puVar29" * identifier) = (pointer_expression "*puVar28" * identifier)) ;) (expression_statement "puVar31[3] = uVar39;" (assignment_expression "puVar31[3] = uVar39" (subscript_expression "puVar31[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31[4] = uVar38;" (assignment_expression "puVar31[4] = uVar38" (subscript_expression "puVar31[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31[5] = uVar34;" (assignment_expression "puVar31[5] = uVar34" (subscript_expression "puVar31[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar32 = puVar36;" (assignment_expression "*puVar32 = puVar36" (pointer_expression "*puVar32" * identifier) = identifier) ;) (expression_statement "*puVar31 = puVar29;" (assignment_expression "*puVar31 = puVar29" (pointer_expression "*puVar31" * identifier) = identifier) ;) }) (else_clause "else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }" else (compound_statement "{\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }" { (expression_statement "*puVar31 = puVar33;" (assignment_expression "*puVar31 = puVar33" (pointer_expression "*puVar31" * identifier) = identifier) ;) (expression_statement "*puVar32 = puVar36;" (assignment_expression "*puVar32 = puVar36" (pointer_expression "*puVar32" * identifier) = identifier) ;) (expression_statement "puVar31[2] = puVar32[2];" (assignment_expression "puVar31[2] = puVar32[2]" (subscript_expression "puVar31[2]" identifier [ number_literal ]) = (subscript_expression "puVar32[2]" identifier [ number_literal ])) ;) }))) (expression_statement "puVar32[2] = uVar37;" (assignment_expression "puVar32[2] = uVar37" (subscript_expression "puVar32[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27 = (undefined1 *)puVar31[1];" (assignment_expression "puVar27 = (undefined1 *)puVar31[1]" identifier = (cast_expression "(undefined1 *)puVar31[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar31[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = (subscript_expression "puVar32[1]" identifier [ number_literal ])) ;) (expression_statement "puVar32[1] = puVar27;" (assignment_expression "puVar32[1] = puVar27" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = identifier) ;) }))) })) (return_statement "return puVar27;" return identifier ;) })))
(translation_unit "/* std::string::append(std::initializer_list<char>) */\n\nundefined1 * std::string::append(string *param_1,char *param_2,undefined1 *param_3,uint param_4)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  undefined1 *puVar27;\n  uint *puVar28;\n  uint *puVar29;\n  int *piVar30;\n  undefined4 *puVar31;\n  undefined4 *puVar32;\n  uint *puVar33;\n  undefined4 uVar34;\n  uint uVar35;\n  uint *puVar36;\n  uint in_t0;\n  undefined4 uVar37;\n  uint in_t1;\n  undefined4 uVar38;\n  uint in_t2;\n  undefined4 uVar39;\n  uint in_t3;\n  uint in_t4;\n  uint in_t5;\n  undefined *puVar40;\n  \n  if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {\n    puVar27 = (undefined1 *)_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }\n  piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);\n  puVar40 = PTR___throw_length_error_00432480;\n  (*(code *)PTR___throw_length_error_00432480)();\n  uVar35 = piVar30[1];\n  if (param_4 <= uVar35) {\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }\n  puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);\n  puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);\n  puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);\n  if (puVar31 != puVar32) {\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }\n  return puVar27;\n}\n\n" comment (ERROR "undefined1 * std::" (binary_expression "undefined1 * std" identifier * identifier) : :) (labeled_statement "string::append(string *param_1,char *param_2,undefined1 *param_3,uint param_4)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  undefined1 *puVar27;\n  uint *puVar28;\n  uint *puVar29;\n  int *piVar30;\n  undefined4 *puVar31;\n  undefined4 *puVar32;\n  uint *puVar33;\n  undefined4 uVar34;\n  uint uVar35;\n  uint *puVar36;\n  uint in_t0;\n  undefined4 uVar37;\n  uint in_t1;\n  undefined4 uVar38;\n  uint in_t2;\n  undefined4 uVar39;\n  uint in_t3;\n  uint in_t4;\n  uint in_t5;\n  undefined *puVar40;\n  \n  if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {\n    puVar27 = (undefined1 *)_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }\n  piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);\n  puVar40 = PTR___throw_length_error_00432480;\n  (*(code *)PTR___throw_length_error_00432480)();\n  uVar35 = piVar30[1];\n  if (param_4 <= uVar35) {\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }\n  puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);\n  puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);\n  puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);\n  if (puVar31 != puVar32) {\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }\n  return puVar27;\n}" statement_identifier : (ERROR ":append(string *param_1,char *param_2,undefined1 *param_3,uint param_4)" : (call_expression "append(string *param_1,char *param_2,undefined1 *param_3,uint param_4)" identifier (argument_list "(string *param_1,char *param_2,undefined1 *param_3,uint param_4)" ( (binary_expression "string *param_1" identifier * identifier) , (binary_expression "char *param_2" identifier * identifier) , (binary_expression "undefined1 *param_3" identifier * identifier) , (ERROR "uint" identifier) identifier )))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  undefined1 *puVar27;\n  uint *puVar28;\n  uint *puVar29;\n  int *piVar30;\n  undefined4 *puVar31;\n  undefined4 *puVar32;\n  uint *puVar33;\n  undefined4 uVar34;\n  uint uVar35;\n  uint *puVar36;\n  uint in_t0;\n  undefined4 uVar37;\n  uint in_t1;\n  undefined4 uVar38;\n  uint in_t2;\n  undefined4 uVar39;\n  uint in_t3;\n  uint in_t4;\n  uint in_t5;\n  undefined *puVar40;\n  \n  if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {\n    puVar27 = (undefined1 *)_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }\n  piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);\n  puVar40 = PTR___throw_length_error_00432480;\n  (*(code *)PTR___throw_length_error_00432480)();\n  uVar35 = piVar30[1];\n  if (param_4 <= uVar35) {\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }\n  puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);\n  puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);\n  puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);\n  if (puVar31 != puVar32) {\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }\n  return puVar27;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type 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 "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "undefined1 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "uint *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "uint *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "int *piVar30;" primitive_type (pointer_declarator "*piVar30" * identifier) ;) (declaration "undefined4 *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "undefined4 *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "uint *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "undefined4 uVar34;" type_identifier identifier ;) (declaration "uint uVar35;" type_identifier identifier ;) (declaration "uint *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "uint in_t0;" type_identifier identifier ;) (declaration "undefined4 uVar37;" type_identifier identifier ;) (declaration "uint in_t1;" type_identifier identifier ;) (declaration "undefined4 uVar38;" type_identifier identifier ;) (declaration "uint in_t2;" type_identifier identifier ;) (declaration "undefined4 uVar39;" type_identifier identifier ;) (declaration "uint in_t3;" type_identifier identifier ;) (declaration "uint in_t4;" type_identifier identifier ;) (declaration "uint in_t5;" type_identifier identifier ;) (declaration "undefined *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (if_statement "if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {\n    puVar27 = (undefined1 *)_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }" if (parenthesized_expression "(param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4)))" ( (binary_expression "param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))" identifier <= (cast_expression "(undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x7fffffffU - *(int *)(param_1 + 4))" ( (binary_expression "0x7fffffffU - *(int *)(param_1 + 4)" number_literal - (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) )))) )) (compound_statement "{\n    puVar27 = (undefined1 *)_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }" { (expression_statement "puVar27 = (undefined1 *)_M_append(param_1,param_2,(uint)param_3);" (assignment_expression "puVar27 = (undefined1 *)_M_append(param_1,param_2,(uint)param_3)" identifier = (cast_expression "(undefined1 *)_M_append(param_1,param_2,(uint)param_3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "_M_append(param_1,param_2,(uint)param_3)" identifier (argument_list "(param_1,param_2,(uint)param_3)" ( identifier , identifier , (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) ;) (return_statement "return puVar27;" return identifier ;) })) (expression_statement "piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);" (assignment_expression "piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240)" identifier = (cast_expression "(int *)(PTR_s_alize_xindex_004323b4 + -0x6240)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0x6240)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6240" identifier + number_literal) )))) ;) (expression_statement "puVar40 = PTR___throw_length_error_00432480;" (assignment_expression "puVar40 = PTR___throw_length_error_00432480" identifier = identifier) ;) (expression_statement "(*(code *)PTR___throw_length_error_00432480)();" (call_expression "(*(code *)PTR___throw_length_error_00432480)()" (parenthesized_expression "(*(code *)PTR___throw_length_error_00432480)" ( (pointer_expression "*(code *)PTR___throw_length_error_00432480" * (cast_expression "(code *)PTR___throw_length_error_00432480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar35 = piVar30[1];" (assignment_expression "uVar35 = piVar30[1]" identifier = (subscript_expression "piVar30[1]" identifier [ number_literal ])) ;) (if_statement "if (param_4 <= uVar35) {\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }" if (parenthesized_expression "(param_4 <= uVar35)" ( (binary_expression "param_4 <= uVar35" identifier <= identifier) )) (compound_statement "{\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }" { (if_statement "if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }" if (parenthesized_expression "((undefined1 *)(uVar35 - param_4) <= param_3)" ( (binary_expression "(undefined1 *)(uVar35 - param_4) <= param_3" (cast_expression "(undefined1 *)(uVar35 - param_4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar35 - param_4)" ( (binary_expression "uVar35 - param_4" identifier - identifier) ))) <= identifier) )) (compound_statement "{\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }" { (expression_statement "param_3 = (undefined1 *)(uVar35 - param_4);" (assignment_expression "param_3 = (undefined1 *)(uVar35 - param_4)" identifier = (cast_expression "(undefined1 *)(uVar35 - param_4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar35 - param_4)" ( (binary_expression "uVar35 - param_4" identifier - identifier) )))) ;) })) (if_statement "if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }" if (parenthesized_expression "(param_3 != (undefined1 *)0x0)" ( (binary_expression "param_3 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }" { (if_statement "if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }" if (parenthesized_expression "(param_3 == (undefined1 *)0x1)" ( (binary_expression "param_3 == (undefined1 *)0x1" identifier == (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }" { (expression_statement "*param_2 = *(char *)(*piVar30 + param_4);" (assignment_expression "*param_2 = *(char *)(*piVar30 + param_4)" (pointer_expression "*param_2" * identifier) = (pointer_expression "*(char *)(*piVar30 + param_4)" * (cast_expression "(char *)(*piVar30 + param_4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar30 + param_4)" ( (binary_expression "*piVar30 + param_4" (pointer_expression "*piVar30" * identifier) + identifier) ))))) ;) (return_statement "return (undefined1 *)0x1;" return (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "(**(code **)(puVar40 + 0x1747e0))(param_2);" (call_expression "(**(code **)(puVar40 + 0x1747e0))(param_2)" (parenthesized_expression "(**(code **)(puVar40 + 0x1747e0))" ( (pointer_expression "**(code **)(puVar40 + 0x1747e0)" * (pointer_expression "*(code **)(puVar40 + 0x1747e0)" * (cast_expression "(code **)(puVar40 + 0x1747e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + 0x1747e0)" ( (binary_expression "puVar40 + 0x1747e0" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier ))) ;) })) (return_statement "return param_3;" return identifier ;) })) (expression_statement "puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);" (assignment_expression "puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar40 + 0x1702c4) + 0x733c)" ( (binary_expression "*(int *)(puVar40 + 0x1702c4) + 0x733c" (pointer_expression "*(int *)(puVar40 + 0x1702c4)" * (cast_expression "(int *)(puVar40 + 0x1702c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + 0x1702c4)" ( (binary_expression "puVar40 + 0x1702c4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);" (assignment_expression "puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar40 + 0x17040c) + -0x25a4)" ( (binary_expression "*(int *)(puVar40 + 0x17040c) + -0x25a4" (pointer_expression "*(int *)(puVar40 + 0x17040c)" * (cast_expression "(int *)(puVar40 + 0x17040c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + 0x17040c)" ( (binary_expression "puVar40 + 0x17040c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);" (assignment_expression "puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" identifier = (cast_expression "(undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" (parenthesized_expression "(**(code **)(puVar40 + 0x171040))" ( (pointer_expression "**(code **)(puVar40 + 0x171040)" * (pointer_expression "*(code **)(puVar40 + 0x171040)" * (cast_expression "(code **)(puVar40 + 0x171040)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + 0x171040)" ( (binary_expression "puVar40 + 0x171040" identifier + number_literal) ))))) )) (argument_list "(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" ( identifier , identifier , identifier , identifier , (binary_expression "puVar40 + 0x178228" identifier + number_literal) ))))) ;) (if_statement "if (puVar31 != puVar32) {\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }" if (parenthesized_expression "(puVar31 != puVar32)" ( (binary_expression "puVar31 != puVar32" identifier != identifier) )) (compound_statement "{\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }" { (expression_statement "puVar36 = (uint *)*puVar31;" (assignment_expression "puVar36 = (uint *)*puVar31" identifier = (cast_expression "(uint *)*puVar31" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar31" * identifier))) ;) (expression_statement "puVar29 = puVar31 + 2;" (assignment_expression "puVar29 = puVar31 + 2" identifier = (binary_expression "puVar31 + 2" identifier + number_literal)) ;) (expression_statement "puVar33 = (uint *)*puVar32;" (assignment_expression "puVar33 = (uint *)*puVar32" identifier = (cast_expression "(uint *)*puVar32" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar32" * identifier))) ;) (expression_statement "puVar28 = puVar32 + 2;" (assignment_expression "puVar28 = puVar32 + 2" identifier = (binary_expression "puVar32 + 2" identifier + number_literal)) ;) (if_statement "if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }" if (parenthesized_expression "(puVar29 == puVar36)" ( (binary_expression "puVar29 == puVar36" identifier == identifier) )) (compound_statement "{\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }" { (if_statement "if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }" if (parenthesized_expression "(puVar28 == puVar33)" ( (binary_expression "puVar28 == puVar33" identifier == identifier) )) (compound_statement "{\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }" { (expression_statement "uVar35 = puVar31[1];" (assignment_expression "uVar35 = puVar31[1]" identifier = (subscript_expression "puVar31[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" if (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) )) (compound_statement "{\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }" { (if_statement "if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }" if (parenthesized_expression "(puVar32[1] == 0)" ( (binary_expression "puVar32[1] == 0" (subscript_expression "puVar32[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }" { (expression_statement "puVar27 = (undefined1 *)0x0;" (assignment_expression "puVar27 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar31[1] = 0;" (assignment_expression "puVar31[1] = 0" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[1] = 0;" (assignment_expression "puVar32[1] = 0" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }" else (compound_statement "{\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }" { (expression_statement "uVar38 = puVar32[3];" (assignment_expression "uVar38 = puVar32[3]" identifier = (subscript_expression "puVar32[3]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = puVar32[4];" (assignment_expression "uVar34 = puVar32[4]" identifier = (subscript_expression "puVar32[4]" identifier [ number_literal ])) ;) (expression_statement "uVar37 = puVar32[5];" (assignment_expression "uVar37 = puVar32[5]" identifier = (subscript_expression "puVar32[5]" identifier [ number_literal ])) ;) (expression_statement "*puVar29 = *puVar28;" (assignment_expression "*puVar29 = *puVar28" (pointer_expression "*puVar29" * identifier) = (pointer_expression "*puVar28" * identifier)) ;) (expression_statement "puVar31[3] = uVar38;" (assignment_expression "puVar31[3] = uVar38" (subscript_expression "puVar31[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31[4] = uVar34;" (assignment_expression "puVar31[4] = uVar34" (subscript_expression "puVar31[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31[5] = uVar37;" (assignment_expression "puVar31[5] = uVar37" (subscript_expression "puVar31[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = (subscript_expression "puVar32[1]" identifier [ number_literal ])) ;) (expression_statement "puVar32[1] = 0;" (assignment_expression "puVar32[1] = 0" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar27 = (undefined1 *)*puVar32;" (assignment_expression "puVar27 = (undefined1 *)*puVar32" identifier = (cast_expression "(undefined1 *)*puVar32" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar32" * identifier))) ;) (expression_statement "*puVar27 = 0;" (assignment_expression "*puVar27 = 0" (pointer_expression "*puVar27" * identifier) = number_literal) ;) }))) }) (else_clause "else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" else (if_statement "if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" if (parenthesized_expression "(puVar32[1] == 0)" ( (binary_expression "puVar32[1] == 0" (subscript_expression "puVar32[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }" { (expression_statement "uVar38 = puVar31[3];" (assignment_expression "uVar38 = puVar31[3]" identifier = (subscript_expression "puVar31[3]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = puVar31[4];" (assignment_expression "uVar34 = puVar31[4]" identifier = (subscript_expression "puVar31[4]" identifier [ number_literal ])) ;) (expression_statement "uVar37 = puVar31[5];" (assignment_expression "uVar37 = puVar31[5]" identifier = (subscript_expression "puVar31[5]" identifier [ number_literal ])) ;) (expression_statement "*puVar28 = *puVar29;" (assignment_expression "*puVar28 = *puVar29" (pointer_expression "*puVar28" * identifier) = (pointer_expression "*puVar29" * identifier)) ;) (expression_statement "puVar32[3] = uVar38;" (assignment_expression "puVar32[3] = uVar38" (subscript_expression "puVar32[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar32[4] = uVar34;" (assignment_expression "puVar32[4] = uVar34" (subscript_expression "puVar32[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar32[5] = uVar37;" (assignment_expression "puVar32[5] = uVar37" (subscript_expression "puVar32[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar32[1] = puVar31[1];" (assignment_expression "puVar32[1] = puVar31[1]" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = (subscript_expression "puVar31[1]" identifier [ number_literal ])) ;) (expression_statement "puVar31[1] = 0;" (assignment_expression "puVar31[1] = 0" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar27 = (undefined1 *)*puVar31;" (assignment_expression "puVar27 = (undefined1 *)*puVar31" identifier = (cast_expression "(undefined1 *)*puVar31" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar31" * identifier))) ;) (expression_statement "*puVar27 = 0;" (assignment_expression "*puVar27 = 0" (pointer_expression "*puVar27" * identifier) = number_literal) ;) }) (else_clause "else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" else (compound_statement "{\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" { (expression_statement "uVar12 = (uint)puVar29 & 3;" (assignment_expression "uVar12 = (uint)puVar29 & 3" identifier = (binary_expression "(uint)puVar29 & 3" (cast_expression "(uint)puVar29" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar20 = (uint)(puVar31 + 3) & 3;" (assignment_expression "uVar20 = (uint)(puVar31 + 3) & 3" identifier = (binary_expression "(uint)(puVar31 + 3) & 3" (call_expression "(uint)(puVar31 + 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar31 + 3)" ( (binary_expression "puVar31 + 3" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);" (assignment_expression "iVar6 = *(int *)((int)(puVar31 + 3) - uVar20)" identifier = (pointer_expression "*(int *)((int)(puVar31 + 3) - uVar20)" * (cast_expression "(int *)((int)(puVar31 + 3) - uVar20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar31 + 3) - uVar20)" ( (binary_expression "(int)(puVar31 + 3) - uVar20" (cast_expression "(int)(puVar31 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar31 + 3)" ( (binary_expression "puVar31 + 3" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar1 = (uint)(puVar32 + 2) & 3;" (assignment_expression "uVar1 = (uint)(puVar32 + 2) & 3" identifier = (binary_expression "(uint)(puVar32 + 2) & 3" (call_expression "(uint)(puVar32 + 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar32 + 2)" ( (binary_expression "puVar32 + 2" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);" (assignment_expression "iVar7 = *(int *)((int)(puVar32 + 2) - uVar1)" identifier = (pointer_expression "*(int *)((int)(puVar32 + 2) - uVar1)" * (cast_expression "(int *)((int)(puVar32 + 2) - uVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar32 + 2) - uVar1)" ( (binary_expression "(int)(puVar32 + 2) - uVar1" (cast_expression "(int)(puVar32 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar32 + 2)" ( (binary_expression "puVar32 + 2" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar2 = (uint)(puVar32 + 3) & 3;" (assignment_expression "uVar2 = (uint)(puVar32 + 3) & 3" identifier = (binary_expression "(uint)(puVar32 + 3) & 3" (call_expression "(uint)(puVar32 + 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar32 + 3)" ( (binary_expression "puVar32 + 3" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);" (assignment_expression "iVar8 = *(int *)((int)(puVar32 + 3) - uVar2)" identifier = (pointer_expression "*(int *)((int)(puVar32 + 3) - uVar2)" * (cast_expression "(int *)((int)(puVar32 + 3) - uVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar32 + 3) - uVar2)" ( (binary_expression "(int)(puVar32 + 3) - uVar2" (cast_expression "(int)(puVar32 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar32 + 3)" ( (binary_expression "puVar32 + 3" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar3 = (uint)(puVar32 + 4) & 3;" (assignment_expression "uVar3 = (uint)(puVar32 + 4) & 3" identifier = (binary_expression "(uint)(puVar32 + 4) & 3" (call_expression "(uint)(puVar32 + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar32 + 4)" ( (binary_expression "puVar32 + 4" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);" (assignment_expression "iVar9 = *(int *)((int)(puVar32 + 4) - uVar3)" identifier = (pointer_expression "*(int *)((int)(puVar32 + 4) - uVar3)" * (cast_expression "(int *)((int)(puVar32 + 4) - uVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar32 + 4) - uVar3)" ( (binary_expression "(int)(puVar32 + 4) - uVar3" (cast_expression "(int)(puVar32 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar32 + 4)" ( (binary_expression "puVar32 + 4" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar37 = puVar32[5];" (assignment_expression "uVar37 = puVar32[5]" identifier = (subscript_expression "puVar32[5]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = (uint)(puVar31 + 4) & 3;" (assignment_expression "uVar4 = (uint)(puVar31 + 4) & 3" identifier = (binary_expression "(uint)(puVar31 + 4) & 3" (call_expression "(uint)(puVar31 + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar31 + 4)" ( (binary_expression "puVar31 + 4" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);" (assignment_expression "iVar10 = *(int *)((int)(puVar31 + 4) - uVar4)" identifier = (pointer_expression "*(int *)((int)(puVar31 + 4) - uVar4)" * (cast_expression "(int *)((int)(puVar31 + 4) - uVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar31 + 4) - uVar4)" ( (binary_expression "(int)(puVar31 + 4) - uVar4" (cast_expression "(int)(puVar31 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar31 + 4)" ( (binary_expression "puVar31 + 4" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar5 = (uint)(puVar31 + 5) & 3;" (assignment_expression "uVar5 = (uint)(puVar31 + 5) & 3" identifier = (binary_expression "(uint)(puVar31 + 5) & 3" (call_expression "(uint)(puVar31 + 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar31 + 5)" ( (binary_expression "puVar31 + 5" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);" (assignment_expression "iVar11 = *(int *)((int)(puVar31 + 5) - uVar5)" identifier = (pointer_expression "*(int *)((int)(puVar31 + 5) - uVar5)" * (cast_expression "(int *)((int)(puVar31 + 5) - uVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar31 + 5) - uVar5)" ( (binary_expression "(int)(puVar31 + 5) - uVar5" (cast_expression "(int)(puVar31 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar31 + 5)" ( (binary_expression "puVar31 + 5" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar13 = (int)puVar31 + 0xbU & 3;" (assignment_expression "uVar13 = (int)puVar31 + 0xbU & 3" identifier = (binary_expression "(int)puVar31 + 0xbU & 3" (binary_expression "(int)puVar31 + 0xbU" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar14 = (int)puVar31 + 0xfU & 3;" (assignment_expression "uVar14 = (int)puVar31 + 0xfU & 3" identifier = (binary_expression "(int)puVar31 + 0xfU & 3" (binary_expression "(int)puVar31 + 0xfU" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);" (assignment_expression "uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14)" identifier = (pointer_expression "*(uint *)(((int)puVar31 + 0xfU) - uVar14)" * (cast_expression "(uint *)(((int)puVar31 + 0xfU) - uVar14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar31 + 0xfU) - uVar14)" ( (binary_expression "((int)puVar31 + 0xfU) - uVar14" (parenthesized_expression "((int)puVar31 + 0xfU)" ( (binary_expression "(int)puVar31 + 0xfU" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "uVar15 = (int)puVar32 + 0xbU & 3;" (assignment_expression "uVar15 = (int)puVar32 + 0xbU & 3" identifier = (binary_expression "(int)puVar32 + 0xbU & 3" (binary_expression "(int)puVar32 + 0xbU" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);" (assignment_expression "uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15)" identifier = (pointer_expression "*(uint *)(((int)puVar32 + 0xbU) - uVar15)" * (cast_expression "(uint *)(((int)puVar32 + 0xbU) - uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar32 + 0xbU) - uVar15)" ( (binary_expression "((int)puVar32 + 0xbU) - uVar15" (parenthesized_expression "((int)puVar32 + 0xbU)" ( (binary_expression "(int)puVar32 + 0xbU" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "uVar16 = (int)puVar32 + 0xfU & 3;" (assignment_expression "uVar16 = (int)puVar32 + 0xfU & 3" identifier = (binary_expression "(int)puVar32 + 0xfU & 3" (binary_expression "(int)puVar32 + 0xfU" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);" (assignment_expression "uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16)" identifier = (pointer_expression "*(uint *)(((int)puVar32 + 0xfU) - uVar16)" * (cast_expression "(uint *)(((int)puVar32 + 0xfU) - uVar16)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar32 + 0xfU) - uVar16)" ( (binary_expression "((int)puVar32 + 0xfU) - uVar16" (parenthesized_expression "((int)puVar32 + 0xfU)" ( (binary_expression "(int)puVar32 + 0xfU" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "uVar17 = (int)puVar32 + 0x13U & 3;" (assignment_expression "uVar17 = (int)puVar32 + 0x13U & 3" identifier = (binary_expression "(int)puVar32 + 0x13U & 3" (binary_expression "(int)puVar32 + 0x13U" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);" (assignment_expression "uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17)" identifier = (pointer_expression "*(uint *)(((int)puVar32 + 0x13U) - uVar17)" * (cast_expression "(uint *)(((int)puVar32 + 0x13U) - uVar17)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar32 + 0x13U) - uVar17)" ( (binary_expression "((int)puVar32 + 0x13U) - uVar17" (parenthesized_expression "((int)puVar32 + 0x13U)" ( (binary_expression "(int)puVar32 + 0x13U" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "uVar18 = (int)puVar31 + 0x13U & 3;" (assignment_expression "uVar18 = (int)puVar31 + 0x13U & 3" identifier = (binary_expression "(int)puVar31 + 0x13U & 3" (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);" (assignment_expression "uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18)" identifier = (pointer_expression "*(uint *)(((int)puVar31 + 0x13U) - uVar18)" * (cast_expression "(uint *)(((int)puVar31 + 0x13U) - uVar18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar31 + 0x13U) - uVar18)" ( (binary_expression "((int)puVar31 + 0x13U) - uVar18" (parenthesized_expression "((int)puVar31 + 0x13U)" ( (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "uVar19 = (int)puVar31 + 0x17U & 3;" (assignment_expression "uVar19 = (int)puVar31 + 0x17U & 3" identifier = (binary_expression "(int)puVar31 + 0x17U & 3" (binary_expression "(int)puVar31 + 0x17U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);" (assignment_expression "uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19)" identifier = (pointer_expression "*(uint *)(((int)puVar31 + 0x17U) - uVar19)" * (cast_expression "(uint *)(((int)puVar31 + 0x17U) - uVar19)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar31 + 0x17U) - uVar19)" ( (binary_expression "((int)puVar31 + 0x17U) - uVar19" (parenthesized_expression "((int)puVar31 + 0x17U)" ( (binary_expression "(int)puVar31 + 0x17U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "*puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;" (assignment_expression "*puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8" (pointer_expression "*puVar28" * identifier) = (binary_expression "(*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8" (binary_expression "(*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8" (parenthesized_expression "(*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8)" ( (binary_expression "*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8" (binary_expression "*(int *)((int)puVar29 - uVar12) << uVar12 * 8" (pointer_expression "*(int *)((int)puVar29 - uVar12)" * (cast_expression "(int *)((int)puVar29 - uVar12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 - uVar12)" ( (binary_expression "(int)puVar29 - uVar12" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) << (binary_expression "uVar12 * 8" identifier * number_literal)) | (binary_expression "in_t5 & 0xffffffffU >> (4 - uVar12) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar12) * 8" number_literal >> (binary_expression "(4 - uVar12) * 8" (parenthesized_expression "(4 - uVar12)" ( (binary_expression "4 - uVar12" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar13 + 1) * 8" number_literal << (binary_expression "(uVar13 + 1) * 8" (parenthesized_expression "(uVar13 + 1)" ( (binary_expression "uVar13 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8" (pointer_expression "*(uint *)(((int)puVar31 + 0xbU) - uVar13)" * (cast_expression "(uint *)(((int)puVar31 + 0xbU) - uVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar31 + 0xbU) - uVar13)" ( (binary_expression "((int)puVar31 + 0xbU) - uVar13" (parenthesized_expression "((int)puVar31 + 0xbU)" ( (binary_expression "(int)puVar31 + 0xbU" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar13) * 8" (parenthesized_expression "(3 - uVar13)" ( (binary_expression "3 - uVar13" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;" (assignment_expression "puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8" (subscript_expression "puVar32[3]" identifier [ number_literal ]) = (binary_expression "(iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8" (binary_expression "(iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8" (parenthesized_expression "(iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8)" ( (binary_expression "iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8" (binary_expression "iVar6 << uVar20 * 8" identifier << (binary_expression "uVar20 * 8" identifier * number_literal)) | (binary_expression "in_t4 & 0xffffffffU >> (4 - uVar20) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar20) * 8" number_literal >> (binary_expression "(4 - uVar20) * 8" (parenthesized_expression "(4 - uVar20)" ( (binary_expression "4 - uVar20" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar14 + 1) * 8" number_literal << (binary_expression "(uVar14 + 1) * 8" (parenthesized_expression "(uVar14 + 1)" ( (binary_expression "uVar14 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar21 >> (3 - uVar14) * 8" identifier >> (binary_expression "(3 - uVar14) * 8" (parenthesized_expression "(3 - uVar14)" ( (binary_expression "3 - uVar14" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;" (assignment_expression "puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8" (subscript_expression "puVar32[4]" identifier [ number_literal ]) = (binary_expression "(iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8" (binary_expression "(iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8" (parenthesized_expression "(iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8)" ( (binary_expression "iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8" (binary_expression "iVar10 << uVar4 * 8" identifier << (binary_expression "uVar4 * 8" identifier * number_literal)) | (binary_expression "in_t3 & 0xffffffffU >> (4 - uVar4) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar4) * 8" number_literal >> (binary_expression "(4 - uVar4) * 8" (parenthesized_expression "(4 - uVar4)" ( (binary_expression "4 - uVar4" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar18 + 1) * 8" number_literal << (binary_expression "(uVar18 + 1) * 8" (parenthesized_expression "(uVar18 + 1)" ( (binary_expression "uVar18 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar25 >> (3 - uVar18) * 8" identifier >> (binary_expression "(3 - uVar18) * 8" (parenthesized_expression "(3 - uVar18)" ( (binary_expression "3 - uVar18" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;" (assignment_expression "puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8" (subscript_expression "puVar32[5]" identifier [ number_literal ]) = (binary_expression "(iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8" (binary_expression "(iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8" (parenthesized_expression "(iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8)" ( (binary_expression "iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8" (binary_expression "iVar11 << uVar5 * 8" identifier << (binary_expression "uVar5 * 8" identifier * number_literal)) | (binary_expression "in_t2 & 0xffffffffU >> (4 - uVar5) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar5) * 8" number_literal >> (binary_expression "(4 - uVar5) * 8" (parenthesized_expression "(4 - uVar5)" ( (binary_expression "4 - uVar5" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar19 + 1) * 8" number_literal << (binary_expression "(uVar19 + 1) * 8" (parenthesized_expression "(uVar19 + 1)" ( (binary_expression "uVar19 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar26 >> (3 - uVar19) * 8" identifier >> (binary_expression "(3 - uVar19) * 8" (parenthesized_expression "(3 - uVar19)" ( (binary_expression "3 - uVar19" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;" (assignment_expression "puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8" (subscript_expression "puVar31[2]" identifier [ number_literal ]) = (binary_expression "(iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8" (binary_expression "(iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8" (parenthesized_expression "(iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8)" ( (binary_expression "iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8" (binary_expression "iVar7 << uVar1 * 8" identifier << (binary_expression "uVar1 * 8" identifier * number_literal)) | (binary_expression "in_t1 & 0xffffffffU >> (4 - uVar1) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar1) * 8" number_literal >> (binary_expression "(4 - uVar1) * 8" (parenthesized_expression "(4 - uVar1)" ( (binary_expression "4 - uVar1" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar15 + 1) * 8" number_literal << (binary_expression "(uVar15 + 1) * 8" (parenthesized_expression "(uVar15 + 1)" ( (binary_expression "uVar15 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar22 >> (3 - uVar15) * 8" identifier >> (binary_expression "(3 - uVar15) * 8" (parenthesized_expression "(3 - uVar15)" ( (binary_expression "3 - uVar15" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;" (assignment_expression "puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8" (subscript_expression "puVar31[3]" identifier [ number_literal ]) = (binary_expression "(iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8" (binary_expression "(iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8" (parenthesized_expression "(iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8)" ( (binary_expression "iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8" (binary_expression "iVar8 << uVar2 * 8" identifier << (binary_expression "uVar2 * 8" identifier * number_literal)) | (binary_expression "in_t0 & 0xffffffffU >> (4 - uVar2) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar2) * 8" number_literal >> (binary_expression "(4 - uVar2) * 8" (parenthesized_expression "(4 - uVar2)" ( (binary_expression "4 - uVar2" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar16 + 1) * 8" number_literal << (binary_expression "(uVar16 + 1) * 8" (parenthesized_expression "(uVar16 + 1)" ( (binary_expression "uVar16 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar23 >> (3 - uVar16) * 8" identifier >> (binary_expression "(3 - uVar16) * 8" (parenthesized_expression "(3 - uVar16)" ( (binary_expression "3 - uVar16" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;" (assignment_expression "puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8" (subscript_expression "puVar31[4]" identifier [ number_literal ]) = (binary_expression "(iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8" (binary_expression "(iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8" (parenthesized_expression "(iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8)" ( (binary_expression "iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8" (binary_expression "iVar9 << uVar3 * 8" identifier << (binary_expression "uVar3 * 8" identifier * number_literal)) | (binary_expression "uVar35 & 0xffffffffU >> (4 - uVar3) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar3) * 8" number_literal >> (binary_expression "(4 - uVar3) * 8" (parenthesized_expression "(4 - uVar3)" ( (binary_expression "4 - uVar3" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar17 + 1) * 8" number_literal << (binary_expression "(uVar17 + 1) * 8" (parenthesized_expression "(uVar17 + 1)" ( (binary_expression "uVar17 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar24 >> (3 - uVar17) * 8" identifier >> (binary_expression "(3 - uVar17) * 8" (parenthesized_expression "(3 - uVar17)" ( (binary_expression "3 - uVar17" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar31[5] = uVar37;" (assignment_expression "puVar31[5] = uVar37" (subscript_expression "puVar31[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27 = (undefined1 *)puVar31[1];" (assignment_expression "puVar27 = (undefined1 *)puVar31[1]" identifier = (cast_expression "(undefined1 *)puVar31[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar31[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = (subscript_expression "puVar32[1]" identifier [ number_literal ])) ;) (expression_statement "puVar32[1] = puVar27;" (assignment_expression "puVar32[1] = puVar27" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = identifier) ;) }))))) }) (else_clause "else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }" else (compound_statement "{\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }" { (expression_statement "uVar34 = puVar31[3];" (assignment_expression "uVar34 = puVar31[3]" identifier = (subscript_expression "puVar31[3]" identifier [ number_literal ])) ;) (expression_statement "uVar35 = (uint)(puVar31 + 4) & 3;" (assignment_expression "uVar35 = (uint)(puVar31 + 4) & 3" identifier = (binary_expression "(uint)(puVar31 + 4) & 3" (call_expression "(uint)(puVar31 + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar31 + 4)" ( (binary_expression "puVar31 + 4" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);" (assignment_expression "iVar6 = *(int *)((int)(puVar31 + 4) - uVar35)" identifier = (pointer_expression "*(int *)((int)(puVar31 + 4) - uVar35)" * (cast_expression "(int *)((int)(puVar31 + 4) - uVar35)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar31 + 4) - uVar35)" ( (binary_expression "(int)(puVar31 + 4) - uVar35" (cast_expression "(int)(puVar31 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar31 + 4)" ( (binary_expression "puVar31 + 4" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar37 = puVar31[5];" (assignment_expression "uVar37 = puVar31[5]" identifier = (subscript_expression "puVar31[5]" identifier [ number_literal ])) ;) (expression_statement "uVar38 = puVar32[2];" (assignment_expression "uVar38 = puVar32[2]" identifier = (subscript_expression "puVar32[2]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = (int)puVar31 + 0x13U & 3;" (assignment_expression "uVar12 = (int)puVar31 + 0x13U & 3" identifier = (binary_expression "(int)puVar31 + 0x13U & 3" (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);" (assignment_expression "uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12)" identifier = (pointer_expression "*(uint *)(((int)puVar31 + 0x13U) - uVar12)" * (cast_expression "(uint *)(((int)puVar31 + 0x13U) - uVar12)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar31 + 0x13U) - uVar12)" ( (binary_expression "((int)puVar31 + 0x13U) - uVar12" (parenthesized_expression "((int)puVar31 + 0x13U)" ( (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "*puVar28 = *puVar29;" (assignment_expression "*puVar28 = *puVar29" (pointer_expression "*puVar28" * identifier) = (pointer_expression "*puVar29" * identifier)) ;) (expression_statement "puVar32[3] = uVar34;" (assignment_expression "puVar32[3] = uVar34" (subscript_expression "puVar32[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;" (assignment_expression "puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8" (subscript_expression "puVar32[4]" identifier [ number_literal ]) = (binary_expression "(iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8" (binary_expression "(iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8" (parenthesized_expression "(iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8)" ( (binary_expression "iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8" (binary_expression "iVar6 << uVar35 * 8" identifier << (binary_expression "uVar35 * 8" identifier * number_literal)) | (binary_expression "in_t0 & 0xffffffffU >> (4 - uVar35) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar35) * 8" number_literal >> (binary_expression "(4 - uVar35) * 8" (parenthesized_expression "(4 - uVar35)" ( (binary_expression "4 - uVar35" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar12 + 1) * 8" number_literal << (binary_expression "(uVar12 + 1) * 8" (parenthesized_expression "(uVar12 + 1)" ( (binary_expression "uVar12 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar20 >> (3 - uVar12) * 8" identifier >> (binary_expression "(3 - uVar12) * 8" (parenthesized_expression "(3 - uVar12)" ( (binary_expression "3 - uVar12" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar32[5] = uVar37;" (assignment_expression "puVar32[5] = uVar37" (subscript_expression "puVar32[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar31 = puVar33;" (assignment_expression "*puVar31 = puVar33" (pointer_expression "*puVar31" * identifier) = identifier) ;) (expression_statement "*puVar32 = puVar28;" (assignment_expression "*puVar32 = puVar28" (pointer_expression "*puVar32" * identifier) = identifier) ;) (expression_statement "puVar31[2] = uVar38;" (assignment_expression "puVar31[2] = uVar38" (subscript_expression "puVar31[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27 = (undefined1 *)puVar31[1];" (assignment_expression "puVar27 = (undefined1 *)puVar31[1]" identifier = (cast_expression "(undefined1 *)puVar31[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar31[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = (subscript_expression "puVar32[1]" identifier [ number_literal ])) ;) (expression_statement "puVar32[1] = puVar27;" (assignment_expression "puVar32[1] = puVar27" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }" else (compound_statement "{\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }" { (expression_statement "uVar37 = puVar31[2];" (assignment_expression "uVar37 = puVar31[2]" identifier = (subscript_expression "puVar31[2]" identifier [ number_literal ])) ;) (if_statement "if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }" if (parenthesized_expression "(puVar28 == puVar33)" ( (binary_expression "puVar28 == puVar33" identifier == identifier) )) (compound_statement "{\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }" { (expression_statement "uVar39 = puVar32[3];" (assignment_expression "uVar39 = puVar32[3]" identifier = (subscript_expression "puVar32[3]" identifier [ number_literal ])) ;) (expression_statement "uVar38 = puVar32[4];" (assignment_expression "uVar38 = puVar32[4]" identifier = (subscript_expression "puVar32[4]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = puVar32[5];" (assignment_expression "uVar34 = puVar32[5]" identifier = (subscript_expression "puVar32[5]" identifier [ number_literal ])) ;) (expression_statement "*puVar29 = *puVar28;" (assignment_expression "*puVar29 = *puVar28" (pointer_expression "*puVar29" * identifier) = (pointer_expression "*puVar28" * identifier)) ;) (expression_statement "puVar31[3] = uVar39;" (assignment_expression "puVar31[3] = uVar39" (subscript_expression "puVar31[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31[4] = uVar38;" (assignment_expression "puVar31[4] = uVar38" (subscript_expression "puVar31[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31[5] = uVar34;" (assignment_expression "puVar31[5] = uVar34" (subscript_expression "puVar31[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar32 = puVar36;" (assignment_expression "*puVar32 = puVar36" (pointer_expression "*puVar32" * identifier) = identifier) ;) (expression_statement "*puVar31 = puVar29;" (assignment_expression "*puVar31 = puVar29" (pointer_expression "*puVar31" * identifier) = identifier) ;) }) (else_clause "else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }" else (compound_statement "{\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }" { (expression_statement "*puVar31 = puVar33;" (assignment_expression "*puVar31 = puVar33" (pointer_expression "*puVar31" * identifier) = identifier) ;) (expression_statement "*puVar32 = puVar36;" (assignment_expression "*puVar32 = puVar36" (pointer_expression "*puVar32" * identifier) = identifier) ;) (expression_statement "puVar31[2] = puVar32[2];" (assignment_expression "puVar31[2] = puVar32[2]" (subscript_expression "puVar31[2]" identifier [ number_literal ]) = (subscript_expression "puVar32[2]" identifier [ number_literal ])) ;) }))) (expression_statement "puVar32[2] = uVar37;" (assignment_expression "puVar32[2] = uVar37" (subscript_expression "puVar32[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27 = (undefined1 *)puVar31[1];" (assignment_expression "puVar27 = (undefined1 *)puVar31[1]" identifier = (cast_expression "(undefined1 *)puVar31[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar31[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = (subscript_expression "puVar32[1]" identifier [ number_literal ])) ;) (expression_statement "puVar32[1] = puVar27;" (assignment_expression "puVar32[1] = puVar27" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = identifier) ;) }))) })) (return_statement "return puVar27;" return identifier ;) })))
(translation_unit "undefined1 * FUN_002c1f50(string *param_1,char *param_2,undefined1 *param_3,uint param_4)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  undefined1 *puVar27;\n  uint *puVar28;\n  uint *puVar29;\n  int *piVar30;\n  undefined4 *puVar31;\n  undefined4 *puVar32;\n  uint *puVar33;\n  undefined4 uVar34;\n  uint uVar35;\n  uint *puVar36;\n  uint in_t0;\n  undefined4 uVar37;\n  uint in_t1;\n  undefined4 uVar38;\n  uint in_t2;\n  undefined4 uVar39;\n  uint in_t3;\n  uint in_t4;\n  uint in_t5;\n  undefined *puVar40;\n  \n  if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {\n    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }\n  piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);\n  puVar40 = PTR___throw_length_error_00432480;\n  (*(code *)PTR___throw_length_error_00432480)();\n  uVar35 = piVar30[1];\n  if (param_4 <= uVar35) {\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }\n  puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);\n  puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);\n  puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);\n  if (puVar31 != puVar32) {\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }\n  return puVar27;\n}\n\n" (function_definition "undefined1 * FUN_002c1f50(string *param_1,char *param_2,undefined1 *param_3,uint param_4)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  undefined1 *puVar27;\n  uint *puVar28;\n  uint *puVar29;\n  int *piVar30;\n  undefined4 *puVar31;\n  undefined4 *puVar32;\n  uint *puVar33;\n  undefined4 uVar34;\n  uint uVar35;\n  uint *puVar36;\n  uint in_t0;\n  undefined4 uVar37;\n  uint in_t1;\n  undefined4 uVar38;\n  uint in_t2;\n  undefined4 uVar39;\n  uint in_t3;\n  uint in_t4;\n  uint in_t5;\n  undefined *puVar40;\n  \n  if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {\n    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }\n  piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);\n  puVar40 = PTR___throw_length_error_00432480;\n  (*(code *)PTR___throw_length_error_00432480)();\n  uVar35 = piVar30[1];\n  if (param_4 <= uVar35) {\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }\n  puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);\n  puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);\n  puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);\n  if (puVar31 != puVar32) {\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }\n  return puVar27;\n}" type_identifier (pointer_declarator "* FUN_002c1f50(string *param_1,char *param_2,undefined1 *param_3,uint param_4)" * (function_declarator "FUN_002c1f50(string *param_1,char *param_2,undefined1 *param_3,uint param_4)" identifier (parameter_list "(string *param_1,char *param_2,undefined1 *param_3,uint param_4)" ( (parameter_declaration "string *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined1 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) )))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  undefined1 *puVar27;\n  uint *puVar28;\n  uint *puVar29;\n  int *piVar30;\n  undefined4 *puVar31;\n  undefined4 *puVar32;\n  uint *puVar33;\n  undefined4 uVar34;\n  uint uVar35;\n  uint *puVar36;\n  uint in_t0;\n  undefined4 uVar37;\n  uint in_t1;\n  undefined4 uVar38;\n  uint in_t2;\n  undefined4 uVar39;\n  uint in_t3;\n  uint in_t4;\n  uint in_t5;\n  undefined *puVar40;\n  \n  if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {\n    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }\n  piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);\n  puVar40 = PTR___throw_length_error_00432480;\n  (*(code *)PTR___throw_length_error_00432480)();\n  uVar35 = piVar30[1];\n  if (param_4 <= uVar35) {\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }\n  puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);\n  puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);\n  puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);\n  if (puVar31 != puVar32) {\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }\n  return puVar27;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type 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 "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "undefined1 *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "uint *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "uint *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "int *piVar30;" primitive_type (pointer_declarator "*piVar30" * identifier) ;) (declaration "undefined4 *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "undefined4 *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "uint *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "undefined4 uVar34;" type_identifier identifier ;) (declaration "uint uVar35;" type_identifier identifier ;) (declaration "uint *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "uint in_t0;" type_identifier identifier ;) (declaration "undefined4 uVar37;" type_identifier identifier ;) (declaration "uint in_t1;" type_identifier identifier ;) (declaration "undefined4 uVar38;" type_identifier identifier ;) (declaration "uint in_t2;" type_identifier identifier ;) (declaration "undefined4 uVar39;" type_identifier identifier ;) (declaration "uint in_t3;" type_identifier identifier ;) (declaration "uint in_t4;" type_identifier identifier ;) (declaration "uint in_t5;" type_identifier identifier ;) (declaration "undefined *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (if_statement "if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {\n    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }" if (parenthesized_expression "(param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4)))" ( (binary_expression "param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))" identifier <= (cast_expression "(undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x7fffffffU - *(int *)(param_1 + 4))" ( (binary_expression "0x7fffffffU - *(int *)(param_1 + 4)" number_literal - (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) )))) )) (compound_statement "{\n    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }" { (ERROR "puVar27 = (undefined1 *)std::" (assignment_expression "puVar27 = (undefined1 *)std" identifier = (cast_expression "(undefined1 *)std" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "string::_M_append(param_1,param_2,(uint)param_3);" statement_identifier : (ERROR ":" :) (expression_statement "_M_append(param_1,param_2,(uint)param_3);" (call_expression "_M_append(param_1,param_2,(uint)param_3)" identifier (argument_list "(param_1,param_2,(uint)param_3)" ( identifier , identifier , (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;)) (return_statement "return puVar27;" return identifier ;) })) (expression_statement "piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);" (assignment_expression "piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240)" identifier = (cast_expression "(int *)(PTR_s_alize_xindex_004323b4 + -0x6240)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0x6240)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6240" identifier + number_literal) )))) ;) (expression_statement "puVar40 = PTR___throw_length_error_00432480;" (assignment_expression "puVar40 = PTR___throw_length_error_00432480" identifier = identifier) ;) (expression_statement "(*(code *)PTR___throw_length_error_00432480)();" (call_expression "(*(code *)PTR___throw_length_error_00432480)()" (parenthesized_expression "(*(code *)PTR___throw_length_error_00432480)" ( (pointer_expression "*(code *)PTR___throw_length_error_00432480" * (cast_expression "(code *)PTR___throw_length_error_00432480" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar35 = piVar30[1];" (assignment_expression "uVar35 = piVar30[1]" identifier = (subscript_expression "piVar30[1]" identifier [ number_literal ])) ;) (if_statement "if (param_4 <= uVar35) {\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }" if (parenthesized_expression "(param_4 <= uVar35)" ( (binary_expression "param_4 <= uVar35" identifier <= identifier) )) (compound_statement "{\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }" { (if_statement "if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }" if (parenthesized_expression "((undefined1 *)(uVar35 - param_4) <= param_3)" ( (binary_expression "(undefined1 *)(uVar35 - param_4) <= param_3" (cast_expression "(undefined1 *)(uVar35 - param_4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar35 - param_4)" ( (binary_expression "uVar35 - param_4" identifier - identifier) ))) <= identifier) )) (compound_statement "{\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }" { (expression_statement "param_3 = (undefined1 *)(uVar35 - param_4);" (assignment_expression "param_3 = (undefined1 *)(uVar35 - param_4)" identifier = (cast_expression "(undefined1 *)(uVar35 - param_4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar35 - param_4)" ( (binary_expression "uVar35 - param_4" identifier - identifier) )))) ;) })) (if_statement "if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }" if (parenthesized_expression "(param_3 != (undefined1 *)0x0)" ( (binary_expression "param_3 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }" { (if_statement "if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }" if (parenthesized_expression "(param_3 == (undefined1 *)0x1)" ( (binary_expression "param_3 == (undefined1 *)0x1" identifier == (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }" { (expression_statement "*param_2 = *(char *)(*piVar30 + param_4);" (assignment_expression "*param_2 = *(char *)(*piVar30 + param_4)" (pointer_expression "*param_2" * identifier) = (pointer_expression "*(char *)(*piVar30 + param_4)" * (cast_expression "(char *)(*piVar30 + param_4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar30 + param_4)" ( (binary_expression "*piVar30 + param_4" (pointer_expression "*piVar30" * identifier) + identifier) ))))) ;) (return_statement "return (undefined1 *)0x1;" return (cast_expression "(undefined1 *)0x1" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "(**(code **)(puVar40 + 0x1747e0))(param_2);" (call_expression "(**(code **)(puVar40 + 0x1747e0))(param_2)" (parenthesized_expression "(**(code **)(puVar40 + 0x1747e0))" ( (pointer_expression "**(code **)(puVar40 + 0x1747e0)" * (pointer_expression "*(code **)(puVar40 + 0x1747e0)" * (cast_expression "(code **)(puVar40 + 0x1747e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + 0x1747e0)" ( (binary_expression "puVar40 + 0x1747e0" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier ))) ;) })) (return_statement "return param_3;" return identifier ;) })) (expression_statement "puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);" (assignment_expression "puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar40 + 0x1702c4) + 0x733c)" ( (binary_expression "*(int *)(puVar40 + 0x1702c4) + 0x733c" (pointer_expression "*(int *)(puVar40 + 0x1702c4)" * (cast_expression "(int *)(puVar40 + 0x1702c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + 0x1702c4)" ( (binary_expression "puVar40 + 0x1702c4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);" (assignment_expression "puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar40 + 0x17040c) + -0x25a4)" ( (binary_expression "*(int *)(puVar40 + 0x17040c) + -0x25a4" (pointer_expression "*(int *)(puVar40 + 0x17040c)" * (cast_expression "(int *)(puVar40 + 0x17040c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + 0x17040c)" ( (binary_expression "puVar40 + 0x17040c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);" (assignment_expression "puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" identifier = (cast_expression "(undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" (parenthesized_expression "(**(code **)(puVar40 + 0x171040))" ( (pointer_expression "**(code **)(puVar40 + 0x171040)" * (pointer_expression "*(code **)(puVar40 + 0x171040)" * (cast_expression "(code **)(puVar40 + 0x171040)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + 0x171040)" ( (binary_expression "puVar40 + 0x171040" identifier + number_literal) ))))) )) (argument_list "(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" ( identifier , identifier , identifier , identifier , (binary_expression "puVar40 + 0x178228" identifier + number_literal) ))))) ;) (if_statement "if (puVar31 != puVar32) {\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }" if (parenthesized_expression "(puVar31 != puVar32)" ( (binary_expression "puVar31 != puVar32" identifier != identifier) )) (compound_statement "{\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }" { (expression_statement "puVar36 = (uint *)*puVar31;" (assignment_expression "puVar36 = (uint *)*puVar31" identifier = (cast_expression "(uint *)*puVar31" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar31" * identifier))) ;) (expression_statement "puVar29 = puVar31 + 2;" (assignment_expression "puVar29 = puVar31 + 2" identifier = (binary_expression "puVar31 + 2" identifier + number_literal)) ;) (expression_statement "puVar33 = (uint *)*puVar32;" (assignment_expression "puVar33 = (uint *)*puVar32" identifier = (cast_expression "(uint *)*puVar32" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar32" * identifier))) ;) (expression_statement "puVar28 = puVar32 + 2;" (assignment_expression "puVar28 = puVar32 + 2" identifier = (binary_expression "puVar32 + 2" identifier + number_literal)) ;) (if_statement "if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }" if (parenthesized_expression "(puVar29 == puVar36)" ( (binary_expression "puVar29 == puVar36" identifier == identifier) )) (compound_statement "{\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }" { (if_statement "if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }" if (parenthesized_expression "(puVar28 == puVar33)" ( (binary_expression "puVar28 == puVar33" identifier == identifier) )) (compound_statement "{\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }" { (expression_statement "uVar35 = puVar31[1];" (assignment_expression "uVar35 = puVar31[1]" identifier = (subscript_expression "puVar31[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" if (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) )) (compound_statement "{\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }" { (if_statement "if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }" if (parenthesized_expression "(puVar32[1] == 0)" ( (binary_expression "puVar32[1] == 0" (subscript_expression "puVar32[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }" { (expression_statement "puVar27 = (undefined1 *)0x0;" (assignment_expression "puVar27 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar31[1] = 0;" (assignment_expression "puVar31[1] = 0" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar32[1] = 0;" (assignment_expression "puVar32[1] = 0" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }" else (compound_statement "{\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }" { (expression_statement "uVar38 = puVar32[3];" (assignment_expression "uVar38 = puVar32[3]" identifier = (subscript_expression "puVar32[3]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = puVar32[4];" (assignment_expression "uVar34 = puVar32[4]" identifier = (subscript_expression "puVar32[4]" identifier [ number_literal ])) ;) (expression_statement "uVar37 = puVar32[5];" (assignment_expression "uVar37 = puVar32[5]" identifier = (subscript_expression "puVar32[5]" identifier [ number_literal ])) ;) (expression_statement "*puVar29 = *puVar28;" (assignment_expression "*puVar29 = *puVar28" (pointer_expression "*puVar29" * identifier) = (pointer_expression "*puVar28" * identifier)) ;) (expression_statement "puVar31[3] = uVar38;" (assignment_expression "puVar31[3] = uVar38" (subscript_expression "puVar31[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31[4] = uVar34;" (assignment_expression "puVar31[4] = uVar34" (subscript_expression "puVar31[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31[5] = uVar37;" (assignment_expression "puVar31[5] = uVar37" (subscript_expression "puVar31[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = (subscript_expression "puVar32[1]" identifier [ number_literal ])) ;) (expression_statement "puVar32[1] = 0;" (assignment_expression "puVar32[1] = 0" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar27 = (undefined1 *)*puVar32;" (assignment_expression "puVar27 = (undefined1 *)*puVar32" identifier = (cast_expression "(undefined1 *)*puVar32" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar32" * identifier))) ;) (expression_statement "*puVar27 = 0;" (assignment_expression "*puVar27 = 0" (pointer_expression "*puVar27" * identifier) = number_literal) ;) }))) }) (else_clause "else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" else (if_statement "if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" if (parenthesized_expression "(puVar32[1] == 0)" ( (binary_expression "puVar32[1] == 0" (subscript_expression "puVar32[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }" { (expression_statement "uVar38 = puVar31[3];" (assignment_expression "uVar38 = puVar31[3]" identifier = (subscript_expression "puVar31[3]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = puVar31[4];" (assignment_expression "uVar34 = puVar31[4]" identifier = (subscript_expression "puVar31[4]" identifier [ number_literal ])) ;) (expression_statement "uVar37 = puVar31[5];" (assignment_expression "uVar37 = puVar31[5]" identifier = (subscript_expression "puVar31[5]" identifier [ number_literal ])) ;) (expression_statement "*puVar28 = *puVar29;" (assignment_expression "*puVar28 = *puVar29" (pointer_expression "*puVar28" * identifier) = (pointer_expression "*puVar29" * identifier)) ;) (expression_statement "puVar32[3] = uVar38;" (assignment_expression "puVar32[3] = uVar38" (subscript_expression "puVar32[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar32[4] = uVar34;" (assignment_expression "puVar32[4] = uVar34" (subscript_expression "puVar32[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar32[5] = uVar37;" (assignment_expression "puVar32[5] = uVar37" (subscript_expression "puVar32[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar32[1] = puVar31[1];" (assignment_expression "puVar32[1] = puVar31[1]" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = (subscript_expression "puVar31[1]" identifier [ number_literal ])) ;) (expression_statement "puVar31[1] = 0;" (assignment_expression "puVar31[1] = 0" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar27 = (undefined1 *)*puVar31;" (assignment_expression "puVar27 = (undefined1 *)*puVar31" identifier = (cast_expression "(undefined1 *)*puVar31" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar31" * identifier))) ;) (expression_statement "*puVar27 = 0;" (assignment_expression "*puVar27 = 0" (pointer_expression "*puVar27" * identifier) = number_literal) ;) }) (else_clause "else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" else (compound_statement "{\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" { (expression_statement "uVar12 = (uint)puVar29 & 3;" (assignment_expression "uVar12 = (uint)puVar29 & 3" identifier = (binary_expression "(uint)puVar29 & 3" (cast_expression "(uint)puVar29" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar20 = (uint)(puVar31 + 3) & 3;" (assignment_expression "uVar20 = (uint)(puVar31 + 3) & 3" identifier = (binary_expression "(uint)(puVar31 + 3) & 3" (call_expression "(uint)(puVar31 + 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar31 + 3)" ( (binary_expression "puVar31 + 3" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);" (assignment_expression "iVar6 = *(int *)((int)(puVar31 + 3) - uVar20)" identifier = (pointer_expression "*(int *)((int)(puVar31 + 3) - uVar20)" * (cast_expression "(int *)((int)(puVar31 + 3) - uVar20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar31 + 3) - uVar20)" ( (binary_expression "(int)(puVar31 + 3) - uVar20" (cast_expression "(int)(puVar31 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar31 + 3)" ( (binary_expression "puVar31 + 3" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar1 = (uint)(puVar32 + 2) & 3;" (assignment_expression "uVar1 = (uint)(puVar32 + 2) & 3" identifier = (binary_expression "(uint)(puVar32 + 2) & 3" (call_expression "(uint)(puVar32 + 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar32 + 2)" ( (binary_expression "puVar32 + 2" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);" (assignment_expression "iVar7 = *(int *)((int)(puVar32 + 2) - uVar1)" identifier = (pointer_expression "*(int *)((int)(puVar32 + 2) - uVar1)" * (cast_expression "(int *)((int)(puVar32 + 2) - uVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar32 + 2) - uVar1)" ( (binary_expression "(int)(puVar32 + 2) - uVar1" (cast_expression "(int)(puVar32 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar32 + 2)" ( (binary_expression "puVar32 + 2" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar2 = (uint)(puVar32 + 3) & 3;" (assignment_expression "uVar2 = (uint)(puVar32 + 3) & 3" identifier = (binary_expression "(uint)(puVar32 + 3) & 3" (call_expression "(uint)(puVar32 + 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar32 + 3)" ( (binary_expression "puVar32 + 3" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);" (assignment_expression "iVar8 = *(int *)((int)(puVar32 + 3) - uVar2)" identifier = (pointer_expression "*(int *)((int)(puVar32 + 3) - uVar2)" * (cast_expression "(int *)((int)(puVar32 + 3) - uVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar32 + 3) - uVar2)" ( (binary_expression "(int)(puVar32 + 3) - uVar2" (cast_expression "(int)(puVar32 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar32 + 3)" ( (binary_expression "puVar32 + 3" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar3 = (uint)(puVar32 + 4) & 3;" (assignment_expression "uVar3 = (uint)(puVar32 + 4) & 3" identifier = (binary_expression "(uint)(puVar32 + 4) & 3" (call_expression "(uint)(puVar32 + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar32 + 4)" ( (binary_expression "puVar32 + 4" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);" (assignment_expression "iVar9 = *(int *)((int)(puVar32 + 4) - uVar3)" identifier = (pointer_expression "*(int *)((int)(puVar32 + 4) - uVar3)" * (cast_expression "(int *)((int)(puVar32 + 4) - uVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar32 + 4) - uVar3)" ( (binary_expression "(int)(puVar32 + 4) - uVar3" (cast_expression "(int)(puVar32 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar32 + 4)" ( (binary_expression "puVar32 + 4" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar37 = puVar32[5];" (assignment_expression "uVar37 = puVar32[5]" identifier = (subscript_expression "puVar32[5]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = (uint)(puVar31 + 4) & 3;" (assignment_expression "uVar4 = (uint)(puVar31 + 4) & 3" identifier = (binary_expression "(uint)(puVar31 + 4) & 3" (call_expression "(uint)(puVar31 + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar31 + 4)" ( (binary_expression "puVar31 + 4" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);" (assignment_expression "iVar10 = *(int *)((int)(puVar31 + 4) - uVar4)" identifier = (pointer_expression "*(int *)((int)(puVar31 + 4) - uVar4)" * (cast_expression "(int *)((int)(puVar31 + 4) - uVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar31 + 4) - uVar4)" ( (binary_expression "(int)(puVar31 + 4) - uVar4" (cast_expression "(int)(puVar31 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar31 + 4)" ( (binary_expression "puVar31 + 4" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar5 = (uint)(puVar31 + 5) & 3;" (assignment_expression "uVar5 = (uint)(puVar31 + 5) & 3" identifier = (binary_expression "(uint)(puVar31 + 5) & 3" (call_expression "(uint)(puVar31 + 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar31 + 5)" ( (binary_expression "puVar31 + 5" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);" (assignment_expression "iVar11 = *(int *)((int)(puVar31 + 5) - uVar5)" identifier = (pointer_expression "*(int *)((int)(puVar31 + 5) - uVar5)" * (cast_expression "(int *)((int)(puVar31 + 5) - uVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar31 + 5) - uVar5)" ( (binary_expression "(int)(puVar31 + 5) - uVar5" (cast_expression "(int)(puVar31 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar31 + 5)" ( (binary_expression "puVar31 + 5" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar13 = (int)puVar31 + 0xbU & 3;" (assignment_expression "uVar13 = (int)puVar31 + 0xbU & 3" identifier = (binary_expression "(int)puVar31 + 0xbU & 3" (binary_expression "(int)puVar31 + 0xbU" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar14 = (int)puVar31 + 0xfU & 3;" (assignment_expression "uVar14 = (int)puVar31 + 0xfU & 3" identifier = (binary_expression "(int)puVar31 + 0xfU & 3" (binary_expression "(int)puVar31 + 0xfU" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);" (assignment_expression "uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14)" identifier = (pointer_expression "*(uint *)(((int)puVar31 + 0xfU) - uVar14)" * (cast_expression "(uint *)(((int)puVar31 + 0xfU) - uVar14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar31 + 0xfU) - uVar14)" ( (binary_expression "((int)puVar31 + 0xfU) - uVar14" (parenthesized_expression "((int)puVar31 + 0xfU)" ( (binary_expression "(int)puVar31 + 0xfU" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "uVar15 = (int)puVar32 + 0xbU & 3;" (assignment_expression "uVar15 = (int)puVar32 + 0xbU & 3" identifier = (binary_expression "(int)puVar32 + 0xbU & 3" (binary_expression "(int)puVar32 + 0xbU" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);" (assignment_expression "uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15)" identifier = (pointer_expression "*(uint *)(((int)puVar32 + 0xbU) - uVar15)" * (cast_expression "(uint *)(((int)puVar32 + 0xbU) - uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar32 + 0xbU) - uVar15)" ( (binary_expression "((int)puVar32 + 0xbU) - uVar15" (parenthesized_expression "((int)puVar32 + 0xbU)" ( (binary_expression "(int)puVar32 + 0xbU" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "uVar16 = (int)puVar32 + 0xfU & 3;" (assignment_expression "uVar16 = (int)puVar32 + 0xfU & 3" identifier = (binary_expression "(int)puVar32 + 0xfU & 3" (binary_expression "(int)puVar32 + 0xfU" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);" (assignment_expression "uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16)" identifier = (pointer_expression "*(uint *)(((int)puVar32 + 0xfU) - uVar16)" * (cast_expression "(uint *)(((int)puVar32 + 0xfU) - uVar16)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar32 + 0xfU) - uVar16)" ( (binary_expression "((int)puVar32 + 0xfU) - uVar16" (parenthesized_expression "((int)puVar32 + 0xfU)" ( (binary_expression "(int)puVar32 + 0xfU" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "uVar17 = (int)puVar32 + 0x13U & 3;" (assignment_expression "uVar17 = (int)puVar32 + 0x13U & 3" identifier = (binary_expression "(int)puVar32 + 0x13U & 3" (binary_expression "(int)puVar32 + 0x13U" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);" (assignment_expression "uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17)" identifier = (pointer_expression "*(uint *)(((int)puVar32 + 0x13U) - uVar17)" * (cast_expression "(uint *)(((int)puVar32 + 0x13U) - uVar17)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar32 + 0x13U) - uVar17)" ( (binary_expression "((int)puVar32 + 0x13U) - uVar17" (parenthesized_expression "((int)puVar32 + 0x13U)" ( (binary_expression "(int)puVar32 + 0x13U" (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "uVar18 = (int)puVar31 + 0x13U & 3;" (assignment_expression "uVar18 = (int)puVar31 + 0x13U & 3" identifier = (binary_expression "(int)puVar31 + 0x13U & 3" (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);" (assignment_expression "uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18)" identifier = (pointer_expression "*(uint *)(((int)puVar31 + 0x13U) - uVar18)" * (cast_expression "(uint *)(((int)puVar31 + 0x13U) - uVar18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar31 + 0x13U) - uVar18)" ( (binary_expression "((int)puVar31 + 0x13U) - uVar18" (parenthesized_expression "((int)puVar31 + 0x13U)" ( (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "uVar19 = (int)puVar31 + 0x17U & 3;" (assignment_expression "uVar19 = (int)puVar31 + 0x17U & 3" identifier = (binary_expression "(int)puVar31 + 0x17U & 3" (binary_expression "(int)puVar31 + 0x17U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);" (assignment_expression "uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19)" identifier = (pointer_expression "*(uint *)(((int)puVar31 + 0x17U) - uVar19)" * (cast_expression "(uint *)(((int)puVar31 + 0x17U) - uVar19)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar31 + 0x17U) - uVar19)" ( (binary_expression "((int)puVar31 + 0x17U) - uVar19" (parenthesized_expression "((int)puVar31 + 0x17U)" ( (binary_expression "(int)puVar31 + 0x17U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "*puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;" (assignment_expression "*puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8" (pointer_expression "*puVar28" * identifier) = (binary_expression "(*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8" (binary_expression "(*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8" (parenthesized_expression "(*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8)" ( (binary_expression "*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8" (binary_expression "*(int *)((int)puVar29 - uVar12) << uVar12 * 8" (pointer_expression "*(int *)((int)puVar29 - uVar12)" * (cast_expression "(int *)((int)puVar29 - uVar12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 - uVar12)" ( (binary_expression "(int)puVar29 - uVar12" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) << (binary_expression "uVar12 * 8" identifier * number_literal)) | (binary_expression "in_t5 & 0xffffffffU >> (4 - uVar12) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar12) * 8" number_literal >> (binary_expression "(4 - uVar12) * 8" (parenthesized_expression "(4 - uVar12)" ( (binary_expression "4 - uVar12" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar13 + 1) * 8" number_literal << (binary_expression "(uVar13 + 1) * 8" (parenthesized_expression "(uVar13 + 1)" ( (binary_expression "uVar13 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8" (pointer_expression "*(uint *)(((int)puVar31 + 0xbU) - uVar13)" * (cast_expression "(uint *)(((int)puVar31 + 0xbU) - uVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar31 + 0xbU) - uVar13)" ( (binary_expression "((int)puVar31 + 0xbU) - uVar13" (parenthesized_expression "((int)puVar31 + 0xbU)" ( (binary_expression "(int)puVar31 + 0xbU" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar13) * 8" (parenthesized_expression "(3 - uVar13)" ( (binary_expression "3 - uVar13" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;" (assignment_expression "puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8" (subscript_expression "puVar32[3]" identifier [ number_literal ]) = (binary_expression "(iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8" (binary_expression "(iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8" (parenthesized_expression "(iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8)" ( (binary_expression "iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8" (binary_expression "iVar6 << uVar20 * 8" identifier << (binary_expression "uVar20 * 8" identifier * number_literal)) | (binary_expression "in_t4 & 0xffffffffU >> (4 - uVar20) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar20) * 8" number_literal >> (binary_expression "(4 - uVar20) * 8" (parenthesized_expression "(4 - uVar20)" ( (binary_expression "4 - uVar20" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar14 + 1) * 8" number_literal << (binary_expression "(uVar14 + 1) * 8" (parenthesized_expression "(uVar14 + 1)" ( (binary_expression "uVar14 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar21 >> (3 - uVar14) * 8" identifier >> (binary_expression "(3 - uVar14) * 8" (parenthesized_expression "(3 - uVar14)" ( (binary_expression "3 - uVar14" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;" (assignment_expression "puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8" (subscript_expression "puVar32[4]" identifier [ number_literal ]) = (binary_expression "(iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8" (binary_expression "(iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8" (parenthesized_expression "(iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8)" ( (binary_expression "iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8" (binary_expression "iVar10 << uVar4 * 8" identifier << (binary_expression "uVar4 * 8" identifier * number_literal)) | (binary_expression "in_t3 & 0xffffffffU >> (4 - uVar4) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar4) * 8" number_literal >> (binary_expression "(4 - uVar4) * 8" (parenthesized_expression "(4 - uVar4)" ( (binary_expression "4 - uVar4" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar18 + 1) * 8" number_literal << (binary_expression "(uVar18 + 1) * 8" (parenthesized_expression "(uVar18 + 1)" ( (binary_expression "uVar18 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar25 >> (3 - uVar18) * 8" identifier >> (binary_expression "(3 - uVar18) * 8" (parenthesized_expression "(3 - uVar18)" ( (binary_expression "3 - uVar18" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;" (assignment_expression "puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8" (subscript_expression "puVar32[5]" identifier [ number_literal ]) = (binary_expression "(iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8" (binary_expression "(iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8" (parenthesized_expression "(iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8)" ( (binary_expression "iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8" (binary_expression "iVar11 << uVar5 * 8" identifier << (binary_expression "uVar5 * 8" identifier * number_literal)) | (binary_expression "in_t2 & 0xffffffffU >> (4 - uVar5) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar5) * 8" number_literal >> (binary_expression "(4 - uVar5) * 8" (parenthesized_expression "(4 - uVar5)" ( (binary_expression "4 - uVar5" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar19 + 1) * 8" number_literal << (binary_expression "(uVar19 + 1) * 8" (parenthesized_expression "(uVar19 + 1)" ( (binary_expression "uVar19 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar26 >> (3 - uVar19) * 8" identifier >> (binary_expression "(3 - uVar19) * 8" (parenthesized_expression "(3 - uVar19)" ( (binary_expression "3 - uVar19" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;" (assignment_expression "puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8" (subscript_expression "puVar31[2]" identifier [ number_literal ]) = (binary_expression "(iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8" (binary_expression "(iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8" (parenthesized_expression "(iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8)" ( (binary_expression "iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8" (binary_expression "iVar7 << uVar1 * 8" identifier << (binary_expression "uVar1 * 8" identifier * number_literal)) | (binary_expression "in_t1 & 0xffffffffU >> (4 - uVar1) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar1) * 8" number_literal >> (binary_expression "(4 - uVar1) * 8" (parenthesized_expression "(4 - uVar1)" ( (binary_expression "4 - uVar1" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar15 + 1) * 8" number_literal << (binary_expression "(uVar15 + 1) * 8" (parenthesized_expression "(uVar15 + 1)" ( (binary_expression "uVar15 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar22 >> (3 - uVar15) * 8" identifier >> (binary_expression "(3 - uVar15) * 8" (parenthesized_expression "(3 - uVar15)" ( (binary_expression "3 - uVar15" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;" (assignment_expression "puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8" (subscript_expression "puVar31[3]" identifier [ number_literal ]) = (binary_expression "(iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8" (binary_expression "(iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8" (parenthesized_expression "(iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8)" ( (binary_expression "iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8" (binary_expression "iVar8 << uVar2 * 8" identifier << (binary_expression "uVar2 * 8" identifier * number_literal)) | (binary_expression "in_t0 & 0xffffffffU >> (4 - uVar2) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar2) * 8" number_literal >> (binary_expression "(4 - uVar2) * 8" (parenthesized_expression "(4 - uVar2)" ( (binary_expression "4 - uVar2" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar16 + 1) * 8" number_literal << (binary_expression "(uVar16 + 1) * 8" (parenthesized_expression "(uVar16 + 1)" ( (binary_expression "uVar16 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar23 >> (3 - uVar16) * 8" identifier >> (binary_expression "(3 - uVar16) * 8" (parenthesized_expression "(3 - uVar16)" ( (binary_expression "3 - uVar16" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;" (assignment_expression "puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8" (subscript_expression "puVar31[4]" identifier [ number_literal ]) = (binary_expression "(iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8" (binary_expression "(iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8" (parenthesized_expression "(iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8)" ( (binary_expression "iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8" (binary_expression "iVar9 << uVar3 * 8" identifier << (binary_expression "uVar3 * 8" identifier * number_literal)) | (binary_expression "uVar35 & 0xffffffffU >> (4 - uVar3) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar3) * 8" number_literal >> (binary_expression "(4 - uVar3) * 8" (parenthesized_expression "(4 - uVar3)" ( (binary_expression "4 - uVar3" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar17 + 1) * 8" number_literal << (binary_expression "(uVar17 + 1) * 8" (parenthesized_expression "(uVar17 + 1)" ( (binary_expression "uVar17 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar24 >> (3 - uVar17) * 8" identifier >> (binary_expression "(3 - uVar17) * 8" (parenthesized_expression "(3 - uVar17)" ( (binary_expression "3 - uVar17" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar31[5] = uVar37;" (assignment_expression "puVar31[5] = uVar37" (subscript_expression "puVar31[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27 = (undefined1 *)puVar31[1];" (assignment_expression "puVar27 = (undefined1 *)puVar31[1]" identifier = (cast_expression "(undefined1 *)puVar31[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar31[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = (subscript_expression "puVar32[1]" identifier [ number_literal ])) ;) (expression_statement "puVar32[1] = puVar27;" (assignment_expression "puVar32[1] = puVar27" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = identifier) ;) }))))) }) (else_clause "else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }" else (compound_statement "{\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }" { (expression_statement "uVar34 = puVar31[3];" (assignment_expression "uVar34 = puVar31[3]" identifier = (subscript_expression "puVar31[3]" identifier [ number_literal ])) ;) (expression_statement "uVar35 = (uint)(puVar31 + 4) & 3;" (assignment_expression "uVar35 = (uint)(puVar31 + 4) & 3" identifier = (binary_expression "(uint)(puVar31 + 4) & 3" (call_expression "(uint)(puVar31 + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar31 + 4)" ( (binary_expression "puVar31 + 4" identifier + number_literal) ))) & number_literal)) ;) (expression_statement "iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);" (assignment_expression "iVar6 = *(int *)((int)(puVar31 + 4) - uVar35)" identifier = (pointer_expression "*(int *)((int)(puVar31 + 4) - uVar35)" * (cast_expression "(int *)((int)(puVar31 + 4) - uVar35)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar31 + 4) - uVar35)" ( (binary_expression "(int)(puVar31 + 4) - uVar35" (cast_expression "(int)(puVar31 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar31 + 4)" ( (binary_expression "puVar31 + 4" identifier + number_literal) ))) - identifier) ))))) ;) (expression_statement "uVar37 = puVar31[5];" (assignment_expression "uVar37 = puVar31[5]" identifier = (subscript_expression "puVar31[5]" identifier [ number_literal ])) ;) (expression_statement "uVar38 = puVar32[2];" (assignment_expression "uVar38 = puVar32[2]" identifier = (subscript_expression "puVar32[2]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = (int)puVar31 + 0x13U & 3;" (assignment_expression "uVar12 = (int)puVar31 + 0x13U & 3" identifier = (binary_expression "(int)puVar31 + 0x13U & 3" (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);" (assignment_expression "uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12)" identifier = (pointer_expression "*(uint *)(((int)puVar31 + 0x13U) - uVar12)" * (cast_expression "(uint *)(((int)puVar31 + 0x13U) - uVar12)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)puVar31 + 0x13U) - uVar12)" ( (binary_expression "((int)puVar31 + 0x13U) - uVar12" (parenthesized_expression "((int)puVar31 + 0x13U)" ( (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - identifier) ))))) ;) (expression_statement "*puVar28 = *puVar29;" (assignment_expression "*puVar28 = *puVar29" (pointer_expression "*puVar28" * identifier) = (pointer_expression "*puVar29" * identifier)) ;) (expression_statement "puVar32[3] = uVar34;" (assignment_expression "puVar32[3] = uVar34" (subscript_expression "puVar32[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;" (assignment_expression "puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8" (subscript_expression "puVar32[4]" identifier [ number_literal ]) = (binary_expression "(iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8" (binary_expression "(iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8" (parenthesized_expression "(iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8)" ( (binary_expression "iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8" (binary_expression "iVar6 << uVar35 * 8" identifier << (binary_expression "uVar35 * 8" identifier * number_literal)) | (binary_expression "in_t0 & 0xffffffffU >> (4 - uVar35) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar35) * 8" number_literal >> (binary_expression "(4 - uVar35) * 8" (parenthesized_expression "(4 - uVar35)" ( (binary_expression "4 - uVar35" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar12 + 1) * 8" number_literal << (binary_expression "(uVar12 + 1) * 8" (parenthesized_expression "(uVar12 + 1)" ( (binary_expression "uVar12 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar20 >> (3 - uVar12) * 8" identifier >> (binary_expression "(3 - uVar12) * 8" (parenthesized_expression "(3 - uVar12)" ( (binary_expression "3 - uVar12" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar32[5] = uVar37;" (assignment_expression "puVar32[5] = uVar37" (subscript_expression "puVar32[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar31 = puVar33;" (assignment_expression "*puVar31 = puVar33" (pointer_expression "*puVar31" * identifier) = identifier) ;) (expression_statement "*puVar32 = puVar28;" (assignment_expression "*puVar32 = puVar28" (pointer_expression "*puVar32" * identifier) = identifier) ;) (expression_statement "puVar31[2] = uVar38;" (assignment_expression "puVar31[2] = uVar38" (subscript_expression "puVar31[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27 = (undefined1 *)puVar31[1];" (assignment_expression "puVar27 = (undefined1 *)puVar31[1]" identifier = (cast_expression "(undefined1 *)puVar31[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar31[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = (subscript_expression "puVar32[1]" identifier [ number_literal ])) ;) (expression_statement "puVar32[1] = puVar27;" (assignment_expression "puVar32[1] = puVar27" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }" else (compound_statement "{\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }" { (expression_statement "uVar37 = puVar31[2];" (assignment_expression "uVar37 = puVar31[2]" identifier = (subscript_expression "puVar31[2]" identifier [ number_literal ])) ;) (if_statement "if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }" if (parenthesized_expression "(puVar28 == puVar33)" ( (binary_expression "puVar28 == puVar33" identifier == identifier) )) (compound_statement "{\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }" { (expression_statement "uVar39 = puVar32[3];" (assignment_expression "uVar39 = puVar32[3]" identifier = (subscript_expression "puVar32[3]" identifier [ number_literal ])) ;) (expression_statement "uVar38 = puVar32[4];" (assignment_expression "uVar38 = puVar32[4]" identifier = (subscript_expression "puVar32[4]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = puVar32[5];" (assignment_expression "uVar34 = puVar32[5]" identifier = (subscript_expression "puVar32[5]" identifier [ number_literal ])) ;) (expression_statement "*puVar29 = *puVar28;" (assignment_expression "*puVar29 = *puVar28" (pointer_expression "*puVar29" * identifier) = (pointer_expression "*puVar28" * identifier)) ;) (expression_statement "puVar31[3] = uVar39;" (assignment_expression "puVar31[3] = uVar39" (subscript_expression "puVar31[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31[4] = uVar38;" (assignment_expression "puVar31[4] = uVar38" (subscript_expression "puVar31[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar31[5] = uVar34;" (assignment_expression "puVar31[5] = uVar34" (subscript_expression "puVar31[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar32 = puVar36;" (assignment_expression "*puVar32 = puVar36" (pointer_expression "*puVar32" * identifier) = identifier) ;) (expression_statement "*puVar31 = puVar29;" (assignment_expression "*puVar31 = puVar29" (pointer_expression "*puVar31" * identifier) = identifier) ;) }) (else_clause "else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }" else (compound_statement "{\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }" { (expression_statement "*puVar31 = puVar33;" (assignment_expression "*puVar31 = puVar33" (pointer_expression "*puVar31" * identifier) = identifier) ;) (expression_statement "*puVar32 = puVar36;" (assignment_expression "*puVar32 = puVar36" (pointer_expression "*puVar32" * identifier) = identifier) ;) (expression_statement "puVar31[2] = puVar32[2];" (assignment_expression "puVar31[2] = puVar32[2]" (subscript_expression "puVar31[2]" identifier [ number_literal ]) = (subscript_expression "puVar32[2]" identifier [ number_literal ])) ;) }))) (expression_statement "puVar32[2] = uVar37;" (assignment_expression "puVar32[2] = uVar37" (subscript_expression "puVar32[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27 = (undefined1 *)puVar31[1];" (assignment_expression "puVar27 = (undefined1 *)puVar31[1]" identifier = (cast_expression "(undefined1 *)puVar31[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar31[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" identifier [ number_literal ]) = (subscript_expression "puVar32[1]" identifier [ number_literal ])) ;) (expression_statement "puVar32[1] = puVar27;" (assignment_expression "puVar32[1] = puVar27" (subscript_expression "puVar32[1]" identifier [ number_literal ]) = identifier) ;) }))) })) (return_statement "return puVar27;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 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 (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression LIT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) )) (compound_statement { (ERROR (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) : :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;)) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) ))))) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) })) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (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 (pointer_expression * IDENT) = (pointer_expression * 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 (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (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 (pointer_expression * IDENT) = (pointer_expression * 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 (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) - IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) << (binary_expression IDENT * LIT)) | (binary_expression IDENT & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) )) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) - IDENT) )))) >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << (binary_expression IDENT * LIT)) | (binary_expression IDENT & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) )) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression IDENT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << (binary_expression IDENT * LIT)) | (binary_expression IDENT & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) )) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression IDENT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << (binary_expression IDENT * LIT)) | (binary_expression IDENT & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) )) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression IDENT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << (binary_expression IDENT * LIT)) | (binary_expression IDENT & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) )) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression IDENT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << (binary_expression IDENT * LIT)) | (binary_expression IDENT & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) )) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression IDENT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << (binary_expression IDENT * LIT)) | (binary_expression IDENT & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) )) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression IDENT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) - IDENT) ))))) ;) (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 (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) - IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << (binary_expression IDENT * LIT)) | (binary_expression IDENT & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) )) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression IDENT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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 (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) })) (return_statement return IDENT ;) })))
(function_definition "undefined1 * FUN_002c1f50(string *param_1,char *param_2,undefined1 *param_3,uint param_4)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  undefined1 *puVar27;\n  uint *puVar28;\n  uint *puVar29;\n  int *piVar30;\n  undefined4 *puVar31;\n  undefined4 *puVar32;\n  uint *puVar33;\n  undefined4 uVar34;\n  uint uVar35;\n  uint *puVar36;\n  uint in_t0;\n  undefined4 uVar37;\n  uint in_t1;\n  undefined4 uVar38;\n  uint in_t2;\n  undefined4 uVar39;\n  uint in_t3;\n  uint in_t4;\n  uint in_t5;\n  undefined *puVar40;\n  \n  if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {\n    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }\n  piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);\n  puVar40 = PTR___throw_length_error_00432480;\n  (*(code *)PTR___throw_length_error_00432480)();\n  uVar35 = piVar30[1];\n  if (param_4 <= uVar35) {\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }\n  puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);\n  puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);\n  puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);\n  if (puVar31 != puVar32) {\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }\n  return puVar27;\n}" (type_identifier "undefined1") (pointer_declarator "* FUN_002c1f50(string *param_1,char *param_2,undefined1 *param_3,uint param_4)" (* "*") (function_declarator "FUN_002c1f50(string *param_1,char *param_2,undefined1 *param_3,uint param_4)" (identifier "FUN_002c1f50") (parameter_list "(string *param_1,char *param_2,undefined1 *param_3,uint param_4)" (( "(") (parameter_declaration "string *param_1" (type_identifier "string") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined1 *param_3" (type_identifier "undefined1") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) () ")")))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  undefined1 *puVar27;\n  uint *puVar28;\n  uint *puVar29;\n  int *piVar30;\n  undefined4 *puVar31;\n  undefined4 *puVar32;\n  uint *puVar33;\n  undefined4 uVar34;\n  uint uVar35;\n  uint *puVar36;\n  uint in_t0;\n  undefined4 uVar37;\n  uint in_t1;\n  undefined4 uVar38;\n  uint in_t2;\n  undefined4 uVar39;\n  uint in_t3;\n  uint in_t4;\n  uint in_t5;\n  undefined *puVar40;\n  \n  if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {\n    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }\n  piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);\n  puVar40 = PTR___throw_length_error_00432480;\n  (*(code *)PTR___throw_length_error_00432480)();\n  uVar35 = piVar30[1];\n  if (param_4 <= uVar35) {\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }\n  puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);\n  puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);\n  puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);\n  if (puVar31 != puVar32) {\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }\n  return puVar27;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (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 "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "uint uVar24;" (type_identifier "uint") (identifier "uVar24") (; ";")) (declaration "uint uVar25;" (type_identifier "uint") (identifier "uVar25") (; ";")) (declaration "uint uVar26;" (type_identifier "uint") (identifier "uVar26") (; ";")) (declaration "undefined1 *puVar27;" (type_identifier "undefined1") (pointer_declarator "*puVar27" (* "*") (identifier "puVar27")) (; ";")) (declaration "uint *puVar28;" (type_identifier "uint") (pointer_declarator "*puVar28" (* "*") (identifier "puVar28")) (; ";")) (declaration "uint *puVar29;" (type_identifier "uint") (pointer_declarator "*puVar29" (* "*") (identifier "puVar29")) (; ";")) (declaration "int *piVar30;" (primitive_type "int") (pointer_declarator "*piVar30" (* "*") (identifier "piVar30")) (; ";")) (declaration "undefined4 *puVar31;" (type_identifier "undefined4") (pointer_declarator "*puVar31" (* "*") (identifier "puVar31")) (; ";")) (declaration "undefined4 *puVar32;" (type_identifier "undefined4") (pointer_declarator "*puVar32" (* "*") (identifier "puVar32")) (; ";")) (declaration "uint *puVar33;" (type_identifier "uint") (pointer_declarator "*puVar33" (* "*") (identifier "puVar33")) (; ";")) (declaration "undefined4 uVar34;" (type_identifier "undefined4") (identifier "uVar34") (; ";")) (declaration "uint uVar35;" (type_identifier "uint") (identifier "uVar35") (; ";")) (declaration "uint *puVar36;" (type_identifier "uint") (pointer_declarator "*puVar36" (* "*") (identifier "puVar36")) (; ";")) (declaration "uint in_t0;" (type_identifier "uint") (identifier "in_t0") (; ";")) (declaration "undefined4 uVar37;" (type_identifier "undefined4") (identifier "uVar37") (; ";")) (declaration "uint in_t1;" (type_identifier "uint") (identifier "in_t1") (; ";")) (declaration "undefined4 uVar38;" (type_identifier "undefined4") (identifier "uVar38") (; ";")) (declaration "uint in_t2;" (type_identifier "uint") (identifier "in_t2") (; ";")) (declaration "undefined4 uVar39;" (type_identifier "undefined4") (identifier "uVar39") (; ";")) (declaration "uint in_t3;" (type_identifier "uint") (identifier "in_t3") (; ";")) (declaration "uint in_t4;" (type_identifier "uint") (identifier "in_t4") (; ";")) (declaration "uint in_t5;" (type_identifier "uint") (identifier "in_t5") (; ";")) (declaration "undefined *puVar40;" (type_identifier "undefined") (pointer_declarator "*puVar40" (* "*") (identifier "puVar40")) (; ";")) (if_statement "if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {\n    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }" (if "if") (parenthesized_expression "(param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4)))" (( "(") (binary_expression "param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))" (identifier "param_3") (<= "<=") (cast_expression "(undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(0x7fffffffU - *(int *)(param_1 + 4))" (( "(") (binary_expression "0x7fffffffU - *(int *)(param_1 + 4)" (number_literal "0x7fffffffU") (- "-") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) () ")")))) () ")")) (compound_statement "{\n    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);\n    return puVar27;\n  }" ({ "{") (ERROR "puVar27 = (undefined1 *)std::" (assignment_expression "puVar27 = (undefined1 *)std" (identifier "puVar27") (= "=") (cast_expression "(undefined1 *)std" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "std"))) (: ":") (: ":")) (labeled_statement "string::_M_append(param_1,param_2,(uint)param_3);" (statement_identifier "string") (: ":") (ERROR ":" (: ":")) (expression_statement "_M_append(param_1,param_2,(uint)param_3);" (call_expression "_M_append(param_1,param_2,(uint)param_3)" (identifier "_M_append") (argument_list "(param_1,param_2,(uint)param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) () ")"))) (; ";"))) (return_statement "return puVar27;" (return "return") (identifier "puVar27") (; ";")) (} "}"))) (expression_statement "piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);" (assignment_expression "piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240)" (identifier "piVar30") (= "=") (cast_expression "(int *)(PTR_s_alize_xindex_004323b4 + -0x6240)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_alize_xindex_004323b4 + -0x6240)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x6240" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x6240")) () ")")))) (; ";")) (expression_statement "puVar40 = PTR___throw_length_error_00432480;" (assignment_expression "puVar40 = PTR___throw_length_error_00432480" (identifier "puVar40") (= "=") (identifier "PTR___throw_length_error_00432480")) (; ";")) (expression_statement "(*(code *)PTR___throw_length_error_00432480)();" (call_expression "(*(code *)PTR___throw_length_error_00432480)()" (parenthesized_expression "(*(code *)PTR___throw_length_error_00432480)" (( "(") (pointer_expression "*(code *)PTR___throw_length_error_00432480" (* "*") (cast_expression "(code *)PTR___throw_length_error_00432480" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___throw_length_error_00432480"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar35 = piVar30[1];" (assignment_expression "uVar35 = piVar30[1]" (identifier "uVar35") (= "=") (subscript_expression "piVar30[1]" (identifier "piVar30") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (param_4 <= uVar35) {\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }" (if "if") (parenthesized_expression "(param_4 <= uVar35)" (( "(") (binary_expression "param_4 <= uVar35" (identifier "param_4") (<= "<=") (identifier "uVar35")) () ")")) (compound_statement "{\n    if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }\n    if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }\n    return param_3;\n  }" ({ "{") (if_statement "if ((undefined1 *)(uVar35 - param_4) <= param_3) {\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }" (if "if") (parenthesized_expression "((undefined1 *)(uVar35 - param_4) <= param_3)" (( "(") (binary_expression "(undefined1 *)(uVar35 - param_4) <= param_3" (cast_expression "(undefined1 *)(uVar35 - param_4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar35 - param_4)" (( "(") (binary_expression "uVar35 - param_4" (identifier "uVar35") (- "-") (identifier "param_4")) () ")"))) (<= "<=") (identifier "param_3")) () ")")) (compound_statement "{\n      param_3 = (undefined1 *)(uVar35 - param_4);\n    }" ({ "{") (expression_statement "param_3 = (undefined1 *)(uVar35 - param_4);" (assignment_expression "param_3 = (undefined1 *)(uVar35 - param_4)" (identifier "param_3") (= "=") (cast_expression "(undefined1 *)(uVar35 - param_4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar35 - param_4)" (( "(") (binary_expression "uVar35 - param_4" (identifier "uVar35") (- "-") (identifier "param_4")) () ")")))) (; ";")) (} "}"))) (if_statement "if (param_3 != (undefined1 *)0x0) {\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }" (if "if") (parenthesized_expression "(param_3 != (undefined1 *)0x0)" (( "(") (binary_expression "param_3 != (undefined1 *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }\n      (**(code **)(puVar40 + 0x1747e0))(param_2);\n    }" ({ "{") (if_statement "if (param_3 == (undefined1 *)0x1) {\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }" (if "if") (parenthesized_expression "(param_3 == (undefined1 *)0x1)" (( "(") (binary_expression "param_3 == (undefined1 *)0x1" (identifier "param_3") (== "==") (cast_expression "(undefined1 *)0x1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        *param_2 = *(char *)(*piVar30 + param_4);\n        return (undefined1 *)0x1;\n      }" ({ "{") (expression_statement "*param_2 = *(char *)(*piVar30 + param_4);" (assignment_expression "*param_2 = *(char *)(*piVar30 + param_4)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (pointer_expression "*(char *)(*piVar30 + param_4)" (* "*") (cast_expression "(char *)(*piVar30 + param_4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar30 + param_4)" (( "(") (binary_expression "*piVar30 + param_4" (pointer_expression "*piVar30" (* "*") (identifier "piVar30")) (+ "+") (identifier "param_4")) () ")"))))) (; ";")) (return_statement "return (undefined1 *)0x1;" (return "return") (cast_expression "(undefined1 *)0x1" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar40 + 0x1747e0))(param_2);" (call_expression "(**(code **)(puVar40 + 0x1747e0))(param_2)" (parenthesized_expression "(**(code **)(puVar40 + 0x1747e0))" (( "(") (pointer_expression "**(code **)(puVar40 + 0x1747e0)" (* "*") (pointer_expression "*(code **)(puVar40 + 0x1747e0)" (* "*") (cast_expression "(code **)(puVar40 + 0x1747e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar40 + 0x1747e0)" (( "(") (binary_expression "puVar40 + 0x1747e0" (identifier "puVar40") (+ "+") (number_literal "0x1747e0")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (return_statement "return param_3;" (return "return") (identifier "param_3") (; ";")) (} "}"))) (expression_statement "puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);" (assignment_expression "puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c)" (identifier "puVar32") (= "=") (cast_expression "(undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar40 + 0x1702c4) + 0x733c)" (( "(") (binary_expression "*(int *)(puVar40 + 0x1702c4) + 0x733c" (pointer_expression "*(int *)(puVar40 + 0x1702c4)" (* "*") (cast_expression "(int *)(puVar40 + 0x1702c4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar40 + 0x1702c4)" (( "(") (binary_expression "puVar40 + 0x1702c4" (identifier "puVar40") (+ "+") (number_literal "0x1702c4")) () ")")))) (+ "+") (number_literal "0x733c")) () ")")))) (; ";")) (expression_statement "puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);" (assignment_expression "puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4)" (identifier "puVar31") (= "=") (cast_expression "(undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar40 + 0x17040c) + -0x25a4)" (( "(") (binary_expression "*(int *)(puVar40 + 0x17040c) + -0x25a4" (pointer_expression "*(int *)(puVar40 + 0x17040c)" (* "*") (cast_expression "(int *)(puVar40 + 0x17040c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar40 + 0x17040c)" (( "(") (binary_expression "puVar40 + 0x17040c" (identifier "puVar40") (+ "+") (number_literal "0x17040c")) () ")")))) (+ "+") (number_literal "-0x25a4")) () ")")))) (; ";")) (expression_statement "puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);" (assignment_expression "puVar27 = (undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" (identifier "puVar27") (= "=") (cast_expression "(undefined1 *)\n            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" (parenthesized_expression "(**(code **)(puVar40 + 0x171040))" (( "(") (pointer_expression "**(code **)(puVar40 + 0x171040)" (* "*") (pointer_expression "*(code **)(puVar40 + 0x171040)" (* "*") (cast_expression "(code **)(puVar40 + 0x171040)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar40 + 0x171040)" (( "(") (binary_expression "puVar40 + 0x171040" (identifier "puVar40") (+ "+") (number_literal "0x171040")) () ")"))))) () ")")) (argument_list "(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228)" (( "(") (identifier "puVar31") (, ",") (identifier "puVar32") (, ",") (identifier "param_4") (, ",") (identifier "uVar35") (, ",") (binary_expression "puVar40 + 0x178228" (identifier "puVar40") (+ "+") (number_literal "0x178228")) () ")"))))) (; ";")) (if_statement "if (puVar31 != puVar32) {\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }" (if "if") (parenthesized_expression "(puVar31 != puVar32)" (( "(") (binary_expression "puVar31 != puVar32" (identifier "puVar31") (!= "!=") (identifier "puVar32")) () ")")) (compound_statement "{\n    puVar36 = (uint *)*puVar31;\n    puVar29 = puVar31 + 2;\n    puVar33 = (uint *)*puVar32;\n    puVar28 = puVar32 + 2;\n    if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }\n  }" ({ "{") (expression_statement "puVar36 = (uint *)*puVar31;" (assignment_expression "puVar36 = (uint *)*puVar31" (identifier "puVar36") (= "=") (cast_expression "(uint *)*puVar31" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar31" (* "*") (identifier "puVar31")))) (; ";")) (expression_statement "puVar29 = puVar31 + 2;" (assignment_expression "puVar29 = puVar31 + 2" (identifier "puVar29") (= "=") (binary_expression "puVar31 + 2" (identifier "puVar31") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar33 = (uint *)*puVar32;" (assignment_expression "puVar33 = (uint *)*puVar32" (identifier "puVar33") (= "=") (cast_expression "(uint *)*puVar32" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar32" (* "*") (identifier "puVar32")))) (; ";")) (expression_statement "puVar28 = puVar32 + 2;" (assignment_expression "puVar28 = puVar32 + 2" (identifier "puVar28") (= "=") (binary_expression "puVar32 + 2" (identifier "puVar32") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (puVar29 == puVar36) {\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }\n    else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }" (if "if") (parenthesized_expression "(puVar29 == puVar36)" (( "(") (binary_expression "puVar29 == puVar36" (identifier "puVar29") (== "==") (identifier "puVar36")) () ")")) (compound_statement "{\n      if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }\n    }" ({ "{") (if_statement "if (puVar28 == puVar33) {\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }\n      else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }" (if "if") (parenthesized_expression "(puVar28 == puVar33)" (( "(") (binary_expression "puVar28 == puVar33" (identifier "puVar28") (== "==") (identifier "puVar33")) () ")")) (compound_statement "{\n        uVar35 = puVar31[1];\n        if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }\n      }" ({ "{") (expression_statement "uVar35 = puVar31[1];" (assignment_expression "uVar35 = puVar31[1]" (identifier "uVar35") (= "=") (subscript_expression "puVar31[1]" (identifier "puVar31") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar35 == 0) {\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }\n        else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" (if "if") (parenthesized_expression "(uVar35 == 0)" (( "(") (binary_expression "uVar35 == 0" (identifier "uVar35") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }\n        }" ({ "{") (if_statement "if (puVar32[1] == 0) {\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }\n          else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }" (if "if") (parenthesized_expression "(puVar32[1] == 0)" (( "(") (binary_expression "puVar32[1] == 0" (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            puVar27 = (undefined1 *)0x0;\n            puVar31[1] = 0;\n            puVar32[1] = 0;\n          }" ({ "{") (expression_statement "puVar27 = (undefined1 *)0x0;" (assignment_expression "puVar27 = (undefined1 *)0x0" (identifier "puVar27") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar31[1] = 0;" (assignment_expression "puVar31[1] = 0" (subscript_expression "puVar31[1]" (identifier "puVar31") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar32[1] = 0;" (assignment_expression "puVar32[1] = 0" (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }" (else "else") (compound_statement "{\n            uVar38 = puVar32[3];\n            uVar34 = puVar32[4];\n            uVar37 = puVar32[5];\n            *puVar29 = *puVar28;\n            puVar31[3] = uVar38;\n            puVar31[4] = uVar34;\n            puVar31[5] = uVar37;\n            puVar31[1] = puVar32[1];\n            puVar32[1] = 0;\n            puVar27 = (undefined1 *)*puVar32;\n            *puVar27 = 0;\n          }" ({ "{") (expression_statement "uVar38 = puVar32[3];" (assignment_expression "uVar38 = puVar32[3]" (identifier "uVar38") (= "=") (subscript_expression "puVar32[3]" (identifier "puVar32") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar34 = puVar32[4];" (assignment_expression "uVar34 = puVar32[4]" (identifier "uVar34") (= "=") (subscript_expression "puVar32[4]" (identifier "puVar32") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar37 = puVar32[5];" (assignment_expression "uVar37 = puVar32[5]" (identifier "uVar37") (= "=") (subscript_expression "puVar32[5]" (identifier "puVar32") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "*puVar29 = *puVar28;" (assignment_expression "*puVar29 = *puVar28" (pointer_expression "*puVar29" (* "*") (identifier "puVar29")) (= "=") (pointer_expression "*puVar28" (* "*") (identifier "puVar28"))) (; ";")) (expression_statement "puVar31[3] = uVar38;" (assignment_expression "puVar31[3] = uVar38" (subscript_expression "puVar31[3]" (identifier "puVar31") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar38")) (; ";")) (expression_statement "puVar31[4] = uVar34;" (assignment_expression "puVar31[4] = uVar34" (subscript_expression "puVar31[4]" (identifier "puVar31") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar34")) (; ";")) (expression_statement "puVar31[5] = uVar37;" (assignment_expression "puVar31[5] = uVar37" (subscript_expression "puVar31[5]" (identifier "puVar31") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar37")) (; ";")) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" (identifier "puVar31") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar32[1] = 0;" (assignment_expression "puVar32[1] = 0" (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar27 = (undefined1 *)*puVar32;" (assignment_expression "puVar27 = (undefined1 *)*puVar32" (identifier "puVar27") (= "=") (cast_expression "(undefined1 *)*puVar32" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar32" (* "*") (identifier "puVar32")))) (; ";")) (expression_statement "*puVar27 = 0;" (assignment_expression "*puVar27 = 0" (pointer_expression "*puVar27" (* "*") (identifier "puVar27")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" (else "else") (if_statement "if (puVar32[1] == 0) {\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }\n        else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" (if "if") (parenthesized_expression "(puVar32[1] == 0)" (( "(") (binary_expression "puVar32[1] == 0" (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar38 = puVar31[3];\n          uVar34 = puVar31[4];\n          uVar37 = puVar31[5];\n          *puVar28 = *puVar29;\n          puVar32[3] = uVar38;\n          puVar32[4] = uVar34;\n          puVar32[5] = uVar37;\n          puVar32[1] = puVar31[1];\n          puVar31[1] = 0;\n          puVar27 = (undefined1 *)*puVar31;\n          *puVar27 = 0;\n        }" ({ "{") (expression_statement "uVar38 = puVar31[3];" (assignment_expression "uVar38 = puVar31[3]" (identifier "uVar38") (= "=") (subscript_expression "puVar31[3]" (identifier "puVar31") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar34 = puVar31[4];" (assignment_expression "uVar34 = puVar31[4]" (identifier "uVar34") (= "=") (subscript_expression "puVar31[4]" (identifier "puVar31") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar37 = puVar31[5];" (assignment_expression "uVar37 = puVar31[5]" (identifier "uVar37") (= "=") (subscript_expression "puVar31[5]" (identifier "puVar31") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "*puVar28 = *puVar29;" (assignment_expression "*puVar28 = *puVar29" (pointer_expression "*puVar28" (* "*") (identifier "puVar28")) (= "=") (pointer_expression "*puVar29" (* "*") (identifier "puVar29"))) (; ";")) (expression_statement "puVar32[3] = uVar38;" (assignment_expression "puVar32[3] = uVar38" (subscript_expression "puVar32[3]" (identifier "puVar32") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar38")) (; ";")) (expression_statement "puVar32[4] = uVar34;" (assignment_expression "puVar32[4] = uVar34" (subscript_expression "puVar32[4]" (identifier "puVar32") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar34")) (; ";")) (expression_statement "puVar32[5] = uVar37;" (assignment_expression "puVar32[5] = uVar37" (subscript_expression "puVar32[5]" (identifier "puVar32") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar37")) (; ";")) (expression_statement "puVar32[1] = puVar31[1];" (assignment_expression "puVar32[1] = puVar31[1]" (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar31[1]" (identifier "puVar31") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar31[1] = 0;" (assignment_expression "puVar31[1] = 0" (subscript_expression "puVar31[1]" (identifier "puVar31") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar27 = (undefined1 *)*puVar31;" (assignment_expression "puVar27 = (undefined1 *)*puVar31" (identifier "puVar27") (= "=") (cast_expression "(undefined1 *)*puVar31" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar31" (* "*") (identifier "puVar31")))) (; ";")) (expression_statement "*puVar27 = 0;" (assignment_expression "*puVar27 = 0" (pointer_expression "*puVar27" (* "*") (identifier "puVar27")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" (else "else") (compound_statement "{\n          uVar12 = (uint)puVar29 & 3;\n          uVar20 = (uint)(puVar31 + 3) & 3;\n          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);\n          uVar1 = (uint)(puVar32 + 2) & 3;\n          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);\n          uVar2 = (uint)(puVar32 + 3) & 3;\n          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);\n          uVar3 = (uint)(puVar32 + 4) & 3;\n          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);\n          uVar37 = puVar32[5];\n          uVar4 = (uint)(puVar31 + 4) & 3;\n          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);\n          uVar5 = (uint)(puVar31 + 5) & 3;\n          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);\n          uVar13 = (int)puVar31 + 0xbU & 3;\n          uVar14 = (int)puVar31 + 0xfU & 3;\n          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);\n          uVar15 = (int)puVar32 + 0xbU & 3;\n          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);\n          uVar16 = (int)puVar32 + 0xfU & 3;\n          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);\n          uVar17 = (int)puVar32 + 0x13U & 3;\n          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);\n          uVar18 = (int)puVar31 + 0x13U & 3;\n          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);\n          uVar19 = (int)puVar31 + 0x17U & 3;\n          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);\n          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;\n          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;\n          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;\n          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;\n          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;\n          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;\n          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;\n          puVar31[5] = uVar37;\n          puVar27 = (undefined1 *)puVar31[1];\n          puVar31[1] = puVar32[1];\n          puVar32[1] = puVar27;\n        }" ({ "{") (expression_statement "uVar12 = (uint)puVar29 & 3;" (assignment_expression "uVar12 = (uint)puVar29 & 3" (identifier "uVar12") (= "=") (binary_expression "(uint)puVar29 & 3" (cast_expression "(uint)puVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar29")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar20 = (uint)(puVar31 + 3) & 3;" (assignment_expression "uVar20 = (uint)(puVar31 + 3) & 3" (identifier "uVar20") (= "=") (binary_expression "(uint)(puVar31 + 3) & 3" (call_expression "(uint)(puVar31 + 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar31 + 3)" (( "(") (binary_expression "puVar31 + 3" (identifier "puVar31") (+ "+") (number_literal "3")) () ")"))) (& "&") (number_literal "3"))) (; ";")) (expression_statement "iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);" (assignment_expression "iVar6 = *(int *)((int)(puVar31 + 3) - uVar20)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)((int)(puVar31 + 3) - uVar20)" (* "*") (cast_expression "(int *)((int)(puVar31 + 3) - uVar20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(puVar31 + 3) - uVar20)" (( "(") (binary_expression "(int)(puVar31 + 3) - uVar20" (cast_expression "(int)(puVar31 + 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar31 + 3)" (( "(") (binary_expression "puVar31 + 3" (identifier "puVar31") (+ "+") (number_literal "3")) () ")"))) (- "-") (identifier "uVar20")) () ")"))))) (; ";")) (expression_statement "uVar1 = (uint)(puVar32 + 2) & 3;" (assignment_expression "uVar1 = (uint)(puVar32 + 2) & 3" (identifier "uVar1") (= "=") (binary_expression "(uint)(puVar32 + 2) & 3" (call_expression "(uint)(puVar32 + 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar32 + 2)" (( "(") (binary_expression "puVar32 + 2" (identifier "puVar32") (+ "+") (number_literal "2")) () ")"))) (& "&") (number_literal "3"))) (; ";")) (expression_statement "iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);" (assignment_expression "iVar7 = *(int *)((int)(puVar32 + 2) - uVar1)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)((int)(puVar32 + 2) - uVar1)" (* "*") (cast_expression "(int *)((int)(puVar32 + 2) - uVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(puVar32 + 2) - uVar1)" (( "(") (binary_expression "(int)(puVar32 + 2) - uVar1" (cast_expression "(int)(puVar32 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar32 + 2)" (( "(") (binary_expression "puVar32 + 2" (identifier "puVar32") (+ "+") (number_literal "2")) () ")"))) (- "-") (identifier "uVar1")) () ")"))))) (; ";")) (expression_statement "uVar2 = (uint)(puVar32 + 3) & 3;" (assignment_expression "uVar2 = (uint)(puVar32 + 3) & 3" (identifier "uVar2") (= "=") (binary_expression "(uint)(puVar32 + 3) & 3" (call_expression "(uint)(puVar32 + 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar32 + 3)" (( "(") (binary_expression "puVar32 + 3" (identifier "puVar32") (+ "+") (number_literal "3")) () ")"))) (& "&") (number_literal "3"))) (; ";")) (expression_statement "iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);" (assignment_expression "iVar8 = *(int *)((int)(puVar32 + 3) - uVar2)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)((int)(puVar32 + 3) - uVar2)" (* "*") (cast_expression "(int *)((int)(puVar32 + 3) - uVar2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(puVar32 + 3) - uVar2)" (( "(") (binary_expression "(int)(puVar32 + 3) - uVar2" (cast_expression "(int)(puVar32 + 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar32 + 3)" (( "(") (binary_expression "puVar32 + 3" (identifier "puVar32") (+ "+") (number_literal "3")) () ")"))) (- "-") (identifier "uVar2")) () ")"))))) (; ";")) (expression_statement "uVar3 = (uint)(puVar32 + 4) & 3;" (assignment_expression "uVar3 = (uint)(puVar32 + 4) & 3" (identifier "uVar3") (= "=") (binary_expression "(uint)(puVar32 + 4) & 3" (call_expression "(uint)(puVar32 + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar32 + 4)" (( "(") (binary_expression "puVar32 + 4" (identifier "puVar32") (+ "+") (number_literal "4")) () ")"))) (& "&") (number_literal "3"))) (; ";")) (expression_statement "iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);" (assignment_expression "iVar9 = *(int *)((int)(puVar32 + 4) - uVar3)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)((int)(puVar32 + 4) - uVar3)" (* "*") (cast_expression "(int *)((int)(puVar32 + 4) - uVar3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(puVar32 + 4) - uVar3)" (( "(") (binary_expression "(int)(puVar32 + 4) - uVar3" (cast_expression "(int)(puVar32 + 4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar32 + 4)" (( "(") (binary_expression "puVar32 + 4" (identifier "puVar32") (+ "+") (number_literal "4")) () ")"))) (- "-") (identifier "uVar3")) () ")"))))) (; ";")) (expression_statement "uVar37 = puVar32[5];" (assignment_expression "uVar37 = puVar32[5]" (identifier "uVar37") (= "=") (subscript_expression "puVar32[5]" (identifier "puVar32") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar4 = (uint)(puVar31 + 4) & 3;" (assignment_expression "uVar4 = (uint)(puVar31 + 4) & 3" (identifier "uVar4") (= "=") (binary_expression "(uint)(puVar31 + 4) & 3" (call_expression "(uint)(puVar31 + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar31 + 4)" (( "(") (binary_expression "puVar31 + 4" (identifier "puVar31") (+ "+") (number_literal "4")) () ")"))) (& "&") (number_literal "3"))) (; ";")) (expression_statement "iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);" (assignment_expression "iVar10 = *(int *)((int)(puVar31 + 4) - uVar4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)((int)(puVar31 + 4) - uVar4)" (* "*") (cast_expression "(int *)((int)(puVar31 + 4) - uVar4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(puVar31 + 4) - uVar4)" (( "(") (binary_expression "(int)(puVar31 + 4) - uVar4" (cast_expression "(int)(puVar31 + 4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar31 + 4)" (( "(") (binary_expression "puVar31 + 4" (identifier "puVar31") (+ "+") (number_literal "4")) () ")"))) (- "-") (identifier "uVar4")) () ")"))))) (; ";")) (expression_statement "uVar5 = (uint)(puVar31 + 5) & 3;" (assignment_expression "uVar5 = (uint)(puVar31 + 5) & 3" (identifier "uVar5") (= "=") (binary_expression "(uint)(puVar31 + 5) & 3" (call_expression "(uint)(puVar31 + 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar31 + 5)" (( "(") (binary_expression "puVar31 + 5" (identifier "puVar31") (+ "+") (number_literal "5")) () ")"))) (& "&") (number_literal "3"))) (; ";")) (expression_statement "iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);" (assignment_expression "iVar11 = *(int *)((int)(puVar31 + 5) - uVar5)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)((int)(puVar31 + 5) - uVar5)" (* "*") (cast_expression "(int *)((int)(puVar31 + 5) - uVar5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(puVar31 + 5) - uVar5)" (( "(") (binary_expression "(int)(puVar31 + 5) - uVar5" (cast_expression "(int)(puVar31 + 5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar31 + 5)" (( "(") (binary_expression "puVar31 + 5" (identifier "puVar31") (+ "+") (number_literal "5")) () ")"))) (- "-") (identifier "uVar5")) () ")"))))) (; ";")) (expression_statement "uVar13 = (int)puVar31 + 0xbU & 3;" (assignment_expression "uVar13 = (int)puVar31 + 0xbU & 3" (identifier "uVar13") (= "=") (binary_expression "(int)puVar31 + 0xbU & 3" (binary_expression "(int)puVar31 + 0xbU" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (number_literal "0xbU")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar14 = (int)puVar31 + 0xfU & 3;" (assignment_expression "uVar14 = (int)puVar31 + 0xfU & 3" (identifier "uVar14") (= "=") (binary_expression "(int)puVar31 + 0xfU & 3" (binary_expression "(int)puVar31 + 0xfU" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (number_literal "0xfU")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);" (assignment_expression "uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14)" (identifier "uVar21") (= "=") (pointer_expression "*(uint *)(((int)puVar31 + 0xfU) - uVar14)" (* "*") (cast_expression "(uint *)(((int)puVar31 + 0xfU) - uVar14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)puVar31 + 0xfU) - uVar14)" (( "(") (binary_expression "((int)puVar31 + 0xfU) - uVar14" (parenthesized_expression "((int)puVar31 + 0xfU)" (( "(") (binary_expression "(int)puVar31 + 0xfU" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (number_literal "0xfU")) () ")")) (- "-") (identifier "uVar14")) () ")"))))) (; ";")) (expression_statement "uVar15 = (int)puVar32 + 0xbU & 3;" (assignment_expression "uVar15 = (int)puVar32 + 0xbU & 3" (identifier "uVar15") (= "=") (binary_expression "(int)puVar32 + 0xbU & 3" (binary_expression "(int)puVar32 + 0xbU" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0xbU")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);" (assignment_expression "uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15)" (identifier "uVar22") (= "=") (pointer_expression "*(uint *)(((int)puVar32 + 0xbU) - uVar15)" (* "*") (cast_expression "(uint *)(((int)puVar32 + 0xbU) - uVar15)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)puVar32 + 0xbU) - uVar15)" (( "(") (binary_expression "((int)puVar32 + 0xbU) - uVar15" (parenthesized_expression "((int)puVar32 + 0xbU)" (( "(") (binary_expression "(int)puVar32 + 0xbU" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0xbU")) () ")")) (- "-") (identifier "uVar15")) () ")"))))) (; ";")) (expression_statement "uVar16 = (int)puVar32 + 0xfU & 3;" (assignment_expression "uVar16 = (int)puVar32 + 0xfU & 3" (identifier "uVar16") (= "=") (binary_expression "(int)puVar32 + 0xfU & 3" (binary_expression "(int)puVar32 + 0xfU" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0xfU")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);" (assignment_expression "uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16)" (identifier "uVar23") (= "=") (pointer_expression "*(uint *)(((int)puVar32 + 0xfU) - uVar16)" (* "*") (cast_expression "(uint *)(((int)puVar32 + 0xfU) - uVar16)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)puVar32 + 0xfU) - uVar16)" (( "(") (binary_expression "((int)puVar32 + 0xfU) - uVar16" (parenthesized_expression "((int)puVar32 + 0xfU)" (( "(") (binary_expression "(int)puVar32 + 0xfU" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0xfU")) () ")")) (- "-") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "uVar17 = (int)puVar32 + 0x13U & 3;" (assignment_expression "uVar17 = (int)puVar32 + 0x13U & 3" (identifier "uVar17") (= "=") (binary_expression "(int)puVar32 + 0x13U & 3" (binary_expression "(int)puVar32 + 0x13U" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x13U")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);" (assignment_expression "uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17)" (identifier "uVar24") (= "=") (pointer_expression "*(uint *)(((int)puVar32 + 0x13U) - uVar17)" (* "*") (cast_expression "(uint *)(((int)puVar32 + 0x13U) - uVar17)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)puVar32 + 0x13U) - uVar17)" (( "(") (binary_expression "((int)puVar32 + 0x13U) - uVar17" (parenthesized_expression "((int)puVar32 + 0x13U)" (( "(") (binary_expression "(int)puVar32 + 0x13U" (cast_expression "(int)puVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar32")) (+ "+") (number_literal "0x13U")) () ")")) (- "-") (identifier "uVar17")) () ")"))))) (; ";")) (expression_statement "uVar18 = (int)puVar31 + 0x13U & 3;" (assignment_expression "uVar18 = (int)puVar31 + 0x13U & 3" (identifier "uVar18") (= "=") (binary_expression "(int)puVar31 + 0x13U & 3" (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (number_literal "0x13U")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);" (assignment_expression "uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18)" (identifier "uVar25") (= "=") (pointer_expression "*(uint *)(((int)puVar31 + 0x13U) - uVar18)" (* "*") (cast_expression "(uint *)(((int)puVar31 + 0x13U) - uVar18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)puVar31 + 0x13U) - uVar18)" (( "(") (binary_expression "((int)puVar31 + 0x13U) - uVar18" (parenthesized_expression "((int)puVar31 + 0x13U)" (( "(") (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (number_literal "0x13U")) () ")")) (- "-") (identifier "uVar18")) () ")"))))) (; ";")) (expression_statement "uVar19 = (int)puVar31 + 0x17U & 3;" (assignment_expression "uVar19 = (int)puVar31 + 0x17U & 3" (identifier "uVar19") (= "=") (binary_expression "(int)puVar31 + 0x17U & 3" (binary_expression "(int)puVar31 + 0x17U" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (number_literal "0x17U")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);" (assignment_expression "uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19)" (identifier "uVar26") (= "=") (pointer_expression "*(uint *)(((int)puVar31 + 0x17U) - uVar19)" (* "*") (cast_expression "(uint *)(((int)puVar31 + 0x17U) - uVar19)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)puVar31 + 0x17U) - uVar19)" (( "(") (binary_expression "((int)puVar31 + 0x17U) - uVar19" (parenthesized_expression "((int)puVar31 + 0x17U)" (( "(") (binary_expression "(int)puVar31 + 0x17U" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (number_literal "0x17U")) () ")")) (- "-") (identifier "uVar19")) () ")"))))) (; ";")) (expression_statement "*puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;" (assignment_expression "*puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8" (pointer_expression "*puVar28" (* "*") (identifier "puVar28")) (= "=") (binary_expression "(*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |\n                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8" (binary_expression "(*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8" (parenthesized_expression "(*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8)" (( "(") (binary_expression "*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |\n                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8" (binary_expression "*(int *)((int)puVar29 - uVar12) << uVar12 * 8" (pointer_expression "*(int *)((int)puVar29 - uVar12)" (* "*") (cast_expression "(int *)((int)puVar29 - uVar12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar29 - uVar12)" (( "(") (binary_expression "(int)puVar29 - uVar12" (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29")) (- "-") (identifier "uVar12")) () ")")))) (<< "<<") (binary_expression "uVar12 * 8" (identifier "uVar12") (* "*") (number_literal "8"))) (| "|") (binary_expression "in_t5 & 0xffffffffU >> (4 - uVar12) * 8" (identifier "in_t5") (& "&") (binary_expression "0xffffffffU >> (4 - uVar12) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar12) * 8" (parenthesized_expression "(4 - uVar12)" (( "(") (binary_expression "4 - uVar12" (number_literal "4") (- "-") (identifier "uVar12")) () ")")) (* "*") (number_literal "8"))))) () ")")) (& "&") (binary_expression "-1 << (uVar13 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar13 + 1) * 8" (parenthesized_expression "(uVar13 + 1)" (( "(") (binary_expression "uVar13 + 1" (identifier "uVar13") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "*(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8" (pointer_expression "*(uint *)(((int)puVar31 + 0xbU) - uVar13)" (* "*") (cast_expression "(uint *)(((int)puVar31 + 0xbU) - uVar13)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)puVar31 + 0xbU) - uVar13)" (( "(") (binary_expression "((int)puVar31 + 0xbU) - uVar13" (parenthesized_expression "((int)puVar31 + 0xbU)" (( "(") (binary_expression "(int)puVar31 + 0xbU" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (number_literal "0xbU")) () ")")) (- "-") (identifier "uVar13")) () ")")))) (>> ">>") (binary_expression "(3 - uVar13) * 8" (parenthesized_expression "(3 - uVar13)" (( "(") (binary_expression "3 - uVar13" (number_literal "3") (- "-") (identifier "uVar13")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;" (assignment_expression "puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8" (subscript_expression "puVar32[3]" (identifier "puVar32") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8" (binary_expression "(iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &\n                       -1 << (uVar14 + 1) * 8" (parenthesized_expression "(iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8)" (( "(") (binary_expression "iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8" (binary_expression "iVar6 << uVar20 * 8" (identifier "iVar6") (<< "<<") (binary_expression "uVar20 * 8" (identifier "uVar20") (* "*") (number_literal "8"))) (| "|") (binary_expression "in_t4 & 0xffffffffU >> (4 - uVar20) * 8" (identifier "in_t4") (& "&") (binary_expression "0xffffffffU >> (4 - uVar20) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar20) * 8" (parenthesized_expression "(4 - uVar20)" (( "(") (binary_expression "4 - uVar20" (number_literal "4") (- "-") (identifier "uVar20")) () ")")) (* "*") (number_literal "8"))))) () ")")) (& "&") (binary_expression "-1 << (uVar14 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar14 + 1) * 8" (parenthesized_expression "(uVar14 + 1)" (( "(") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "uVar21 >> (3 - uVar14) * 8" (identifier "uVar21") (>> ">>") (binary_expression "(3 - uVar14) * 8" (parenthesized_expression "(3 - uVar14)" (( "(") (binary_expression "3 - uVar14" (number_literal "3") (- "-") (identifier "uVar14")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;" (assignment_expression "puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8" (subscript_expression "puVar32[4]" (identifier "puVar32") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "(iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8" (binary_expression "(iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &\n                       -1 << (uVar18 + 1) * 8" (parenthesized_expression "(iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8)" (( "(") (binary_expression "iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8" (binary_expression "iVar10 << uVar4 * 8" (identifier "iVar10") (<< "<<") (binary_expression "uVar4 * 8" (identifier "uVar4") (* "*") (number_literal "8"))) (| "|") (binary_expression "in_t3 & 0xffffffffU >> (4 - uVar4) * 8" (identifier "in_t3") (& "&") (binary_expression "0xffffffffU >> (4 - uVar4) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar4) * 8" (parenthesized_expression "(4 - uVar4)" (( "(") (binary_expression "4 - uVar4" (number_literal "4") (- "-") (identifier "uVar4")) () ")")) (* "*") (number_literal "8"))))) () ")")) (& "&") (binary_expression "-1 << (uVar18 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar18 + 1) * 8" (parenthesized_expression "(uVar18 + 1)" (( "(") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "uVar25 >> (3 - uVar18) * 8" (identifier "uVar25") (>> ">>") (binary_expression "(3 - uVar18) * 8" (parenthesized_expression "(3 - uVar18)" (( "(") (binary_expression "3 - uVar18" (number_literal "3") (- "-") (identifier "uVar18")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;" (assignment_expression "puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8" (subscript_expression "puVar32[5]" (identifier "puVar32") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "(iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8" (binary_expression "(iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &\n                       -1 << (uVar19 + 1) * 8" (parenthesized_expression "(iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8)" (( "(") (binary_expression "iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8" (binary_expression "iVar11 << uVar5 * 8" (identifier "iVar11") (<< "<<") (binary_expression "uVar5 * 8" (identifier "uVar5") (* "*") (number_literal "8"))) (| "|") (binary_expression "in_t2 & 0xffffffffU >> (4 - uVar5) * 8" (identifier "in_t2") (& "&") (binary_expression "0xffffffffU >> (4 - uVar5) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar5) * 8" (parenthesized_expression "(4 - uVar5)" (( "(") (binary_expression "4 - uVar5" (number_literal "4") (- "-") (identifier "uVar5")) () ")")) (* "*") (number_literal "8"))))) () ")")) (& "&") (binary_expression "-1 << (uVar19 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar19 + 1) * 8" (parenthesized_expression "(uVar19 + 1)" (( "(") (binary_expression "uVar19 + 1" (identifier "uVar19") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "uVar26 >> (3 - uVar19) * 8" (identifier "uVar26") (>> ">>") (binary_expression "(3 - uVar19) * 8" (parenthesized_expression "(3 - uVar19)" (( "(") (binary_expression "3 - uVar19" (number_literal "3") (- "-") (identifier "uVar19")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;" (assignment_expression "puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8" (subscript_expression "puVar31[2]" (identifier "puVar31") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8" (binary_expression "(iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &\n                       -1 << (uVar15 + 1) * 8" (parenthesized_expression "(iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8)" (( "(") (binary_expression "iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8" (binary_expression "iVar7 << uVar1 * 8" (identifier "iVar7") (<< "<<") (binary_expression "uVar1 * 8" (identifier "uVar1") (* "*") (number_literal "8"))) (| "|") (binary_expression "in_t1 & 0xffffffffU >> (4 - uVar1) * 8" (identifier "in_t1") (& "&") (binary_expression "0xffffffffU >> (4 - uVar1) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar1) * 8" (parenthesized_expression "(4 - uVar1)" (( "(") (binary_expression "4 - uVar1" (number_literal "4") (- "-") (identifier "uVar1")) () ")")) (* "*") (number_literal "8"))))) () ")")) (& "&") (binary_expression "-1 << (uVar15 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar15 + 1) * 8" (parenthesized_expression "(uVar15 + 1)" (( "(") (binary_expression "uVar15 + 1" (identifier "uVar15") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "uVar22 >> (3 - uVar15) * 8" (identifier "uVar22") (>> ">>") (binary_expression "(3 - uVar15) * 8" (parenthesized_expression "(3 - uVar15)" (( "(") (binary_expression "3 - uVar15" (number_literal "3") (- "-") (identifier "uVar15")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;" (assignment_expression "puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8" (subscript_expression "puVar31[3]" (identifier "puVar31") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8" (binary_expression "(iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &\n                       -1 << (uVar16 + 1) * 8" (parenthesized_expression "(iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8)" (( "(") (binary_expression "iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8" (binary_expression "iVar8 << uVar2 * 8" (identifier "iVar8") (<< "<<") (binary_expression "uVar2 * 8" (identifier "uVar2") (* "*") (number_literal "8"))) (| "|") (binary_expression "in_t0 & 0xffffffffU >> (4 - uVar2) * 8" (identifier "in_t0") (& "&") (binary_expression "0xffffffffU >> (4 - uVar2) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar2) * 8" (parenthesized_expression "(4 - uVar2)" (( "(") (binary_expression "4 - uVar2" (number_literal "4") (- "-") (identifier "uVar2")) () ")")) (* "*") (number_literal "8"))))) () ")")) (& "&") (binary_expression "-1 << (uVar16 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar16 + 1) * 8" (parenthesized_expression "(uVar16 + 1)" (( "(") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "uVar23 >> (3 - uVar16) * 8" (identifier "uVar23") (>> ">>") (binary_expression "(3 - uVar16) * 8" (parenthesized_expression "(3 - uVar16)" (( "(") (binary_expression "3 - uVar16" (number_literal "3") (- "-") (identifier "uVar16")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;" (assignment_expression "puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8" (subscript_expression "puVar31[4]" (identifier "puVar31") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "(iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8" (binary_expression "(iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &\n                       -1 << (uVar17 + 1) * 8" (parenthesized_expression "(iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8)" (( "(") (binary_expression "iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8" (binary_expression "iVar9 << uVar3 * 8" (identifier "iVar9") (<< "<<") (binary_expression "uVar3 * 8" (identifier "uVar3") (* "*") (number_literal "8"))) (| "|") (binary_expression "uVar35 & 0xffffffffU >> (4 - uVar3) * 8" (identifier "uVar35") (& "&") (binary_expression "0xffffffffU >> (4 - uVar3) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar3) * 8" (parenthesized_expression "(4 - uVar3)" (( "(") (binary_expression "4 - uVar3" (number_literal "4") (- "-") (identifier "uVar3")) () ")")) (* "*") (number_literal "8"))))) () ")")) (& "&") (binary_expression "-1 << (uVar17 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar17 + 1) * 8" (parenthesized_expression "(uVar17 + 1)" (( "(") (binary_expression "uVar17 + 1" (identifier "uVar17") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "uVar24 >> (3 - uVar17) * 8" (identifier "uVar24") (>> ">>") (binary_expression "(3 - uVar17) * 8" (parenthesized_expression "(3 - uVar17)" (( "(") (binary_expression "3 - uVar17" (number_literal "3") (- "-") (identifier "uVar17")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar31[5] = uVar37;" (assignment_expression "puVar31[5] = uVar37" (subscript_expression "puVar31[5]" (identifier "puVar31") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar37")) (; ";")) (expression_statement "puVar27 = (undefined1 *)puVar31[1];" (assignment_expression "puVar27 = (undefined1 *)puVar31[1]" (identifier "puVar27") (= "=") (cast_expression "(undefined1 *)puVar31[1]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar31[1]" (identifier "puVar31") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" (identifier "puVar31") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar32[1] = puVar27;" (assignment_expression "puVar32[1] = puVar27" (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar27")) (; ";")) (} "}")))))) (} "}")) (else_clause "else {\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }" (else "else") (compound_statement "{\n        uVar34 = puVar31[3];\n        uVar35 = (uint)(puVar31 + 4) & 3;\n        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);\n        uVar37 = puVar31[5];\n        uVar38 = puVar32[2];\n        uVar12 = (int)puVar31 + 0x13U & 3;\n        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);\n        *puVar28 = *puVar29;\n        puVar32[3] = uVar34;\n        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;\n        puVar32[5] = uVar37;\n        *puVar31 = puVar33;\n        *puVar32 = puVar28;\n        puVar31[2] = uVar38;\n        puVar27 = (undefined1 *)puVar31[1];\n        puVar31[1] = puVar32[1];\n        puVar32[1] = puVar27;\n      }" ({ "{") (expression_statement "uVar34 = puVar31[3];" (assignment_expression "uVar34 = puVar31[3]" (identifier "uVar34") (= "=") (subscript_expression "puVar31[3]" (identifier "puVar31") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar35 = (uint)(puVar31 + 4) & 3;" (assignment_expression "uVar35 = (uint)(puVar31 + 4) & 3" (identifier "uVar35") (= "=") (binary_expression "(uint)(puVar31 + 4) & 3" (call_expression "(uint)(puVar31 + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar31 + 4)" (( "(") (binary_expression "puVar31 + 4" (identifier "puVar31") (+ "+") (number_literal "4")) () ")"))) (& "&") (number_literal "3"))) (; ";")) (expression_statement "iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);" (assignment_expression "iVar6 = *(int *)((int)(puVar31 + 4) - uVar35)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)((int)(puVar31 + 4) - uVar35)" (* "*") (cast_expression "(int *)((int)(puVar31 + 4) - uVar35)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(puVar31 + 4) - uVar35)" (( "(") (binary_expression "(int)(puVar31 + 4) - uVar35" (cast_expression "(int)(puVar31 + 4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar31 + 4)" (( "(") (binary_expression "puVar31 + 4" (identifier "puVar31") (+ "+") (number_literal "4")) () ")"))) (- "-") (identifier "uVar35")) () ")"))))) (; ";")) (expression_statement "uVar37 = puVar31[5];" (assignment_expression "uVar37 = puVar31[5]" (identifier "uVar37") (= "=") (subscript_expression "puVar31[5]" (identifier "puVar31") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar38 = puVar32[2];" (assignment_expression "uVar38 = puVar32[2]" (identifier "uVar38") (= "=") (subscript_expression "puVar32[2]" (identifier "puVar32") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar12 = (int)puVar31 + 0x13U & 3;" (assignment_expression "uVar12 = (int)puVar31 + 0x13U & 3" (identifier "uVar12") (= "=") (binary_expression "(int)puVar31 + 0x13U & 3" (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (number_literal "0x13U")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);" (assignment_expression "uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12)" (identifier "uVar20") (= "=") (pointer_expression "*(uint *)(((int)puVar31 + 0x13U) - uVar12)" (* "*") (cast_expression "(uint *)(((int)puVar31 + 0x13U) - uVar12)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)puVar31 + 0x13U) - uVar12)" (( "(") (binary_expression "((int)puVar31 + 0x13U) - uVar12" (parenthesized_expression "((int)puVar31 + 0x13U)" (( "(") (binary_expression "(int)puVar31 + 0x13U" (cast_expression "(int)puVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar31")) (+ "+") (number_literal "0x13U")) () ")")) (- "-") (identifier "uVar12")) () ")"))))) (; ";")) (expression_statement "*puVar28 = *puVar29;" (assignment_expression "*puVar28 = *puVar29" (pointer_expression "*puVar28" (* "*") (identifier "puVar28")) (= "=") (pointer_expression "*puVar29" (* "*") (identifier "puVar29"))) (; ";")) (expression_statement "puVar32[3] = uVar34;" (assignment_expression "puVar32[3] = uVar34" (subscript_expression "puVar32[3]" (identifier "puVar32") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar34")) (; ";")) (expression_statement "puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;" (assignment_expression "puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8" (subscript_expression "puVar32[4]" (identifier "puVar32") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "(iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8" (binary_expression "(iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &\n                     -1 << (uVar12 + 1) * 8" (parenthesized_expression "(iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8)" (( "(") (binary_expression "iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8" (binary_expression "iVar6 << uVar35 * 8" (identifier "iVar6") (<< "<<") (binary_expression "uVar35 * 8" (identifier "uVar35") (* "*") (number_literal "8"))) (| "|") (binary_expression "in_t0 & 0xffffffffU >> (4 - uVar35) * 8" (identifier "in_t0") (& "&") (binary_expression "0xffffffffU >> (4 - uVar35) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar35) * 8" (parenthesized_expression "(4 - uVar35)" (( "(") (binary_expression "4 - uVar35" (number_literal "4") (- "-") (identifier "uVar35")) () ")")) (* "*") (number_literal "8"))))) () ")")) (& "&") (binary_expression "-1 << (uVar12 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar12 + 1) * 8" (parenthesized_expression "(uVar12 + 1)" (( "(") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "uVar20 >> (3 - uVar12) * 8" (identifier "uVar20") (>> ">>") (binary_expression "(3 - uVar12) * 8" (parenthesized_expression "(3 - uVar12)" (( "(") (binary_expression "3 - uVar12" (number_literal "3") (- "-") (identifier "uVar12")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar32[5] = uVar37;" (assignment_expression "puVar32[5] = uVar37" (subscript_expression "puVar32[5]" (identifier "puVar32") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar37")) (; ";")) (expression_statement "*puVar31 = puVar33;" (assignment_expression "*puVar31 = puVar33" (pointer_expression "*puVar31" (* "*") (identifier "puVar31")) (= "=") (identifier "puVar33")) (; ";")) (expression_statement "*puVar32 = puVar28;" (assignment_expression "*puVar32 = puVar28" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (= "=") (identifier "puVar28")) (; ";")) (expression_statement "puVar31[2] = uVar38;" (assignment_expression "puVar31[2] = uVar38" (subscript_expression "puVar31[2]" (identifier "puVar31") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar38")) (; ";")) (expression_statement "puVar27 = (undefined1 *)puVar31[1];" (assignment_expression "puVar27 = (undefined1 *)puVar31[1]" (identifier "puVar27") (= "=") (cast_expression "(undefined1 *)puVar31[1]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar31[1]" (identifier "puVar31") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" (identifier "puVar31") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar32[1] = puVar27;" (assignment_expression "puVar32[1] = puVar27" (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar27")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }" (else "else") (compound_statement "{\n      uVar37 = puVar31[2];\n      if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }\n      puVar32[2] = uVar37;\n      puVar27 = (undefined1 *)puVar31[1];\n      puVar31[1] = puVar32[1];\n      puVar32[1] = puVar27;\n    }" ({ "{") (expression_statement "uVar37 = puVar31[2];" (assignment_expression "uVar37 = puVar31[2]" (identifier "uVar37") (= "=") (subscript_expression "puVar31[2]" (identifier "puVar31") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (puVar28 == puVar33) {\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }\n      else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }" (if "if") (parenthesized_expression "(puVar28 == puVar33)" (( "(") (binary_expression "puVar28 == puVar33" (identifier "puVar28") (== "==") (identifier "puVar33")) () ")")) (compound_statement "{\n        uVar39 = puVar32[3];\n        uVar38 = puVar32[4];\n        uVar34 = puVar32[5];\n        *puVar29 = *puVar28;\n        puVar31[3] = uVar39;\n        puVar31[4] = uVar38;\n        puVar31[5] = uVar34;\n        *puVar32 = puVar36;\n        *puVar31 = puVar29;\n      }" ({ "{") (expression_statement "uVar39 = puVar32[3];" (assignment_expression "uVar39 = puVar32[3]" (identifier "uVar39") (= "=") (subscript_expression "puVar32[3]" (identifier "puVar32") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar38 = puVar32[4];" (assignment_expression "uVar38 = puVar32[4]" (identifier "uVar38") (= "=") (subscript_expression "puVar32[4]" (identifier "puVar32") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar34 = puVar32[5];" (assignment_expression "uVar34 = puVar32[5]" (identifier "uVar34") (= "=") (subscript_expression "puVar32[5]" (identifier "puVar32") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "*puVar29 = *puVar28;" (assignment_expression "*puVar29 = *puVar28" (pointer_expression "*puVar29" (* "*") (identifier "puVar29")) (= "=") (pointer_expression "*puVar28" (* "*") (identifier "puVar28"))) (; ";")) (expression_statement "puVar31[3] = uVar39;" (assignment_expression "puVar31[3] = uVar39" (subscript_expression "puVar31[3]" (identifier "puVar31") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar39")) (; ";")) (expression_statement "puVar31[4] = uVar38;" (assignment_expression "puVar31[4] = uVar38" (subscript_expression "puVar31[4]" (identifier "puVar31") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar38")) (; ";")) (expression_statement "puVar31[5] = uVar34;" (assignment_expression "puVar31[5] = uVar34" (subscript_expression "puVar31[5]" (identifier "puVar31") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar34")) (; ";")) (expression_statement "*puVar32 = puVar36;" (assignment_expression "*puVar32 = puVar36" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (= "=") (identifier "puVar36")) (; ";")) (expression_statement "*puVar31 = puVar29;" (assignment_expression "*puVar31 = puVar29" (pointer_expression "*puVar31" (* "*") (identifier "puVar31")) (= "=") (identifier "puVar29")) (; ";")) (} "}")) (else_clause "else {\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }" (else "else") (compound_statement "{\n        *puVar31 = puVar33;\n        *puVar32 = puVar36;\n        puVar31[2] = puVar32[2];\n      }" ({ "{") (expression_statement "*puVar31 = puVar33;" (assignment_expression "*puVar31 = puVar33" (pointer_expression "*puVar31" (* "*") (identifier "puVar31")) (= "=") (identifier "puVar33")) (; ";")) (expression_statement "*puVar32 = puVar36;" (assignment_expression "*puVar32 = puVar36" (pointer_expression "*puVar32" (* "*") (identifier "puVar32")) (= "=") (identifier "puVar36")) (; ";")) (expression_statement "puVar31[2] = puVar32[2];" (assignment_expression "puVar31[2] = puVar32[2]" (subscript_expression "puVar31[2]" (identifier "puVar31") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar32[2]" (identifier "puVar32") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")))) (expression_statement "puVar32[2] = uVar37;" (assignment_expression "puVar32[2] = uVar37" (subscript_expression "puVar32[2]" (identifier "puVar32") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar37")) (; ";")) (expression_statement "puVar27 = (undefined1 *)puVar31[1];" (assignment_expression "puVar27 = (undefined1 *)puVar31[1]" (identifier "puVar27") (= "=") (cast_expression "(undefined1 *)puVar31[1]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar31[1]" (identifier "puVar31") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar31[1] = puVar32[1];" (assignment_expression "puVar31[1] = puVar32[1]" (subscript_expression "puVar31[1]" (identifier "puVar31") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar32[1] = puVar27;" (assignment_expression "puVar32[1] = puVar27" (subscript_expression "puVar32[1]" (identifier "puVar32") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar27")) (; ";")) (} "}")))) (} "}"))) (return_statement "return puVar27;" (return "return") (identifier "puVar27") (; ";")) (} "}")))

/* std::string::append(std::initializer_list<char>) */

type_2 * std::string::append(string *var_2,char *param_2,type_2 *var_1,type_1 var_5)

{
  type_1 var_15;
  type_1 var_16;
  type_1 var_17;
  type_1 var_18;
  type_1 var_19;
  int var_29;
  int var_38;
  int var_41;
  int var_44;
  int var_32;
  int var_35;
  type_1 var_26;
  type_1 var_28;
  type_1 var_20;
  type_1 var_21;
  type_1 var_22;
  type_1 var_23;
  type_1 var_24;
  type_1 var_25;
  type_1 var_14;
  type_1 var_31;
  type_1 var_40;
  type_1 var_43;
  type_1 var_45;
  type_1 var_34;
  type_1 var_37;
  type_2 *puVar27;
  type_1 *var_12;
  type_1 *var_10;
  int *piVar30;
  type_3 *var_8;
  type_3 *var_9;
  type_1 *var_13;
  type_3 uVar34;
  type_1 var_6;
  type_1 *var_11;
  type_1 var_42;
  type_3 uVar37;
  type_1 var_39;
  type_3 uVar38;
  type_1 var_36;
  type_3 uVar39;
  type_1 var_33;
  type_1 var_30;
  type_1 var_27;
  type_4 *var_7;
  
  if (var_1 <= (type_2 *)(0x7fffffffU - *(int *)(var_2 + 4))) {
    puVar27 = (type_2 *)var_3(var_2,param_2,(type_1)var_1);
    return puVar27;
  }
  piVar30 = (int *)(var_4 + -0x6240);
  var_7 = PTR___throw_length_error_00432480;
  (*(type_5 *)PTR___throw_length_error_00432480)();
  var_6 = piVar30[1];
  if (var_5 <= var_6) {
    if ((type_2 *)(var_6 - var_5) <= var_1) {
      var_1 = (type_2 *)(var_6 - var_5);
    }
    if (var_1 != (type_2 *)0x0) {
      if (var_1 == (type_2 *)0x1) {
        *param_2 = *(char *)(*piVar30 + var_5);
        return (type_2 *)0x1;
      }
      (**(type_5 **)(var_7 + 0x1747e0))(param_2);
    }
    return var_1;
  }
  var_9 = (type_3 *)(*(int *)(var_7 + 0x1702c4) + 0x733c);
  var_8 = (type_3 *)(*(int *)(var_7 + 0x17040c) + -0x25a4);
  puVar27 = (type_2 *)
            (**(type_5 **)(var_7 + 0x171040))(var_8,var_9,var_5,var_6,var_7 + 0x178228);
  if (var_8 != var_9) {
    var_11 = (type_1 *)*var_8;
    var_10 = var_8 + 2;
    var_13 = (type_1 *)*var_9;
    var_12 = var_9 + 2;
    if (var_10 == var_11) {
      if (var_12 == var_13) {
        var_6 = var_8[1];
        if (var_6 == 0) {
          if (var_9[1] == 0) {
            puVar27 = (type_2 *)0x0;
            var_8[1] = 0;
            var_9[1] = 0;
          }
          else {
            uVar38 = var_9[3];
            uVar34 = var_9[4];
            uVar37 = var_9[5];
            *var_10 = *var_12;
            var_8[3] = uVar38;
            var_8[4] = uVar34;
            var_8[5] = uVar37;
            var_8[1] = var_9[1];
            var_9[1] = 0;
            puVar27 = (type_2 *)*var_9;
            *puVar27 = 0;
          }
        }
        else if (var_9[1] == 0) {
          uVar38 = var_8[3];
          uVar34 = var_8[4];
          uVar37 = var_8[5];
          *var_12 = *var_10;
          var_9[3] = uVar38;
          var_9[4] = uVar34;
          var_9[5] = uVar37;
          var_9[1] = var_8[1];
          var_8[1] = 0;
          puVar27 = (type_2 *)*var_8;
          *puVar27 = 0;
        }
        else {
          var_26 = (type_1)var_10 & 3;
          var_14 = (type_1)(var_8 + 3) & 3;
          var_29 = *(int *)((int)(var_8 + 3) - var_14);
          var_15 = (type_1)(var_9 + 2) & 3;
          var_38 = *(int *)((int)(var_9 + 2) - var_15);
          var_16 = (type_1)(var_9 + 3) & 3;
          var_41 = *(int *)((int)(var_9 + 3) - var_16);
          var_17 = (type_1)(var_9 + 4) & 3;
          var_44 = *(int *)((int)(var_9 + 4) - var_17);
          uVar37 = var_9[5];
          var_18 = (type_1)(var_8 + 4) & 3;
          var_32 = *(int *)((int)(var_8 + 4) - var_18);
          var_19 = (type_1)(var_8 + 5) & 3;
          var_35 = *(int *)((int)(var_8 + 5) - var_19);
          var_28 = (int)var_8 + 0xbU & 3;
          var_20 = (int)var_8 + 0xfU & 3;
          var_31 = *(type_1 *)(((int)var_8 + 0xfU) - var_20);
          var_21 = (int)var_9 + 0xbU & 3;
          var_40 = *(type_1 *)(((int)var_9 + 0xbU) - var_21);
          var_22 = (int)var_9 + 0xfU & 3;
          var_43 = *(type_1 *)(((int)var_9 + 0xfU) - var_22);
          var_23 = (int)var_9 + 0x13U & 3;
          var_45 = *(type_1 *)(((int)var_9 + 0x13U) - var_23);
          var_24 = (int)var_8 + 0x13U & 3;
          var_34 = *(type_1 *)(((int)var_8 + 0x13U) - var_24);
          var_25 = (int)var_8 + 0x17U & 3;
          var_37 = *(type_1 *)(((int)var_8 + 0x17U) - var_25);
          *var_12 = (*(int *)((int)var_10 - var_26) << var_26 * 8 |
                     var_27 & 0xffffffffU >> (4 - var_26) * 8) & -1 << (var_28 + 1) * 8 |
                     *(type_1 *)(((int)var_8 + 0xbU) - var_28) >> (3 - var_28) * 8;
          var_9[3] = (var_29 << var_14 * 8 | var_30 & 0xffffffffU >> (4 - var_14) * 8) &
                       -1 << (var_20 + 1) * 8 | var_31 >> (3 - var_20) * 8;
          var_9[4] = (var_32 << var_18 * 8 | var_33 & 0xffffffffU >> (4 - var_18) * 8) &
                       -1 << (var_24 + 1) * 8 | var_34 >> (3 - var_24) * 8;
          var_9[5] = (var_35 << var_19 * 8 | var_36 & 0xffffffffU >> (4 - var_19) * 8) &
                       -1 << (var_25 + 1) * 8 | var_37 >> (3 - var_25) * 8;
          var_8[2] = (var_38 << var_15 * 8 | var_39 & 0xffffffffU >> (4 - var_15) * 8) &
                       -1 << (var_21 + 1) * 8 | var_40 >> (3 - var_21) * 8;
          var_8[3] = (var_41 << var_16 * 8 | var_42 & 0xffffffffU >> (4 - var_16) * 8) &
                       -1 << (var_22 + 1) * 8 | var_43 >> (3 - var_22) * 8;
          var_8[4] = (var_44 << var_17 * 8 | var_6 & 0xffffffffU >> (4 - var_17) * 8) &
                       -1 << (var_23 + 1) * 8 | var_45 >> (3 - var_23) * 8;
          var_8[5] = uVar37;
          puVar27 = (type_2 *)var_8[1];
          var_8[1] = var_9[1];
          var_9[1] = puVar27;
        }
      }
      else {
        uVar34 = var_8[3];
        var_6 = (type_1)(var_8 + 4) & 3;
        var_29 = *(int *)((int)(var_8 + 4) - var_6);
        uVar37 = var_8[5];
        uVar38 = var_9[2];
        var_26 = (int)var_8 + 0x13U & 3;
        var_14 = *(type_1 *)(((int)var_8 + 0x13U) - var_26);
        *var_12 = *var_10;
        var_9[3] = uVar34;
        var_9[4] = (var_29 << var_6 * 8 | var_42 & 0xffffffffU >> (4 - var_6) * 8) &
                     -1 << (var_26 + 1) * 8 | var_14 >> (3 - var_26) * 8;
        var_9[5] = uVar37;
        *var_8 = var_13;
        *var_9 = var_12;
        var_8[2] = uVar38;
        puVar27 = (type_2 *)var_8[1];
        var_8[1] = var_9[1];
        var_9[1] = puVar27;
      }
    }
    else {
      uVar37 = var_8[2];
      if (var_12 == var_13) {
        uVar39 = var_9[3];
        uVar38 = var_9[4];
        uVar34 = var_9[5];
        *var_10 = *var_12;
        var_8[3] = uVar39;
        var_8[4] = uVar38;
        var_8[5] = uVar34;
        *var_9 = var_11;
        *var_8 = var_10;
      }
      else {
        *var_8 = var_13;
        *var_9 = var_11;
        var_8[2] = var_9[2];
      }
      var_9[2] = uVar37;
      puVar27 = (type_2 *)var_8[1];
      var_8[1] = var_9[1];
      var_9[1] = puVar27;
    }
  }
  return puVar27;
}


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

undefined1 * MASKED(string *param_1,char *param_2,undefined1 *param_3,uint param_4)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  undefined1 *puVar27;
  uint *puVar28;
  uint *puVar29;
  int *piVar30;
  undefined4 *puVar31;
  undefined4 *puVar32;
  uint *puVar33;
  undefined4 uVar34;
  uint uVar35;
  uint *puVar36;
  uint in_t0;
  undefined4 uVar37;
  uint in_t1;
  undefined4 uVar38;
  uint in_t2;
  undefined4 uVar39;
  uint in_t3;
  uint in_t4;
  uint in_t5;
  undefined *puVar40;
  
  if (param_3 <= (undefined1 *)(0x7fffffffU - *(int *)(param_1 + 4))) {
    puVar27 = (undefined1 *)std::string::_M_append(param_1,param_2,(uint)param_3);
    return puVar27;
  }
  piVar30 = (int *)(PTR_s_alize_xindex_004323b4 + -0x6240);
  puVar40 = PTR___throw_length_error_00432480;
  (*(code *)PTR___throw_length_error_00432480)();
  uVar35 = piVar30[1];
  if (param_4 <= uVar35) {
    if ((undefined1 *)(uVar35 - param_4) <= param_3) {
      param_3 = (undefined1 *)(uVar35 - param_4);
    }
    if (param_3 != (undefined1 *)0x0) {
      if (param_3 == (undefined1 *)0x1) {
        *param_2 = *(char *)(*piVar30 + param_4);
        return (undefined1 *)0x1;
      }
      (**(code **)(puVar40 + 0x1747e0))(param_2);
    }
    return param_3;
  }
  puVar32 = (undefined4 *)(*(int *)(puVar40 + 0x1702c4) + 0x733c);
  puVar31 = (undefined4 *)(*(int *)(puVar40 + 0x17040c) + -0x25a4);
  puVar27 = (undefined1 *)
            (**(code **)(puVar40 + 0x171040))(puVar31,puVar32,param_4,uVar35,puVar40 + 0x178228);
  if (puVar31 != puVar32) {
    puVar36 = (uint *)*puVar31;
    puVar29 = puVar31 + 2;
    puVar33 = (uint *)*puVar32;
    puVar28 = puVar32 + 2;
    if (puVar29 == puVar36) {
      if (puVar28 == puVar33) {
        uVar35 = puVar31[1];
        if (uVar35 == 0) {
          if (puVar32[1] == 0) {
            puVar27 = (undefined1 *)0x0;
            puVar31[1] = 0;
            puVar32[1] = 0;
          }
          else {
            uVar38 = puVar32[3];
            uVar34 = puVar32[4];
            uVar37 = puVar32[5];
            *puVar29 = *puVar28;
            puVar31[3] = uVar38;
            puVar31[4] = uVar34;
            puVar31[5] = uVar37;
            puVar31[1] = puVar32[1];
            puVar32[1] = 0;
            puVar27 = (undefined1 *)*puVar32;
            *puVar27 = 0;
          }
        }
        else if (puVar32[1] == 0) {
          uVar38 = puVar31[3];
          uVar34 = puVar31[4];
          uVar37 = puVar31[5];
          *puVar28 = *puVar29;
          puVar32[3] = uVar38;
          puVar32[4] = uVar34;
          puVar32[5] = uVar37;
          puVar32[1] = puVar31[1];
          puVar31[1] = 0;
          puVar27 = (undefined1 *)*puVar31;
          *puVar27 = 0;
        }
        else {
          uVar12 = (uint)puVar29 & 3;
          uVar20 = (uint)(puVar31 + 3) & 3;
          iVar6 = *(int *)((int)(puVar31 + 3) - uVar20);
          uVar1 = (uint)(puVar32 + 2) & 3;
          iVar7 = *(int *)((int)(puVar32 + 2) - uVar1);
          uVar2 = (uint)(puVar32 + 3) & 3;
          iVar8 = *(int *)((int)(puVar32 + 3) - uVar2);
          uVar3 = (uint)(puVar32 + 4) & 3;
          iVar9 = *(int *)((int)(puVar32 + 4) - uVar3);
          uVar37 = puVar32[5];
          uVar4 = (uint)(puVar31 + 4) & 3;
          iVar10 = *(int *)((int)(puVar31 + 4) - uVar4);
          uVar5 = (uint)(puVar31 + 5) & 3;
          iVar11 = *(int *)((int)(puVar31 + 5) - uVar5);
          uVar13 = (int)puVar31 + 0xbU & 3;
          uVar14 = (int)puVar31 + 0xfU & 3;
          uVar21 = *(uint *)(((int)puVar31 + 0xfU) - uVar14);
          uVar15 = (int)puVar32 + 0xbU & 3;
          uVar22 = *(uint *)(((int)puVar32 + 0xbU) - uVar15);
          uVar16 = (int)puVar32 + 0xfU & 3;
          uVar23 = *(uint *)(((int)puVar32 + 0xfU) - uVar16);
          uVar17 = (int)puVar32 + 0x13U & 3;
          uVar24 = *(uint *)(((int)puVar32 + 0x13U) - uVar17);
          uVar18 = (int)puVar31 + 0x13U & 3;
          uVar25 = *(uint *)(((int)puVar31 + 0x13U) - uVar18);
          uVar19 = (int)puVar31 + 0x17U & 3;
          uVar26 = *(uint *)(((int)puVar31 + 0x17U) - uVar19);
          *puVar28 = (*(int *)((int)puVar29 - uVar12) << uVar12 * 8 |
                     in_t5 & 0xffffffffU >> (4 - uVar12) * 8) & -1 << (uVar13 + 1) * 8 |
                     *(uint *)(((int)puVar31 + 0xbU) - uVar13) >> (3 - uVar13) * 8;
          puVar32[3] = (iVar6 << uVar20 * 8 | in_t4 & 0xffffffffU >> (4 - uVar20) * 8) &
                       -1 << (uVar14 + 1) * 8 | uVar21 >> (3 - uVar14) * 8;
          puVar32[4] = (iVar10 << uVar4 * 8 | in_t3 & 0xffffffffU >> (4 - uVar4) * 8) &
                       -1 << (uVar18 + 1) * 8 | uVar25 >> (3 - uVar18) * 8;
          puVar32[5] = (iVar11 << uVar5 * 8 | in_t2 & 0xffffffffU >> (4 - uVar5) * 8) &
                       -1 << (uVar19 + 1) * 8 | uVar26 >> (3 - uVar19) * 8;
          puVar31[2] = (iVar7 << uVar1 * 8 | in_t1 & 0xffffffffU >> (4 - uVar1) * 8) &
                       -1 << (uVar15 + 1) * 8 | uVar22 >> (3 - uVar15) * 8;
          puVar31[3] = (iVar8 << uVar2 * 8 | in_t0 & 0xffffffffU >> (4 - uVar2) * 8) &
                       -1 << (uVar16 + 1) * 8 | uVar23 >> (3 - uVar16) * 8;
          puVar31[4] = (iVar9 << uVar3 * 8 | uVar35 & 0xffffffffU >> (4 - uVar3) * 8) &
                       -1 << (uVar17 + 1) * 8 | uVar24 >> (3 - uVar17) * 8;
          puVar31[5] = uVar37;
          puVar27 = (undefined1 *)puVar31[1];
          puVar31[1] = puVar32[1];
          puVar32[1] = puVar27;
        }
      }
      else {
        uVar34 = puVar31[3];
        uVar35 = (uint)(puVar31 + 4) & 3;
        iVar6 = *(int *)((int)(puVar31 + 4) - uVar35);
        uVar37 = puVar31[5];
        uVar38 = puVar32[2];
        uVar12 = (int)puVar31 + 0x13U & 3;
        uVar20 = *(uint *)(((int)puVar31 + 0x13U) - uVar12);
        *puVar28 = *puVar29;
        puVar32[3] = uVar34;
        puVar32[4] = (iVar6 << uVar35 * 8 | in_t0 & 0xffffffffU >> (4 - uVar35) * 8) &
                     -1 << (uVar12 + 1) * 8 | uVar20 >> (3 - uVar12) * 8;
        puVar32[5] = uVar37;
        *puVar31 = puVar33;
        *puVar32 = puVar28;
        puVar31[2] = uVar38;
        puVar27 = (undefined1 *)puVar31[1];
        puVar31[1] = puVar32[1];
        puVar32[1] = puVar27;
      }
    }
    else {
      uVar37 = puVar31[2];
      if (puVar28 == puVar33) {
        uVar39 = puVar32[3];
        uVar38 = puVar32[4];
        uVar34 = puVar32[5];
        *puVar29 = *puVar28;
        puVar31[3] = uVar39;
        puVar31[4] = uVar38;
        puVar31[5] = uVar34;
        *puVar32 = puVar36;
        *puVar31 = puVar29;
      }
      else {
        *puVar31 = puVar33;
        *puVar32 = puVar36;
        puVar31[2] = puVar32[2];
      }
      puVar32[2] = uVar37;
      puVar27 = (undefined1 *)puVar31[1];
      puVar31[1] = puVar32[1];
      puVar32[1] = puVar27;
    }
  }
  return puVar27;
}

